持久层框架--mybatis

本文详细介绍了Mybatis作为持久层框架的特点和使用方法,包括SqlSessionFactory、SqlSession、连接池和读写分离。讨论了XML配置文件、动态SQL如<foreach>、<if>和<where>标签的应用,并解析了一对一、一对多关系的配置。同时,文章还探讨了不同加载方式,如预加载、及时加载和延迟加载的实现和应用场景。
摘要由CSDN通过智能技术生成

持久层框架

所有的持久层框架

1.jdbc--都做了封装

2.Sql--有的做了封装

封装了一半的就是半自动框架。

两样都封装了就是全自动框架。

 

前身是ibatis 、开源。

 

轻量级框架。

1.Xml

a) 数据库配置文件

b) 接口、实体、sql语句之间的配置关系。

2.Java类、接口

SqlSessionFactory

SqlSession:封装jdbc的连接   维护持久层到数据库的会话。   

连接池:管理连接  如何管理?

读写分离。

 

02--

表达式不要写在sql语句里面,会影响查询效率。

mybatis映射层中 map作为参数的时候只能单独存在。

 

<!-- namespace 命名空间,实际上就是相当于我们的程序中的包,

1、用于分类

2、保证命名空间内部的文件都是唯一的--> 


Sql标签 :

把相同的代码进行封装。

<sql id=”eg”>where user_name like concat(#{map.name},’%’)  </>

在需要用到的地方使用 include标签进行引用

 Select  name  form  t_emp  <include  refid=”eg”></>


动态sql

<foreach>

</foreach>

 

<where>标签会直接忽略掉紧随其后的and 或者 or

<if>


<if test=”条件表达式 --map.name != null ”> 标签 ---//如果传递的参数的map,那 //test里面的表达式只能取键来进行比较,不能使用 #$

 user_name like concat(#{map.name},’%’)  --  满足条件后添加sql内容

</>

 

<trim prefix=”where” prefixOverides=”and|or” suffix=”order by” suffixOverides=”and|or” > 标签  在不使用where标签的时候使用。

//prefix 前缀

//suffixOverides  后缀

user_name like concat(#{map.name},’%’)

</trim>

Id desc;

 

Switch

 

<set >标签

  <if test=’”user.name != null”>  条件语句后需要添加”,” ,如果是最后一个条件 会自动去掉”,”

User_name =#{user.name},     

</>

<if test=’”user.sex!= null”>

User_name =#{user.sex},       

</>

<if test=’”user.age!= null”>

User_name =#{user.age} ,      

</>


</>

 

对象中包含对象要取值就用

对象.对象.属性


Mybatis支持一个标签内写多条sql

在配置时要添加  allowMultiQuery

 

类与类的关系

1.继承  子类与父类

2.实现   接口

3.关联   

4.组合、聚合--整体与部分的关系 组合整体消亡个体随之消亡   聚合整体消亡,个体继续存在。

5.依赖  使用与被使用的关系

 

关系--在一定范围内有效。

 

关联关系。

一对一

 

对象包含对象时添加配置:

<association property=”属性(javabean中对应的字段)”  type=”属性的类型” >  关联关系是1  就是单独的一个对象

<>      属性1

<>   属性2

</>

 

全局开启延迟加载

<seting   name =”lazyLoadingEnabled

”  value=”true”>

   <seting>


<association property=”属性(javabean中对应的字段)” 

 javatype=”属性的类型” 

//Fetchtype=”lazy”;--延迟加载。

Select=”请求路径.对应sqlid

Column=”结果集里面对应的值”

 

>


删除时先删和自己有关系的。


同时执行多条sql语句的时候 ,受影的结果是最后一条语句影响的行数。

加载方式

1.预加载,联表查询。

2.及时加载。先查自己,再查与之有关联的数据

3.延迟加载,懒加载。使用的时候再加载。--内部实现代理模式。 Fetchtype=”lazy”


一对多:

 

<collection property=” ” javatype =””  select=”” column =””>

</>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值