从面向接口的方面,修改Hello World程序 首先先建立一个接口EmployeeMapper,在接口中写如下代码:
public interface EmployeeMapper{ public Employee getEmpById(Integer id); }EmployeeMapper.xml中的代码,其中namespace不再是自己写的 ,而是接口的全类名,将接口与配置文件进行绑定,将id 与方法名也进行绑定
<?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.guigu.mybatis.EmployeeMapper"> <!--namespace为命名空间, id为唯一标识,resultType返回值类型用类全路径,#{id}从传递的参数中取出id 值> <select id="getEmpById" resultType="com.guigu.mybatis.Employee"> select id,last_name lastName,email,gender from tbl_employee where id = #{id} </select> </mapper>写一个测试方法代码如下
public void test(){ String source="mybatis-config.xml"; InputStream inputstream=Resource.getResourceAsStream(source); SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputstream); SqlSession sqlSession=sqlSessionFactory.openSession(); try{ //获取接口的实现类对象,如果现实绑定,会为接口自动创建一个代理对象,代理对象进行增删改查 EmployeeMapper mapper=sqlSession.gerMapper(EmployeeMapper.class); //接口的实现类对象调用方法 Employee employee=mapper.getEmpById(1);} finally{ sqlSession.close();} }注:接口式编程 1.接口mapper—》xxMapper.xml 2.sqlsession 代表和数据库一次会话,用完必须关闭 3.sqlsession和connection 一样都是非线程安全,每次使用都应该获取对象,不要放在共享中 4.mapper接口没有实现类,但是mybatis会为这个接口生成一个代理对象 5.两个重要的配置文件,mybatis-config.xml是全局配置文件 数据库连接池信息,事务管理器信息等。。系统运行环境 SQL映射文件必须有,保存了每一个SQL语句的映射信息