Mybatis从入门到成神
走进mybatis基础
框架技术
概念:框架是一个提供了可重用的公共结构的半成品
主流框架的介绍
1.Struts2框架:
Struts2框架是一个用于开发Java EE网络应用程序的开放源代码网页应用程序架构。它利用并延伸了Java Servlet API,鼓励开发者采用MVC架构。Struts2以WebWork优秀的设计思想为核心,吸收了Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web应用程序框架。
2.Hibernate框架;
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的JaveEE架构中取代CMP,完成数据持久化的重任
3.Spring框架:
Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。
4.Mybatis框架
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)
MyBatis介绍及其环境搭建
MyBatis框架及ORM
1.Mybatis框架简介:它内部封装了通过jdbc访问数据库的操作,支持普通的SQL查询,储存过程和高级映射
2.什么是ORM:及对象/关系映射,是一种数据持久化技术。
3.MyBatis是ORM解决方案:通过Mybatis建立SQL关系映射,以便捷地实现储存,查询,更改,和删除等操作
Mybatis环境搭建
下载需要的jar文件
部署jar文件
创建Mybatis核心配置文件configuration。xml
创建持久化类和sql映射文件
创建测试类
Mybatis框架的优缺点及其适用场合
1.mybatis框架优点:(1)减少百分之50以上的代码量
(2)是最简单的持久化框架,小巧并且简单易学
(3)相当灵活,不会对应用程序或者数据库的现有设计强加如何影响
2.Mybatis框架的缺点:(1)SQL语句的编写工作量较大
(2)SQL依赖数据库,
3Mybatis框架适用场合:专注SQL本事,是一个足够灵活的DAO层解决方案
Mybatis的基本要素——核心配置文件
mybatis——config.xml文件结构:
1.properties元素
2.settings元素
3.typeAliases元素
4.environment元素
5.mappers元素
Sql映射文件
使用mybatis实现条件查询
sql映射文件
mapper
cache
cache-ref
resulMap
sql
insert
update
delete
select
使用resultMap完成查询结果的展现
1.resulType
2.reultMap
3.resultType和resultMap关联
4.resultMap的自动映射级别
resultMap自动映射级别和Mybatis缓存
Mybatis缓存
1。一级缓存
一级缓存是基于的hashMap本地缓存,作用范围为session域内
2.二级缓存
超出session范围之外,可以被所有SQLSession共享
3.三级缓存的配置
动态SQL
使用动态SQL完成多条件查询
if:利用if实现简单的条件选择[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wAkfinlU-1569663076237)(C:\Users\陈陈\Desktop\新建文件夹\8XIS24M79(UCVF8~A7W211H.png)]
choose:相当yujava中的swich语句,通常与when和otherwise搭配
where:简化SQL语句中where的条件判断
set:解决动态更新语句
trim:可以灵活地去除多余的关键字
foreach:迭代一个集合,通常用于in条件
使用if+where实现多条件查询
1.if
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j4Hre1sP-1569663076238)(C:\Users\陈陈\Desktop\新建文件夹\8XIS24M79(UCVF8~A7W211H.png)]
2.where
3.choose
4.foreach
使用if+trim实现多条件查询
使用动态Sql实现更新操作
使用if+set改造更新操作
使用if+trim改造修改操作
使用foreach完成复杂查询
MyBatis入参为List类型的foreach迭代
MyBatis入参为Map类型的foreach迭代