1. 程式人生 > 其它 >SSM16.2【Mybatis:Mybatis的註解開發2】

SSM16.2【Mybatis:Mybatis的註解開發2】

註解方式實現Mybatis的增刪改查

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
 3 
 4 <!--The content of element type "configuration" must match
 5 "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,
6 objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)".--> 7 8 <configuration> 9 10 <!--載入外部properties檔案--> 11 <properties resource="jdbc.properties"></properties> 12 13 <!--自定義別名--> 14 <typeAliases>
15 <typeAlias type="com.haifei.domain.User" alias="user" /> 16 </typeAliases> 17 18 <!--註冊型別處理器--> 19 <typeHandlers> 20 <typeHandler handler="com.haifei.handler.DateTypeHandler" /> 21 </typeHandlers> 22 23 <environments default
="development"> 24 <!--配置資料來源環境--> 25 <environment id="development"> 26 <transactionManager type="JDBC"></transactionManager> 27 <dataSource type="POOLED"> 28 <property name="driver" value="${jdbc.driver}"/> 29 <property name="url" value="${jdbc.url}"/> 30 <property name="username" value="${jdbc.username}"/> 31 <property name="password" value="${jdbc.password}"/> 32 </dataSource> 33 </environment> 34 </environments> 35 36 <!--xml實現mybatis-CRUD:載入對映檔案--> 37 <!--<mappers> 38 <mapper resource="com/haifei/mapper/UserMapper.xml"/> 39 </mappers>--> 40 41 <!--註解實現mybatis-CRUD:載入對映關係--> 42 <mappers> 43 <!--指定介面所在的包,掃包--> 44 <package name="com.haifei.mapper"></package> 45 </mappers> 46 47 48 </configuration>
 1 package com.haifei.mapper;
 2 
 3 import com.haifei.domain.User;
 4 import org.apache.ibatis.annotations.Delete;
 5 import org.apache.ibatis.annotations.Insert;
 6 import org.apache.ibatis.annotations.Select;
 7 import org.apache.ibatis.annotations.Update;
 8 
 9 import java.util.List;
10 
11 /**
12  * 注意:使用註解進行mybatis-CRUD時,必須將resources下的mapper.xml刪掉,不然報錯
13  */
14 public interface UserMapper {
15 
16     @Insert("insert into user values(#{id},#{username},#{password},#{birthday})")
17     public void save(User user);
18 
19     @Delete("delete from user where id=#{id}")
20     public void delete(int id);
21 
22     @Update("update user set username=#{username},password=#{password},birthday=#{birthday} where id=#{id}")
23     public void update(User user);
24 
25     @Select("select * from user")
26     public List<User> findAll();
27 
28     @Select("select * from user where id=#{id}")
29     public User findById(int id);
30 
31 }
 1 package com.haifei.test;
 2 
 3 import com.haifei.domain.User;
 4 import com.haifei.mapper.UserMapper;
 5 import org.apache.ibatis.io.Resources;
 6 import org.apache.ibatis.session.SqlSession;
 7 import org.apache.ibatis.session.SqlSessionFactory;
 8 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 9 import org.junit.Before;
10 import org.junit.Test;
11 
12 import java.io.IOException;
13 import java.io.InputStream;
14 import java.util.Date;
15 import java.util.List;
16 
17 public class MybatisTest {
18 
19     private UserMapper mapper;
20 
21     @Before
22     public void before() throws IOException {
23         InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
24         SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
25         SqlSession sqlSession = sqlSessionFactory.openSession(true); //true-->事務自動提交
26         mapper = sqlSession.getMapper(UserMapper.class);
27     }
28 
29     @Test
30     public void testSave(){
31         User user = new User();
32         user.setUsername("222");
33         user.setPassword("222");
34         user.setBirthday(new Date());
35         mapper.save(user);
36         //Updates: 1
37     }
38 
39     @Test
40     public void testUpdate(){
41         User user = new User();
42         user.setId(12);
43         user.setUsername("333");
44         user.setPassword("333");
45         user.setBirthday(new Date());
46         mapper.update(user);
47         //Updates: 1
48     }
49 
50     @Test
51     public void testDelete(){
52         mapper.delete(12);
53         //Updates: 1
54     }
55 
56     @Test
57     public void testFindAll(){
58         List<User> userList = mapper.findAll();
59         for (User user : userList) {
60             System.out.println(user);
61         }
62         /*
63         User{id=1, username='zhangsan', password='123', birthday=Sat Jul 24 20:00:29 CST 2021}
64         User{id=2, username='lisi', password='345', birthday=Sat Jul 24 20:00:29 CST 2021}
65         User{id=3, username='tom', password='abc', birthday=Sat Jul 24 20:00:29 CST 2021}
66         User{id=4, username='lucy', password='def', birthday=Sat Jul 24 20:00:29 CST 2021}
67         User{id=5, username='sam', password='sam', birthday=Sat Jul 24 20:00:29 CST 2021}
68         User{id=9, username='11', password='11', birthday=Sat Jul 24 20:00:29 CST 2021}
69          */
70     }
71 
72     @Test
73     public void testFindById(){
74         User user = mapper.findById(5);
75         System.out.println(user); //User{id=5, username='sam', password='sam', birthday=Sat Jul 24 20:00:29 CST 2021}
76     }
77 
78 }