Mybatis简单介绍

本文详细介绍了MyBatis框架的基本使用流程,包括配置文件的加载、Session工厂的创建、SQL会话的开启与关闭,以及如何通过映射文件执行SQL语句。同时,还讲解了MyBatis的核心配置项与映射文件的编写规范,并提供了接口代理实现DAO层的具体步骤。

ORM框架 基于Java持久性框架 内部封装了JDBC

加载核心配置文件
ImputStream is =Resource.getResourceAsStream(“xxx.xml”)

获取Session工厂对象
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(is)

获取SqlSessionsql对象 构建者对象 openSession(boolean) 手动提交事物
SqlSessionsql sqlSession=sqlSessionFactory.openSession()

执行映射文件中的sql语句 并接收结果 执行sql语句 管理事务 接口代理
List list =sqlSession.selectList(“mapper.selectAll”)

释放资源
sqlSession.close()
is.close()

org.apache.ibatis.io.Resources Mybatis提供的加载资源的工具类

ObjectMapper.xml

MyBatis的DTD约束(提示及错误检查)

mapper 核心根标签

namespace 名称空间

select 查询功能标签

id 唯一标签

resultType 指定结果映射对象类型

parameter 指定参数映射对象类型

核心配置文件
MyBatisConfig.xml

resource=“jdbc.properties”>

configuration 根标签

environments 配置数据库环境 可以有多个environment 标签

environment

transactionManager 事物管理标签

dataSource 数据源信息

property 获取连接数据库配置信息

mappers 引入映射配置文件

mapper

起别名 现在核心配置文件加上标签 里面先写好对应的别名
MyBatisConfig.xml

ObjectMapper.xml 起了别名 那resultType中结果类型就直接可以使用别名

parameter 属性mybatis自动给基本数据类型和引用数据类型起了别名
如 int 对应 java.lang.Integer

MyBatis Dao
分层思想 控制层(controller) 业务层(service) 持久层(dao)

Log4j 实现执行信息的输出

在核心配置文件配置log4j
固定格式


配置log4j的配置文件
log4j.properties

主要 配置日志级别 ERROR WARN INFO DEBUG
stdout 代表将日志信息输入到控制台上
log4j.rootLogger=DEBUG, stdout

Mybatis接口代理 实现Dao层
Mybatis框架根据接口定义自动创建该接口的动态代理对象

实现规则
1、namespace 名称空间 中的name属性为dao层接口的全类名

2、id 唯一标签 必须要与dao层接口的方法名一致

3、resultType 必须要与dao层接口的方法返回值相同

4、parameter 必须要与dao层接口的方法参数相同

不然就需要手动实现dao层 写接口及实现类

源码分析 进入getMapper()方法
里面有一个 MapperProxy映射代理对象
底层用了 JDK的动态代理方式Proxy.newProxyInstance(三个参数)
sqlSession.getMapper(ObjectMapper.class)

也可以在执行sql语句的时候打断点进去(此时会进入动态代理的invoke方法中)

最终调用了mapperMethod.execute()方法

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值