SSM16.2【Mybatis:通过注解实现Mybatis的简单增删改查】

注解方式实现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 }
复制代码

 

posted @   yub4by  阅读(57)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示