MyBatis

MyBatis- 第二章

Dao接口引入

1. 修改mapper文件的 namespace, 对应接口类的全路径

2. 创建BookDao.java 接口类

3. 接口方法名对应mapper的SQL id

4. 定义反参和入参(如有)

Service引入

1. 创建service, serviceImpl 结构包,对应BookService, BookServiceImpl

2. 获取连接

3. 代理功能

MyBatis

通过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

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址