mybatis映射文件之基本的增删改查

前端之家收集整理的这篇文章主要介绍了mybatis映射文件之基本的增删改查前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

借之前配置好的环境:

1、首先在Employee .java中加上有参的构造器和无参的构造器。

2、采用mapper中的class属性配置映射文件

    <mappers>
        mapper class="com.gong.mybatis.dao.EmployeeMapper" />        
    </>

3、EmployeeMapper.java

package com.gong.mybatis.dao;

import com.gong.mybatis.bean.Employee;

public interface EmployeeMapper {
    public Employee getEmpById(Integer id);
    
    boolean addEmp(Employee employee);
    
    void updateEmp(Employee employee);
    
     deleteEmp(Integer id);
}

4、EmployeeMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
namespace="com.gong.mybatis.dao.EmployeeMapper">
    select id="getEmpById" resultType="com.gong.mybatis.bean.Employee">
        select id,last_name lastName,email,gender from tbl_employee where id = #{id}
    selectinsert ="addEmp" parameterType
        insert into tbl_employee(last_name,gender,email)
        values(#{lastName},#{gender},#{email}) 
    insertupdate ="updateEmp" 
        update tbl_employee set last_name=#{lastName},gender=#{gender},email=#{email}
        where id = #{id}
    updatedelete ="deleteEmp"
        delete from tbl_employee where id=#{id}
    delete>
mapper>

说明:接口中的增删改方法可以有Integer、long、boolean返回值。在EmployeeMapper.xml中parameterType为输入的参数类型,resultType为返回的参数类型。

5、在TestMybatis.java中进行单元测试

 com.gong.mybatis.test;

 java.io.IOException;
 java.io.InputStream;

 org.apache.ibatis.io.Resources;
 org.apache.ibatis.session.sqlSession;
 org.apache.ibatis.session.sqlSessionFactory;
 org.apache.ibatis.session.sqlSessionFactoryBuilder;
 org.junit.Test;

 com.gong.mybatis.bean.Employee;
 com.gong.mybatis.dao.EmployeeMapper;
 com.gong.mybatis.dao.EmployeeMapperAnnotation;

 TestMybatis {
    
    public sqlSessionFactory getsqlSessionFactory() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream is = Resources.getResourceAsStream(resource);
        return new sqlSessionFactoryBuilder().build(is);
    }
    
    @Test
    void test03()  IOException {
        sqlSessionFactory sqlSessionFactory = getsqlSessionFactory();
        //不会自动提交数据
        sqlSession openSession = sqlSessionFactory.openSession();
        try {
            EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.);
            /*
            //添加员工
            Employee employee = new Employee(null,"bob","1","123455777@qq.com");
            mapper.addEmp(employee);
            
            /*
            //修改员工
            Employee employee = new Employee(1,"xiximayou","xiximayou@qq.com");
            mapper.updateEmp(employee);
            */
            
            //删除员工
            Integer id = 3;
            mapper.deleteEmp(id);
            手动提交数据
            openSession.commit();
            
            
        } finally {
             TODO: handle finally clause
            openSession.close();
        }
    }

}

原本数据库中存在的数据:

 结果:

(1)添加

(2)修改

(3) 删除

继查找功能之后,本节实现的增删改功能均已正确实现。 

猜你在找的Mybatis相关文章