• 2010年,随着开发团队转投Google Code旗下,ibatis 3.x 正式更名为 Mybatis。

orm工具的基本思想

  • 无论是 hibernate、Mybatis,orm工具有一个共同点:
  1. 从配置文件(通常是 XML 配置文件中)得到 sessionfactory.
  2. 由 sessionfactory 产生 session
  3. 在 session 中完成对数据的增删改查和事务提交等.
  4. 在用完之后关闭 session 。
  5. 在 Java 对象和 数据库之间有做 mapping 的配置文件,也通常是 xml 文件。

配置文件解释下:

  1. Configuration.xml 是 mybatis 用来建立 sessionFactory 用的,里面主要包含了数据库连接相关东西,还有 java 类所对应的别名,比如<typeAlias alias="User" type="com.yihaomen.mybatis.model.User"/> 这个别名非常重要,你在 具体的类的映射中,比如 User.xml 中 resultType 就是对应这里的。要保持一致,当然这里的 resultType 还有另外单独的定义方式,后面再说。
  2. Configuration.xml 里面 的<mapper resource="com/yihaomen/mybatis/model/User.xml"/>是包含要映射的类的 xml 配置文件。
  3. 在 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 知识点的更多相关文章

  1. Mybatis知识点总结

    ---恢复内容开始--- Mybatis知识点总结 1.#{}和${}的区别是什么? 答:#{}的使用场景:在表的sql映射文件中如下使用: <mapper namespace="co ...

  2. MyBatis知识点总结(一)

    前言:本篇主要记录在MyBatis学习过程中的主要知识点. 1.mybatis环境的搭建,通过maven可以快速的进行环境的搭建. <!--文件版本--> <properties&g ...

  3. MyBatis 知识点梳理

    简单地梳理下MyBatis相关的知识点,主要想让自己重新捡起以前学的框架,如果能给广大程序猿朋友有所帮助那就更好了.有疏漏的地方也欢迎大家评论指出.闲言少叙,进入正题....... MyBatis知识 ...

  4. mybatis知识点

    1.Mybatis比IBatis比较大的几个改进是什么 a.有接口绑定,包括注解绑定sql和xml绑定Sql , b.动态sql由原来的节点配置变成OGNL表达式, c. 在一对一,一对多的时候引进了 ...

  5. MyBatis知识点整理

    1.MyBatis一般使用步骤 1.1获取Configuration实例或编写配置文件 //获取Configuration实例的样例 TransactionFactory transactionFac ...

  6. mybatis知识点(已掌握)

    1.${} 和 #{} 的区别? ${} 直接显示传入数据,不能防止sql注入,一般用于传数据库对象(比如表名). #{} 传入数据被当成字符串,自动加上双引号,防止sql注入. 2.有哪些Execu ...

  7. 知名互联网公司校招 Java 开发岗面试知识点解析

    天之道,损有余而补不足,是故虚胜实,不足胜有余. 本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向.在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几 ...

  8. 后端——框架——持久层框架——Mybatis——《Mybatis从入门到精通》读书笔记——初篇

    1.Mybatis知识点 框架的知识点大致可以分为三个部分 基础: 介绍编写增,删,改,查: 动态标签: config配置文件 Mapper配置文件 插件:常见的插件有三个 pageHelper:分页 ...

  9. ORM——Mybatis

    引言 ORM 是 blablabla…… Mybatis知识点

随机推荐

  1. UVA-10020 Minimal coverage(贪心)

    题目大意:在x轴上,给一些区间,求出能把[0,m]完全覆盖的最少区间个数及该情形下的各个区间. 题目分析:简单的区间覆盖问题.可以按这样一种策略进行下去:在所有区间起点.长度有序的前提下,对于当前起点 ...

  2. 一篇关于oracle psu的文章(转)

    Oracle Database PSU/CPU Posted on 2011-07-28 16:27 dbblog 阅读(2569) 评论(0) 编辑 收藏 1. 什么是PSU/CPU?CPU: Cr ...

  3. MyEclipse WebSphere开发教程:WebSphere 8安装指南(一)

    [周年庆]MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] IBM为使用WebSphere测试应用程序的开发人员提供了免费的WebSphere Ap ...

  4. 【数据库】MFC ODBC(二)

    三.CRecordset类 1.IsBOF与IsEOF (1)IsBOF 如果记录集没有记录,或已经向前游动到第一个记录之前,则返回非零:否则返回0.详细说明如下: 1)访问Open函数之后,如果记录 ...

  5. hibernate中3个重要的类 Configuration SessionFactory Session

    配置类Configuration 主要负责管理hibernate的配置信息以及启动hibernate,在hibernate运行时,配置文件取读底层的配置信息,基本包括数据库驱动,url.usernam ...

  6. How to understand three foundanmental faults?

    1.First ,try to understand "Green function and the moment tensor" in Seismology,9.1 2.seco ...

  7. rim

    “也许我们需要一些药物了”卡拉米走回他的研究室 不去看他最好的朋友的尸体. 过了今晚,他的血肉会被工虫分解. 播种机会犁过他的骨殖,种下土豆与甜菜. 索斯蹲下,不禁思考 生与死在这里太过平常 这是他们 ...

  8. 攻防:文件上传漏洞的攻击与防御,转自H3C

    WebShell就是以asp.php.jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门.黑客在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器WEB目 ...

  9. PHP多种序列化/反序列化的方法 serialize,json_encode等

    序列化是将变量转换为可保存或传输的字符串的过程:反序列化就是在适当的时候把这个字符串再转化成原来的变量使用.这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性. 1.  serialize ...

  10. OC基础:内存(内存管理) 分类: ios学习 OC 2015-06-25 16:50 73人阅读 评论(0) 收藏

    自动释放池: @autoreleasepool { } 内存管理机制       谁污染,谁治理 垃圾回收机制:gc(Garbage collection),由系统管理内存,开发人员不需要管理. OC ...