概述
步骤
- 把IUserDao.xml移除,在dao接口的方法上使用@Select注解,并且指定SQL语句
- 同时需要在SqlMapConfig.xml中的mapper配置时,使用class属性指定dao接口的全限定类名。
明确
- 我们在实际开发中,都是越简便越好,不管使用XML还是注解配置,都是采用不写dao实现类的方式。
- 但是Mybatis它是支持写dao实现类的。
目录结构
基础代码
-
resources目录下不用再创建IUserDao.xml
-
IUserDao发生变化
package cn.luis.dao;
import cn.luis.domain.User;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @InterfaceName IUserDao
* @Description 用户的持久层接口
* @Author L
* @Date 2020.02.28 18:54
* @Version 1.0
* @Remark TODO
**/
public interface IUserDao {
/**
* @Description 查询所有操作
* @Author Luis
* @Date 2020.02.28 18:56
* @Param []
* @Return java.util.List<cn.luis.domain.User>
**/
@Select("Select * from user")
List<User> findAll();
}
- SqlMapConfig.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">
<!--mybatis的主配置文件-->
<configuration>
<!--配置环境 省略-->
<!--指定映射配置文件的位置,映射配置文件的是每个dao独立的配置文件
如果是用注解配置的话,此处应该使用class属性指定被注接的dao全限定类名
-->
<mappers>
<!--xml的配置方法-->
<!--<mapper resource="cn/luis/dao/IUserDao.xml"/>-->
<!--注解的配置方法-->
<mapper class="cn.luis.dao.IUserDao"></mapper>
</mappers>
</configuration>
自定义Mybatis的分析 【了解】
mybatis在使用代理dao的方式实现增删改查时做什么事呢?
只有两件事:
- 创建代理对象
- 在代理对象中调用selectList
自定义mybatis能通过入门案例看到类
class Resources
class SqlSessionFactoryBuilder
interface SqlSessionFactory
interface SqlSession
具体见代码03_mybatis_daoimpl、04_mybatis_design和pdf讲义!