Mybatis
2021-09-18 11:02:28 0 举报
AI智能生成
结构导图
作者其他创作
大纲/内容
Mybatis简介
一个持久层框架(ORM),在实体类和SQL语句之间建立映射关系
搭建环境
数据持久化
将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称
ORM
对象的映射关系,一种数据持久化技术,通过JAVABean对象操作数据库表中数据
搭建Mybatis环境
下载jar包并部署,添加jar包依赖
编写配置文件
创建实体类
创建dao接口
创建sql映射文件
在业务层调用
核心API
SQLSessionFactoryBuilder:构建SQLSessionFactory
SQLSessionFactory:该对象可以完成对配置文件的读取factory= new SqlSessionFactoryBuilder().build();
SqlSession:该对象的作用是调用mapper文件进行数据库操作
掌握SQL映射文件
select标签:查询语句
delete标签
update标签
inseret标签
resultType:直接表示返回类型,包括基本数据类型和复杂数据类型
resultType:数据库字段信息与对象属性不一致或需要做复杂联合查询,以便自由控制映射结构
MyBatis缓存
一级缓存:是mybatis自带的本地缓存,作用范围为Session的区域,当Session flush或者close之后,该session中所有的cache会被清空
二级缓存:全局缓存,它超出了session范围,可以被所有的SQLSession共享,开启它只需要在Mybatis的核心配置文件(mybatis-config.xml)的setting中设置
<settings>
<setting name="cacheEnabled" value="true"/>
</settings>
<setting name="cacheEnabled" value="true"/>
</settings>
二级缓存默认关闭,需要手动开启,他的作用域是针对mapper的namespace而言的
在mapper文件配置支持cache后,如果要对个别查询进行调整,可单独设置cache
Dao上机操作
@Param 注解
insert,update,delete操作需注意:
接口方法的返回值为int类型,表示执行sql语句影响的行数
均没有result属性
事务处理
factory.openSession(faclse):手动提交实物
session.commit():提交事务
session,rollback():回滚事务
掌握动态sql
if:利用if实现简单的条件选择
choose(when,otherwise):相当于Java中的switch语句,通常和when及otherwise搭配使用
where:简化sql语句中的where的条件判断
set:解决动态更新语句
tirm:可以灵活的去除多余的关键字
foreach:遍历一个集合
掌握Mybatis框架的优缺点及使用场合
Mybatis框架的特点
与JDBC相比,减少了代码量
Mybatis相当灵活,不会对应用程序或者数据部的现有设计强加任何影响,SQL写在xml中,从代码中彻底分离,降低耦合度,同时便于统一管理和优化
Mybatis框架缺点
SQL语句的编写工作量比较大,对开发人员编写SQL语句的功底有要求
SQL语句依赖于数据库,导致数据库的移植性比较差,不能随意更换数据库
框架应用场合
专注于SQL本身,是一个足够灵活的DAO层解决方案
对性能要求很高的项目,或需求变化较多的项目,如互联网项目,MYbatis将是不错的选择
0 条评论
下一页