一、简介

发展历史:MyBatis 的前 身是 iBATIS。最初侧重于 密码软件的开发 , 后来发展成为一款基于 Java 的持久层框架。

定      位:MyBatis 是一款优秀的支持自定义 SQL 查询、存储过程和高级映射的持久层框架,消除了 几乎所有的 JDBC 代码和参数的手动设置以及结果集的检索 。 MyBatis 可以使用 XML 或注解进 行配置和映射, MyBatis 通过将参数映射到配置的 SQL 形成最终执行的 SQL 语句 ,最后将执行 SQL 的结果映射成 Java对象返回。这样MyBatis的基本使用知识主要就涉及3个部分。入参、返回值、和SQL主题之后我也是按照这个思路来总结的。

特     点:灵活,充分发挥数据库的各种功能。MyBatis没有将Java对象与数据库关联起来,而是将Java方法与SQL语句关联起来。SQL、及返回值的构造就灵活多变了。

      MyBatis的3.0之后提供了接口调用的方式。有意思的是,这些接口不用我们写具体的实现,只需要和xml文件对应上就行。(是通过java动态代理实现的)

二、注意点

这里只展示一些需要注意的问题。分几个部分说明。

一、result

SQL的查询结果到接口的返回值,有两种方式。通过resultMap、resultType。

这个过程涉及到几个要素:

1、SQL结果的字段名称(若有别名则为别名)

2、resultMap的property[对应接口返回值对象的字段名称]

3、resultMap的column[对应SQL结果的字段名称]

4、接口返回值对象字段名称≈resultType,这俩者差不多。

另外要注意:

  1、数据库的数据类型与返回值的字段类型的对应。比如 Java中byte[] 对应数据库的BLOB 、 LONGVARBINARY、数据库兼容的字节流类型。BIgDecimal数据库兼容的 NUMERIC 或 DECIMAL。

  2、由于Java中的基本类型会有默认值,例如当某个类中存在 private in t age;创建这个类时,age会有默认值0。当使用age属性时,它总会有值。因此在某些情况下,便无法实现使 age为null 并且在动态 SQL的部分,如果使用 age != null 进行判断,结果总会为 true,因而会导致很多隐藏的问题。所以,在实体类中不要使用基本类型 。基本类型包括 byte、int、short、long、float、double、char、boolean。

二、parameter

查询参数可以分为三种方式:parameterMap、parameterType、默认没有
一个参数是可以默认没有、多个参数之前使用parameterMap、后来出现了parameterType

最新文章

  1. iOS切图文件的命名规范
  2. Java开发面试总结
  3. Hibernate反向工程在javaweb下的操作配置
  4. 虚拟机LVM扩容
  5. js - ajax中的get和post说明
  6. 初探appium之元素定位(1)
  7. jquery自动将form表单封装成json的具体实现
  8. How to changes to Table & EDT Relations[AX2012]
  9. [Oracle] - 性能优化工具(1) - AWR
  10. Redis短结构与分片
  11. 如何区分javascript中的方法(method)、函数(function)、事件(event)三个概念?
  12. redis 主从配置实例、注意事项、及备份方式
  13. Unity与iOS原生代码之间的相互调用
  14. Python 日期和时间操作
  15. layer.photos()异步修改图片地址后显示异常
  16. sql server导出数据,本地数据库远程连接不上,怎样设置防火墙(自用)
  17. 补充:ajax post 方式请求
  18. python:学习自顶向下程序设计:竞技体育模拟
  19. HDFS shell操作及HDFS Java API编程
  20. linux zip删除指定文件和追加文件

热门文章

  1. MySQL Online DDL工具
  2. 微博获取原图时重定向到图片的url
  3. Cloudera-JDBC-Driver-for-Apache-Hive
  4. 源特定组播(SSM:Source Specific Multicast)
  5. 【MM系列】SAP MM模块-如何修改物料的移动平均价
  6. Vim常用的功能命令
  7. exists、in和join比较
  8. 小解POJO、PO、BO、VO
  9. navicat和Pycharm的连接
  10. Scrapy 教程(九)-日志系统