这次使用另外一种方法来进行增删改查。
首先修改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.mybatis.dao.EmployeeMapper">
<!-- namespce:命名空间 id:用作唯一标识,与查询语句相对应 resultType:查询返回结果类型 id = #{id}:从传递过来的值中与其对应 -->
<!-- Select -->
<select id="getEmpById" resultType="com.mybatis.bean.Employee">
select * from tbl_employee
where id = #{id}
</select>
<select id="getEmpByName" resultType="com.mybatis.bean.Employee">
select * from tbl_employee
where lastName = #{lastName}
</select>
<select id="getEmpByNameAndSex" resultType="com.mybatis.bean.Employee">
select * from tbl_employee
where lastName = #{lastName} and sex=#{sex}
</select>
<!-- Add -->
<insert id="addEmp" >
insert into tbl_employee(lastName,sex,email)
values(#{lastName},#{sex},#{email})
</insert>
<!-- Add With Id -->
<insert id="addEmpWithId" >
insert into tbl_employee(id,lastName,sex,email)
values(#{id},#{lastName},#{sex},#{email})
</insert>
<!-- delete -->
<delete id="deleteEmpById" >
delete from tbl_employee where id=#{id}
</delete>
<update id="updateEmp" >
update tbl_employee
set lastName=#{lastName},sex=#{sex},email=#{email}
where id=#{id}
</update>
</mapper>
创建一个与之对应的接口,接口中的方法需要与Mapper.xml文件中的sql语句ID对应。
package com.mybatis.dao;
import org.apache.ibatis.annotations.Param;
import com.mybatis.bean.Employee;
public interface EmployeeMapper {
public Employee getEmpById(int id);
public Employee getEmpByName(String lastName);
//下面的查询语句有两个参数
public Employee getEmpByNameAndSex(@Param("lastName")String lastName,@Param("sex")String sex);
public void addEmp(Employee employee);
public void addEmpWithId(Employee employee);
public void deleteEmpById(int id);
public void updateEmp(Employee employee);
}
编写测试类,
package com.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 com.mybatis.bean.Employee;
import com.mybatis.dao.EmployeeMapper;
public class Test {
public static SqlSessionFactory getSqlSessionFactory() throws IOException{
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
return sqlSessionFactory;
}
//Test Add
@org.junit.Test
public void test01() throws IOException{
SqlSession sqlSession=getSqlSessionFactory().openSession();
Employee employee=new Employee(6,"New01", "男","New01@qq.com");
try {
EmployeeMapper mapper=sqlSession.getMapper(com.mybatis.dao.EmployeeMapper.class);
mapper.addEmpWithId(employee);
sqlSession.commit();
} finally {
sqlSession.close();
}
}
//Test Update
@org.junit.Test
public void test02() throws IOException{
SqlSession sqlSession=getSqlSessionFactory().openSession();
Employee employee=new Employee(3,"GG", "男","GG@qq.com");
try {
EmployeeMapper mapper=sqlSession.getMapper(com.mybatis.dao.EmployeeMapper.class);
mapper.updateEmp(employee);
sqlSession.commit();
} finally {
sqlSession.close();
}
}
//Test Delete
@org.junit.Test
public void test03() throws IOException{
SqlSession sqlSession=getSqlSessionFactory().openSession();
try {
EmployeeMapper mapper=sqlSession.getMapper(com.mybatis.dao.EmployeeMapper.class);
mapper.deleteEmpById(6);
sqlSession.commit();
} finally {
sqlSession.close();
}
}
//Test Select
@org.junit.Test
public void test04() throws IOException{
SqlSession sqlSession=getSqlSessionFactory().openSession();
try {
EmployeeMapper mapper=sqlSession.getMapper(com.mybatis.dao.EmployeeMapper.class);
//Employee employee=mapper.getEmpById(2);
Employee employee=mapper.getEmpByNameAndSex("GG","男");
sqlSession.commit();
System.out.println(employee);
} finally {
sqlSession.close();
}
}
}
步骤:
1.获取SqlSessionFactory对象
2.使用SqlSessionFactory实例生成一个SqlSession实例
3.使用接口映射,将接口实例化,使用sqlSession的getMapper()方法.
EmployeeMapper mapper=sqlSession.getMapper(com.mybatis.dao.EmployeeMapper.class);
4.利用接口使用Mapper.xml文件中对应的Sql语句
mapper.deleteEmpById(6);
并提交,
sqlSession.commit();
5.最后关闭
sqlSession.close();