Mapper代理开发
目的
- 解决原生方式中的硬编码
-
Mapper代理方式入门案例
定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下
- 设置SQL映射文件的namespace属性为Mapper接口全限定名
- 在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致
- 编码
1.完成Mapper文件映射
:::info 定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下 :::创建包
创建并放入模拟接口
创建目录
让Mapper接口与xml文件在同一目录下
- 我们可以直接用鼠标拖动,但是显然不合适,文件比较乱,不方便管理
- 我们在resources里新建目录,并映射
:::info
注意格式(要与mapper文件路径一致)
:::
编译
:::info 把Tb_userMapper.xml文件移动到该目录下,并进行编译,这里我们使用maven插件进行编译 :::
映射文件成功
2.设置映射文件的namespace属性
:::info 设置SQL映射文件的namespace属性为Mapper接口全限定名 :::
3.在Mapper接口中定义方法
:::info 在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致 :::
更改mybatis-config.xml
:::info 右键 - copy-path :::
4.模拟代理开发
:::info 复制demo02 :::
demo02源码
```java package com.taotao;
import com.taotao.mapper.UserMapper; import com.taotao.pojo.Tb_user; 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 java.io.IOException; import java.io.InputStream; import java.util.List;
/**
- Create By 刘鸿涛
- 2022/3/12 20:27
- Mybatis 代理开发
*/
public class MyBatisDemo02 {
public static void main(String[] args) throws IOException {
//1.加载mybatis的核心配置文件,获取 SqlSessionFactoryString resource = "mybatis-config.xml"; //相对路径InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//2.获取SqlSession对象,用它来执行sql
SqlSession sqlSession = sqlSessionFactory.openSession();
//3.执行sql
// List
//4.释放资源
sqlSession.close();
}
}
异常
:::info
我换了root密码,所以重新改下root’@’localhost密码即可
:::
再次编译运行
complete!!

