7、mybatis学习——mybatis基础增删改&&mybatis获取自增主键
一、mybatis基础增删改
sqlmapper中配置
<insert id="addEmp" parameterType="employee"> insert into employee(name,gender) values(#{name},#{gender}) </insert> <update id="updateEmp"> update employee set name=#{name},gender=#{gender} where id=#{id} </update> <delete id="deleteEmp"> delete from employee where id = #{id} </delete>
mapper接口中添加相应方法
增删改测试
@Test public void testAdd() throws IOException { String source = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(source); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //获取sqlSession实例,能直接执行映射的sql语句,获取的session不会自动提交 SqlSession sqlSession = sqlSessionFactory.openSession(); EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class); Employee employee = new Employee(null, "tom", "0"); employeeMapper.addEmp(employee); sqlSession.commit(); sqlSession.close(); } @Test public void testUpdate() throws IOException { String source = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(source); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //获取sqlSession实例,能直接执行映射的sql语句,获取的session不会自动提交 SqlSession sqlSession = sqlSessionFactory.openSession(); EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class); Employee employee = employeeMapper.selectEmpById(1); employee.setName("xiaohon"); employeeMapper.updateEmp(employee); sqlSession.commit(); sqlSession.close(); } @Test public void testDelete() throws IOException { String source = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(source); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //获取sqlSession实例,能直接执行映射的sql语句,获取的session不会自动提交 SqlSession sqlSession = sqlSessionFactory.openSession(); EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class); employeeMapper.deleteEmp(2); sqlSession.commit(); sqlSession.close(); }
二、mybatis获取自增主键
<!-- 获取自增主键的值: mysql支持自增主键,自增主键的获取 mybatis也是通过配置useGeneratedKeys="true"使用自增主键获取主键值策略 keyProperty=""指定对应的主键属性,也就是mybatis获取到主键值以后,将这个值封装到javabean的属性中--> <insert id="addEmp" parameterType="employee" useGeneratedKeys="true" keyProperty="id"> insert into employee(name,gender) values(#{name},#{gender}) </insert>
测试方法中查看添加对象后的属性
@Test public void testAdd() throws IOException { String source = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(source); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //获取sqlSession实例,能直接执行映射的sql语句,获取的session不会自动提交 SqlSession sqlSession = sqlSessionFactory.openSession(); EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class); Employee employee = new Employee(null, "tom", "0"); //此时id为null employeeMapper.addEmp(employee); System.out.println(employee); //此时有id sqlSession.commit(); sqlSession.close(); }
分类:
mybatis
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)