zoukankan      html  css  js  c++  java
  • 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();
        }

  • 相关阅读:
    vue开发常用技巧总结(一)
    js时间戳转固定日期格式输出处理
    vue恢复初始数据
    Feature Police导致iframe页面无法使用粘贴功能
    页面异步请求canceled 或 network中接口请求成功但无法查看返回值
    我在阿里云做云开发平台
    Python项目中的requirements文件
    Json常用格式
    浅谈开机启动_windows
    mmdetection 报错: AttributeError: ‘ConfigDict‘ object has no attribute ‘pipeline‘
  • 原文地址:https://www.cnblogs.com/lyh233/p/12342245.html
Copyright © 2011-2022 走看看