请先看,不使用接口映射的HelloWorld小例子
这次使用另外一种方法来进行增删改查。
首先修改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();