框架的概念: 框架(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.

最新文章

  1. C++ 之namespace常见用法
  2. C#获取本机可用端口
  3. PDO的一些操作
  4. sqlserver insert 存储过程
  5. gradle手工搭建java项目搭建
  6. javascript - 二叉树
  7. 关于开源授权协议 GPL 和 LGPL
  8. ubuntu关闭THP
  9. poj 2367 Genealogical tree (拓扑排序)
  10. WebView Cache 缓存清除
  11. struts2 0day漏洞
  12. nginx 1.4.2 安装笔记
  13. jQuery动态生成不规则表格前后端
  14. 使用Three.js的材质
  15. Libevent 反应堆的初始化
  16. SQL SERVER服务器登录名、角色、数据库用户、角色、架构的关系
  17. SOUI开发应用展示2
  18. 大牛推荐的30本经典编程书籍,从Python到前端全系列。
  19. Linux平台安装Oracle11gR2数据库
  20. Android Studio怎样查看资源或者函数在哪些类中被引用

热门文章

  1. 我们参与投资36Kr股权众筹项目“易途8”的决策过程
  2. Java线程和多线程(一)——线程的基本概念
  3. 【06】对AJAX的总结(转)
  4. 2018/2/27 Activiti教程之创建流程篇(与Springboot整合版)一
  5. 【IntelliJ 】IntelliJ IDEA 自动导入包 快捷方式 关闭重复代码提示
  6. hdu - 2066 一个人的旅行(基础最短路)
  7. Binary Tree Postorder Traversal(各种非递归实现,完美利用栈结构模拟)
  8. 洛谷 U41572 Portal2
  9. Ubuntu 16.04无损分区大小调整工具Gparted
  10. atom的react自动补全插件