MyBatis基本以

框架的定义:
框架(Framework)是一个资了而是选用的国有结构的半成品.

多少持久化:
数据持久化是以内存中的数据模型转换为存储模型,以及用积存模型转换为外存中的数据模型的统称.

ORM(Object/Relational/Mapping):
对象/关系映射,是均等栽多少持久化技术.即对象以及数据库通过炫耀建立关系.

 

否指定jar文件指定源代码文件:
右击jar文件–>Properties–>Java Source
Attachment{Workspace:工作空间|External File:外部文件|External
Folder:外部文件夹}

 

缔造MyBatis-Configuration核心配置文件:

<?xml version="1.0" encoding="utf-8" ?>

<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" >

<configuration> <!--配置-->
       properties <!--可以配置在Java属性配置文件中-->
       settings     <!--修改MyBatis在运行时的行为方式-->
       typeAliases <!--为Java类型命名一个别名(简称)-->
       typeHandlers <!--类型处理器-->
       objectFactory <!--对象工厂-->
       plugins           <!--插件-->
       enviroments   <!--环境-->
              transactionManager  <!--事务管理器-->
              dataSource               <!--数据源-->
       mappers          <!--映射器-->
</configuration>    

留神:xml文件之素节点有所一定顺序.

 

 

MyBatis标签基本说明
mapper

映射文件的根元素节点,只有一个属性namespace(命名空间).

作用如下:1)、用以区分不同的mapper,全局唯一.

               2)、绑定DAO接口,即面向接口编程.当namespace绑定某一接口之后,可以不用写该接口的实现类,MyBatis会通过接口的完整限定名查找到对应的mapper配置来执行SQL语句. 因此namespace的命名空间必须要跟接口同名.

cache  p配置给定命名空间的缓存.
cache-ref 从其他命名空间引用缓存配置.
resultMap 用来描述数据库结果集和对象的对应关系.
sql 可以重用的SQL块,也可以被其他语句引用.
insert 映射插入语句.
update 映射更新语句.
delete 映射删除语句.
select 映射查询语句.

 

 

 

创立mybatis-Mapping映射文件:

<? version="3.0" encoding="utf-8" ?>

<!DOCTYPE mapper PUBLIC "-//mybas.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<mapper namespace="{动态代理:包名+类名 | 唯一标识}" >
          cache <!--配置给定命名空间的缓存-->
          cache-ref <!--从其他命名空间引用缓存配置-->
          resultMap <!--用来描述数据库结果集和对象的对应关系-->
          sql      <!--可以重用的SQL块,也可以被其他语句引用-->
          insert  <!--映射插入语句-->
          update   <!--映射更新语句-->
          delete    <!--映射删除语句-->
          select    <!--映射查询语句-->
</mapper>

 association:
映射对象,仅处理同对同关系.使用javaType指定类型.

collection:
映射对象,处理同针对多干,使用ofType指定集合类型.

 

resultType:resultType直接表示回去路,包括基础数据类型和复杂性数据类型.

resultMap:result’Map则是指向标resultMap定义的援,对许外部resultMap的id,表示回去结果映射到啦一个resultMap上.应用场景:数据库字段信息及对象属性不均等或用再次复杂的一道查询以便自由支配映射结果.

resultType和resultMap二者存一.

 

缓存配置的老三种方式:

<!--在MyBatis-Configuration文件进行全局cache配置:-->
<settings>
     <setting name="cacheEnabled" value="true" />
</settings>

<!--在mapper文件设置该mapper标签的缓存配置-->
<cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true" />

<!--在mapper文件中的具体标签中设置缓存
#需设置 useCache="true"
#在标签体设置缓存配置-->

 

 

MyBatis传参方式:

        1)、使用Map进行传参,
通过#{参数称作}进行得

        2)、使用实参进行传参,通过#{形参的次第,0起始}进行得

         
3)、使用注解<@Paran(“注解名称”)>进行传参, 通过#{注解名称}进行得

        
 4)、通过包装对象开展传参,通过#{属性名}进行得

 

执行mybatis配置:

SqlSessionFactory SSF=SqlSessionFactoryBilder().build();
SqlSession SS=SSF.openSession();
//openSession()方法的参数为boolean值,true表示关闭事务控制,自动提交;false表示开启事务,默认为true.

 

settings元素支持的属性
设置项 描述 允许值 默认值
cacheEnabled 对在此配置文件的所有cache进行全局性开/关设置. true|false true
 lazyLoadingEnabled 全局性设置懒加载.如果设为false,则所有相关联的都会被初始化加载  true|false    true 
 autoMappingBehavior  MyBatis对于resultMap自动映射的级别  NONE|PARTIAL|FULL PARTIAL 

 

 

 

 

 

 

 

 

 

mybatis缓存:

<!--在mybatis-config进行全局二级缓存的配置-->
<settings>
       <setting name="cacheEnabled" value="true" />
</settings>

<!--在mapper进行局部二级缓存配置-->
<cache eviction="FIFO" flushInternal="60000" size="512" readOnly="true" />

<!--可以对指定的查询应用缓存配置:useCache="true"-->

 

DTD文件引入:

               
MyEclipse开发软件-(自动联想)-》Window–>Preferences–>MyEclipse–>Files
and Editors–>XML–>XML Catalog

 

 

mybatis动态标签
if 利用if实现简单的条件选择
choose(when,otherwise) 相当于Java中的switch语句,通常与when和otherswise搭配
where 简化SQL语句中where的条件判断
set 解决动态更新语句
trim 可以灵活地去除多余的关键字
foreach 迭代一个集合,通常用于in条件.

foreach注意:

    1)MyBatis接受的参数类型:基本型,对象,List,数组,Map.

    2)collection的入参几栽情况:

                1)若入参为基本项目:变量名也key,变量值为value.

                2)若入参为对象:对象的性能名吧key,属性值为value.

                3)若入参为List或Array:
该集的类型小写即为key,集合值为value.

 

 

网站地图xml地图