Mybatis通过接口的方式访问数据库
1、新建接口
public interface EmployeeMapper {
public Employee getEmpById(Integer id);
}
2、修改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.fenga.mybatis.dao.EmployeeMapper">
<!--
namespace:名称空间;指定为接口的全类名
id:唯一标识
resultType:返回值类型
#{id}:从传递过来的参数中取id值
public Employee getEmpById(Integer id);
-->
<select id="getEmpById" resultType="com.fenga.mybatis.helloworld.Employee">
select id,last_name lastName,email,gender from tbl_employee where id = #{id}
</select>
</mapper>
3、测试方法
//抽出的常用方法
public SqlSessionFactory getSqlSessionFactory() throws IOException {
String resource = "mybatis-config.xml";
InputStream inpuStream = Resources.getResourceAsStream(resource);
return new SqlSessionFactoryBuilder().build(inpuStream);
}
public void test1() throws IOException {
//1.获取sqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
//2.获取SQLSession对象
SqlSession openSession = sqlSessionFactory.openSession();
try {
//3.获取接口实现类对象
//会为接口自动的创建一个代理对象,代理对象会执行增删改查方法
EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
Employee employee = mapper.getEmpById(1);
System.out.println(employee);
}finally {
openSession.close();
}
}
4、运行结果