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();
    }
复制代码

 

posted @   Arbitrary233  阅读(132)  评论(0编辑  收藏  举报
编辑推荐:
· 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)
点击右上角即可分享
微信分享提示