步骤
- 定义Mapper接口(与SQL映射文件同名)
- 将Mapper接口和SQL映射文件放在同一目录下
- 在Mapper接口中定义方法
- 编码
①获取Mapper接口的代理对象
②调用对应方法完成SQL执行 - 效率工具 MyBatisX 插件
1. 定义Mapper接口(与SQL映射文件同名)
① 在 src/main/resources 下创建一个SQL映射文件
新建Directory --> 命名:
com/groupId/mapper
--> 新建 File --> 命名:ClassNameMapper.xml
② 在 src/main/java 下创建一个 Mapper 接口
新建 Package --> 命名:
com.groupId,mapper
--> 新建 Java Class 的接口文件 --> 命名:ClassNameMapper
注意:
resources 下创建 mapper 时用 /
分隔文件名,因为是 File
java 下创建 mapper 时用.
分隔文件,因为是 Package
③ 修改 mybatis 配置文件
<mappers>
<!--Mapper 代理方式-->
<package name="com.groupId.mapper"/>
</mappers>
2. 将Mapper接口和SQL映射文件放在同一目录下
src 中的 java 和 resources 实际上是同级目录,所以如果目录结构相同,则在 target 中会放在同一个目录中,可以在 target文件中验证这一点
3. 在Mapper接口中定义方法
① 方法名: SQL 映射文件中 sql 语句的 id
② 参数类型和返回值: 和SQL 映射文件保持一致
4. 编码
①获取Mapper接口的代理对象
通过 SqlSession 的 getMapper 方法获取 Mapper 接口的代理对象
②调用对应方法完成SQL执行
public class MyBatisDemo2 {
public static void main(String[] args) throws IOException {
// 加载mybatis核心配置文件, 获取 SqlSessionFactory
// 配置文件路径
String resource = "mybatis-config.xml";
// 通过mybatis的Resource类返回一个流对象
InputStream inputStream = Resources.getResourceAsStream(resource);
// 获取一个sqlSession工厂
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 获取sqlSessionFactory对象创建的sqlSession对象,sqlSession对象可以用来执行sql语句
SqlSession sqlSession = sqlSessionFactory.openSession();
// 获取 UserMapper 接口的代理对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
// 用 mapper 代理执行 sql 语句
List<User> users = userMapper.selectAll();
// 打印结果
System.out.println(users);
// 释放资源
sqlSession.close();
}
}
6、MyBatisX 插件
直接在 plugins 里面下载插件,可以简化 Mapper 代理的操作
实现 Mapper 代理:
① 在UserMapper 中定义一个 SQL 接口;
② 按 Alt + Enter
自动在 UserMapper.xml 配置文件中生成相应的 sql 语句
③ 更改resultType
,编写 SQL 语句