Mybatis映射文件-增删改查

刺骨的言语ヽ痛彻心扉 2022-05-13 13:34 342阅读 0赞

以接口编程开始,首先建立一个增删改查的我接口类

  1. publlic interface EmployeeMapper{
  2. public Employee getEmpById(Interger id);//查询
  3. public void addEmpt(Employee employee);//增加
  4. public void deleteEmptById(Integer id);//删除
  5. public void updateEmpt(Employee employee);//更改
  6. }

在 EmployeeMapper.xml中添加方法

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.guigu.mybatis.EmployeeMapper>
  5. <!--namespace为命名空间, id为唯一标识,resultType返回值类型用类全路径,#{id}从传递的参数中取出id 值>
  6. <select id="getEmpById" resultType="com.guigu.mybatis.Employee">
  7. select id,last_name lastName,email,gender from tbl_employee where id = #{id}
  8. </select>
  9. </mapper>
  10. //mybatis支持自增主键的获取
  11. <insert id="addEmpt" parameterType="com.guigu.mybatis.Employee" **useGeneratedKeys="true" keyProperty="id">**//使用自增主键获取,获取的主键值给id
  12. insert into tbl_employee (last_name,email,gender) values(#{lastName},#{email},#{gender})
  13. </insert>
  14. <update id="updateEmpt">
  15. update tbl_employee set last_name=#{lastName},email=#{email},gender=#{gender} where id=#{id}
  16. </update>
  17. <delete id="deleteEmptById">
  18. delete from tbl_employee where id=#{id}
  19. </delete>

写测试类

  1. @Test
  2. public void test(){
  3. String reource="Mybatis-config.xml";
  4. InputStream inputStream=Resource.getResourceAsStream(reource);
  5. SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);
  6. **//获取的 sqlSession openSession()不会自动提交数据*需要手动提交
  7. // sqlSession openSession(ture)不用手动提交了
  8. SqlSession sqlSession=sqlSessionFactory .openSession();
  9. try {EmployeeMapper employeeMapper=sqlSession.getMapper(EmployeeMapper.class);
  10. employeeMapper.getEmpById(1);
  11. Employee employee=new Employee(null,"lili","123@qq","1");
  12. Employee employee1=new Employee(1,"wli","123@qq","0");
  13. employeeMapper.addEmpt(employee);
  14. employeeMapper.updateEmpt(employee1);
  15. employeeMapper.deleteEmptById(2);
  16. **sqlSession.commit();**
  17. }finally{sqlSession.close();}
  18. }

Oracle不支持自增,Oracle使用序列来模拟自增
,每次插入的数据的主键是从序列中拿到的值,如何获取整个值

  1. <insert id="addEmpt" databaseId="oracle">
  2. <selectKey keyProperty="id" order ="before" resultType="Interger"/>//先查询主键,把值给id,在插入之前运行
  3. select employees_seq.nextval from dual
  4. </selectKey>
  5. insert into employees(Employee_id,last_name,email,gender)
  6. values(#{id},#{lastName},#{email},#{gender})
  7. </insert >

发表评论

表情:
评论列表 (有 0 条评论,342人围观)

还没有评论,来说两句吧...

相关阅读