MyBatis- 第二章
Dao接口引入
1. 修改mapper文件的 namespace, 对应接口类的全路径
2. 创建BookDao.java 接口类
4. 定义反参和入参(如有)
Service引入
1. 创建service, serviceImpl 结构包,对应BookService, BookServiceImpl
2. 获取连接
3. 代理功能
通过SqlSession的代理功能,调用Dao层接口方法
插入示例
1. 书写mapper 的SQL
2. 书写dao层,注意方法名要和mapper里的id保持一致
3. 参数数量和类型保持一致,并使用注解@Param("bookName")对应mapper的参数名
如果只有一个入参,可以不写@Param注解,但不建议
4. 书写Service层代码
MyBatis工具类引入
package com.gxy.util;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisUtil {
private static SqlSessionFactory factory;
//保证service层 进行多次dao操作,公用一个SqlSession对象
private static ThreadLocal<SqlSession> tl = new ThreadLocal<SqlSession>();
static{
try {
String resouce = "mybatis-config.xml"; //代表总配置文件的路径
InputStream is = Resources.getResourceAsStream(resouce);//使用输入流读取配置文件
factory = new SqlSessionFactoryBuilder().build(is);//facotry只需要创建一个
} catch (Exception e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession(){
SqlSession session = tl.get();
if(session == null) {
session = factory.openSession();
tl.set(session);
}
return session;
}
public static void close(){
SqlSession session = tl.get();
if(session != null){
session.close();
tl.set(null);
}
}
}
全程公用一个SqlSessionFactory
1. 复制MyBatisUtil工具类到util包
2. 修改service配置
插入并查询示例
生命周期2
1. 首先加载mybatis-config.xml总配置文件,根据development的参数配置连接数据库;查询mappers映射关系,找到mapper.xml配置文件
2. 执行mapper.xml文件,该文件记录了运行SQL
3. 在dao接口层,dao的方法名对应mapper.xml的ID
一个表 对应 一个实体 对应 一个mapper 对应 一个dao
4. 在service层,通过工具类获取连接;通过代理模式(反射)获取dao接口对象
5. 调用dao接口方法,执行SQL语句
6. 关闭SqlSession
完成修改,删除示例
原文
https://www.maiyewang.com/archives/85778
本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » MyBatis