借之前配置好的环境:
1、首先在Employee .java中加上有参的构造器和无参的构造器。
2、采用mapper中的class属性配置映射文件。
<mappers>
<mapper class="com.gong.mybatis.dao.EmployeeMapper" />
</mappers>
3、EmployeeMapper.java
package com.gong.mybatis.dao;
import com.gong.mybatis.bean.Employee;
public interface EmployeeMapper {
public Employee getEmpById(Integer id);
public boolean addEmp(Employee employee);
public void updateEmp(Employee employee);
public void 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">
<mapper 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}
</select>
<insert id="addEmp" parameterType="com.gong.mybatis.bean.Employee">
insert into tbl_employee(last_name,gender,email)
values(#{lastName},#{gender},#{email})
</insert>
<update id="updateEmp" >
update tbl_employee set last_name=#{lastName},gender=#{gender},email=#{email}
where id = #{id}
</update>
<delete id="deleteEmp">
delete from tbl_employee where id=#{id}
</delete>
</mapper>
说明:接口中的增删改方法可以有Integer、long、boolean返回值。在EmployeeMapper.xml中parameterType为输入的参数类型,resultType为返回的参数类型。
5、在TestMybatis.java中进行单元测试
package com.gong.mybatis.test;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import com.gong.mybatis.bean.Employee;
import com.gong.mybatis.dao.EmployeeMapper;
import com.gong.mybatis.dao.EmployeeMapperAnnotation;
public class TestMybatis {
public SqlSessionFactory getSqlSessionFactory() throws IOException {
String resource = "mybatis-config.xml";
InputStream is = Resources.getResourceAsStream(resource);
return new SqlSessionFactoryBuilder().build(is);
}
@Test
public void test03() throws IOException {
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
//不会自动提交数据
SqlSession openSession = sqlSessionFactory.openSession();
try {
EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
/*
//添加员工
Employee employee = new Employee(null,"bob","1","123455777@qq.com");
mapper.addEmp(employee);
/*
//修改员工
Employee employee = new Employee(1,"xiximayou","1","xiximayou@qq.com");
mapper.updateEmp(employee);
*/
/*
//删除员工
Integer id = 3;
mapper.deleteEmp(id);
*/
//手动提交数据
openSession.commit();
} finally {
// TODO: handle finally clause
openSession.close();
}
}
}
原本数据库中存在的数据:
结果:
(1)添加
(2)修改
(3) 删除
继查找功能之后,本节实现的增删改功能均已正确实现。