总结:

 

 

 

测试方法

    public static void main(String[] args) throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);//解析全局配置文件
        //根据全局配置文件生成sqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        try{
            //传入接口EmployeeMapper.class,根据EmployeeMapper.xml的配置,可以得到接口的实现类对象,传统的dao需要我们自己写实现类
            //也就是说,mybatis会为接口创建一个代理对象,代理对象去执行具体的crud
            EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
            System.out.println(mapper.getClass());//Proxy
            employee e = mapper.getEmpById(1);
            System.out.println(e);
        }finally {
            sqlSession.close();
        }
    }

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="dao.EmployeeMapper"><!-- dao.EmployeeMapper是dao的接口类-->
    <select id="getEmpById" resultType="bean.employee"><!--返回值的类型,包装为bean对象-->
            <!--id为接口类中的抽象方法名-->
            <!--以下为该方法要执行的具体操作-->
        select * from tbl_employee where id = #{id}
        <!-- #{id}:从传递过来的参数id中取值-->
    </select>
</mapper>

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT%2B8"/><!--serverTimezone=GMT%2B8解决了时区不匹配问题-->
                <property name="username" value="root"/>
                <property name="password" value="xxx"/>
            </dataSource>
        </environment>
    </environments>
    <mappers><!-- sql映射文件,要注册到全局配置文件中-->
        <mapper resource="mappers/EmployeeMapper.xml"/>
    </mappers>
</configuration>