首页 > 学院 > 开发设计 > 正文

持久层框架--mybatis

2019-11-10 16:57:13
字体:
来源:转载
供稿:网友

持久层框架

所有的持久层框架

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=”请求路径.对应sql的id”

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

 

>

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

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

加载方式

1.预加载,联表查询。

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

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

一对多:

 

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

</>


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表