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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· 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 让容器管理更轻松!