Mybatis

1.介绍

Mybatis是支持SQL查询,存储和映射的持久层框架。使用时消除了JDBC代码和参数的设置以及对结果集的封装

Mybatis可以使用注解来进行配置和进行映射,将Mapper和Pojo映射为数据库中的记录

2.Mybatis优势

  1. 消除了JDBC的打码冗余
  2. 简单易学,可以与数据库协同工作
  3. 简单的接收SQL语句
  4. 可以提供第三方缓存的集成支持
  5. 性能更好

3.Mybatis基本使用步骤

1.加入Maven依赖

点击查看代码
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>

2. 创建Dao(Mapper)接口,定义操作数据库内容

  1. 创建Mapper文件

    1. 也叫做映射文件,分别为XXXMapper.java和XXXMapper.xml
    2. XXXMapper.java文件中存放的是方法名称

>

  3.XXXMapper.xml 里面存放的是Sql语句



4.创建Mybatis-config.xml配置文件,在resources中

1. 连接数据库

2. 指定mapper文件的内容

Mybatis动态代理

  1. 理解动态代理
    1. Mybatis帮忙创建dao(mapper)接口的实现类,在实现类中调用SqlSession的方法执行sql语句。
  2. 使用动态代理的要求
  • dao接口和mapper文件放在一起
  • dao和mapper文件名称一致
  • mapper文件中的namespace的值是dao接口的全限定名称
  • mapper文件中的select、delete、update等的id是接口中的方法名称
  • dao接口中不适用重载方法

理解参数

  1. 一个简单类型的参数#
  2. 多个简单类型的参数,使用@Param("自定义名称")
  3. 使用一个java对象,对象的属性值作为mapper文件找到的参数,#
  4. 使用参数位置:语法:#{arg0},#{arg1} ,mybatis3.4之前使用的是 #{0},#
  5. 使用map作为参数,#

#和$的区别

  1. (#)是占位符,表示列值,放在等号的右侧
  2. ($)是占位符,表示字符串连接,sql连接成一个字符串
  3. (#)占位符使用的jdbc指定PerparedStatement对象执行sql语句效率高,没有sql语句注入的风险
  4. $使用的是Statement对象执行sql,效率低,有sql注入的风险

Mybatis返回结果

  1. resultType:表示sql语句的执行结果转化为java对象的类型
  2. 类型的全限定名称
  3. 定义别名:1.mybatis主配置文件中定义;2.;3.使用注解@Alias
  4. resultMap:自定义类名和java对象属性名的关系
  5. like:1.在java代码中指定like的内容;2.在mapper中拼接like

最新文章

  1. MySQL中INFORMATION_SCHEMA是什么?(2)
  2. C#画线源码
  3. Beyond Compare 4
  4. sql 游标例子 根据一表的数据去筛选另一表的数据
  5. 二维码生成Demo
  6. 关于iframe调用父页面元素操作
  7. JS 寻找孩子并打印路径
  8. Android Property Animation 物业动画
  9. equal与==区别
  10. 2.5、Android Studio添加多适配的向量图片
  11. mybatis ----数据级联查询(多对一)
  12. 快速从一个空虚拟机,空idea打通提交spark
  13. php 服务端允许跨域访问
  14. 101210-450789-147200(可以激活Xshell5,而且可以升级) 亲测可用 只能用于xshell5
  15. HTML第七章总结
  16. Beta阶段——第2篇 Scrum 冲刺博客
  17. Code Signal_练习题_Knapsack Light
  18. Kafka 0.11客户端集群管理工具AdminClient
  19. java学习(三)类、实例
  20. 2017微软 MVP 数据实践技术活动日(北京站)

热门文章

  1. Vue报错:component has been registered but not used
  2. onps栈移植说明(1)——onps栈的配置及裁剪
  3. &lt;四&gt;构造函数初始化列表
  4. vue3路由的使用
  5. Window10开机键盘映射
  6. HDC.Cloud Day | 全国首场上海站告捷,聚开发者力量造梦、探梦、筑梦
  7. python编程学习方法及计算机基础理论
  8. 快捷打开cmd管理员模式
  9. springboot接收前端传参的几种方式
  10. python实现AES加密解密