持久层-MyBatis

简介

什么是 MyBatis?

MyBatis 是一款优秀的持久层框架(其实也就是半自动的ORM),它支持自定义 SQL、存储过程以及高级映射(映射可能是你说有疑惑的终极答案)。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML(建议采用) 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。以上就是官方的解答了,作为一款持久层框架确实是很

香的,值得追捧

日常学习第一步:springboot 集成mybatis,不多说上货

1、引入依赖

	<dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.1</version>
    </dependency>

2、yml配置

mybatis:
  mapper-locations: classpath:mapper/*.xml                 #扫描xml
  type-aliases-package: top.glkj.teacherEvaluation.mapper  #扫描mapper文件目录
  configuration:
    map-underscore-to-camel-case: true  
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl   #开启控制台打印

到这里有很个疑问,spring boot 明明可以注解式sql,为啥不用(其实我也不是很了解,但是知道一点据说使用注解式回答项目其他成员打死)

采用注解式的步骤拿走不谢(愿天堂没有程序员):

1、上面第一步就是这第一步(我不想在写一次了-

2、在启动类中上方加入@mapperscan(“这里是你的mapper路径”)

3、mapper中直接开始写如:

​ @inster(“这里是你的sql”)

​ public List<这里是你的实体类> getAlluser(){

​ return;

​ }

4、没有了,等待同事的淳淳教导

作用域(Scope)和生命周期

类名称SCOPE
SqlSessionFactoryBuildermethod
SqlSessionFactoryapplication
SqlSessionrequest/method (可以认为是线程级)
Mappermethod
说着这还得说说resultMap

resultMap 元素有很多子元素和一个值得讨论的结构。

resultMap

  • constructor - 用于在实例化类时,注入结果到构造方法中
    idArg - ID 参数;标记出作为 ID 的结果可以帮助提高整体性能
    arg - 将被注入到构造方法的一个普通结果

  • id – 一个 ID 结果;标记出作为 ID 的结果可以帮助提高整体性能

  • result – 注入到字段或 JavaBean 属性的普通结果

  • association – 一个复杂类型的关联;许多结果将包装成这种类型

  • 嵌套结果映射 – 关联可以指定为一个 resultMap 元素,或者引用一个

  • collection – 一个复杂类型的集合嵌套结果映射 – 集合可以指定为一个 resultMap 元素,或者引用一个

  • discriminator – 使用结果值来决定使用哪个 resultMap.

    resultMap 关联查询.
    关联查询分为两种:

  • 关联的嵌套查询

相信用过ssm框架童鞋们都知道了,在这不做过多描述

再者就是说说$和#了

(markdown隔绝) #{} 这种取值是编译好SQL语句再取值(PreparedStatement安全,有效防止sql注入,翻译成了一个 “?”)
${} 这种是取值以后再去编译SQL语句 (Statement,代表一个静态SQL语句,只能执行一次.)

​ (虽然没得啥好说的,但是面试的hr一说起sql相关的东西就是喜欢这个调调)

呐,就这些标签了

、、、、其中还有关系对应标签(本人懒,自己去面向百度),加上动态sql的9个标签,trim|where|set|foreach|if|choose|when|otherwise|bind等,其中为sql片段标签,通过标签引入sql片段,为不支持自增的主键生成策略标签。

我是最后一点了

Mybaits的优点:

(1)基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态SQL语句,并可重用。

(2)与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接;

(3)很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis都支持)。

(4)能够与Spring很好的集成;

(5)提供映射标签,支持对象与数据库的ORM字段关系映射;提供对象关系映射标签,支持对象关系组件维护。

MyBatis框架的缺点:

(1)SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求。

(2)SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

MyBatis框架适用场合:

(1)MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案。

(2)对性能的要求很高,或者需求变化较多的项目,如互联网项目,MyBatis将是不错的选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值