MyBatis 知识点
- 2010年,随着开发团队转投Google Code旗下,ibatis 3.x 正式更名为 Mybatis。
 
orm工具的基本思想
- 无论是 hibernate、Mybatis,orm工具有一个共同点:
 
- 从配置文件(通常是 XML 配置文件中)得到 sessionfactory.
 - 由 sessionfactory 产生 session
 - 在 session 中完成对数据的增删改查和事务提交等.
 - 在用完之后关闭 session 。
 - 在 Java 对象和 数据库之间有做 mapping 的配置文件,也通常是 xml 文件。
 
配置文件解释下:
- Configuration.xml 是 mybatis 用来建立 sessionFactory 用的,里面主要包含了数据库连接相关东西,还有 java 类所对应的别名,比如
<typeAlias alias="User" type="com.yihaomen.mybatis.model.User"/>这个别名非常重要,你在 具体的类的映射中,比如 User.xml 中 resultType 就是对应这里的。要保持一致,当然这里的 resultType 还有另外单独的定义方式,后面再说。 - Configuration.xml 里面 的
<mapper resource="com/yihaomen/mybatis/model/User.xml"/>是包含要映射的类的 xml 配置文件。 - 在 User.xml 文件里面 主要是定义各种 SQL 语句,以及这些语句的参数,以及要返回的类型等。
 
对应class的xml中,property对应类的属性,column对应查询sql的项。
问:mybatis mapper xml文件配置resultmap时,id行和result行有什么区别?
答:id和result都是映射单列值到一个属性或字段的简单数据类型。
唯一不同是:id是作为唯一标识的,当和其他对象实例对比的时候,这个id很有用,尤其是嵌入缓存和结果映射时。问:resultMap和resultType的区别?
答:MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap;
resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用;
但是resultType跟resultMap不能同时存在。
在MyBatis进行查询映射的时候,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。当提供的返回类型属性是resultType的时候,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。
所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性,而当我们提供的返回类型是resultMap的时候,Mybatis就会根据我们配置的信息做映射。
mybatis的日志实现
- 具体选择哪个日志实现工具由MyBatis的内置日志工厂确定。它会使用最先找到的(按下面列举的顺序查找)。 如果一个都未找到,日志功能就会被禁用。
SLF4J
Apache Commons Logging
Log4j 2
Log4j
JDK logging
当一个系统有多个日志的时候,如果想用低等级的框架,就需要在mybatis配置文件中写上这句话声明一下: 
<setting name="logImpl" value="LOG4J"/>
logImpl可选的值有:SLF4J、LOG4J、LOG4J2、JDK_LOGGING、COMMONS_LOGGING、STDOUT_LOGGING、NO_LOGGING 或者是实现了接口org.apache.ibatis.logging.Log的类的完全限定类名, 并且这个类的构造函数需要是以一个字符串(String类型)为参数的。
MyBatis 知识点的更多相关文章
- Mybatis知识点总结
		
---恢复内容开始--- Mybatis知识点总结 1.#{}和${}的区别是什么? 答:#{}的使用场景:在表的sql映射文件中如下使用: <mapper namespace="co ...
 - MyBatis知识点总结(一)
		
前言:本篇主要记录在MyBatis学习过程中的主要知识点. 1.mybatis环境的搭建,通过maven可以快速的进行环境的搭建. <!--文件版本--> <properties&g ...
 - MyBatis 知识点梳理
		
简单地梳理下MyBatis相关的知识点,主要想让自己重新捡起以前学的框架,如果能给广大程序猿朋友有所帮助那就更好了.有疏漏的地方也欢迎大家评论指出.闲言少叙,进入正题....... MyBatis知识 ...
 - mybatis知识点
		
1.Mybatis比IBatis比较大的几个改进是什么 a.有接口绑定,包括注解绑定sql和xml绑定Sql , b.动态sql由原来的节点配置变成OGNL表达式, c. 在一对一,一对多的时候引进了 ...
 - MyBatis知识点整理
		
1.MyBatis一般使用步骤 1.1获取Configuration实例或编写配置文件 //获取Configuration实例的样例 TransactionFactory transactionFac ...
 - mybatis知识点(已掌握)
		
1.${} 和 #{} 的区别? ${} 直接显示传入数据,不能防止sql注入,一般用于传数据库对象(比如表名). #{} 传入数据被当成字符串,自动加上双引号,防止sql注入. 2.有哪些Execu ...
 - 知名互联网公司校招 Java 开发岗面试知识点解析
		
天之道,损有余而补不足,是故虚胜实,不足胜有余. 本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向.在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几 ...
 - 后端——框架——持久层框架——Mybatis——《Mybatis从入门到精通》读书笔记——初篇
		
1.Mybatis知识点 框架的知识点大致可以分为三个部分 基础: 介绍编写增,删,改,查: 动态标签: config配置文件 Mapper配置文件 插件:常见的插件有三个 pageHelper:分页 ...
 - ORM——Mybatis
		
引言 ORM 是 blablabla…… Mybatis知识点
 
随机推荐
- UVA-10020 Minimal coverage(贪心)
			
题目大意:在x轴上,给一些区间,求出能把[0,m]完全覆盖的最少区间个数及该情形下的各个区间. 题目分析:简单的区间覆盖问题.可以按这样一种策略进行下去:在所有区间起点.长度有序的前提下,对于当前起点 ...
 - 一篇关于oracle psu的文章(转)
			
Oracle Database PSU/CPU Posted on 2011-07-28 16:27 dbblog 阅读(2569) 评论(0) 编辑 收藏 1. 什么是PSU/CPU?CPU: Cr ...
 - MyEclipse WebSphere开发教程:WebSphere 8安装指南(一)
			
[周年庆]MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] IBM为使用WebSphere测试应用程序的开发人员提供了免费的WebSphere Ap ...
 - 【数据库】MFC ODBC(二)
			
三.CRecordset类 1.IsBOF与IsEOF (1)IsBOF 如果记录集没有记录,或已经向前游动到第一个记录之前,则返回非零:否则返回0.详细说明如下: 1)访问Open函数之后,如果记录 ...
 - hibernate中3个重要的类 Configuration SessionFactory Session
			
配置类Configuration 主要负责管理hibernate的配置信息以及启动hibernate,在hibernate运行时,配置文件取读底层的配置信息,基本包括数据库驱动,url.usernam ...
 - How to understand three foundanmental faults?
			
1.First ,try to understand "Green function and the moment tensor" in Seismology,9.1 2.seco ...
 - rim
			
“也许我们需要一些药物了”卡拉米走回他的研究室 不去看他最好的朋友的尸体. 过了今晚,他的血肉会被工虫分解. 播种机会犁过他的骨殖,种下土豆与甜菜. 索斯蹲下,不禁思考 生与死在这里太过平常 这是他们 ...
 - 攻防:文件上传漏洞的攻击与防御,转自H3C
			
WebShell就是以asp.php.jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门.黑客在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器WEB目 ...
 - PHP多种序列化/反序列化的方法 serialize,json_encode等
			
序列化是将变量转换为可保存或传输的字符串的过程:反序列化就是在适当的时候把这个字符串再转化成原来的变量使用.这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性. 1. serialize ...
 - OC基础:内存(内存管理)                                                    分类:            ios学习 OC             2015-06-25 16:50    73人阅读    评论(0)    收藏
			
自动释放池: @autoreleasepool { } 内存管理机制 谁污染,谁治理 垃圾回收机制:gc(Garbage collection),由系统管理内存,开发人员不需要管理. OC ...