mybatis必知必会一

入门:

1、每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。

2、MyBatis 包含一个名叫 Resources 的工具类,它包含一些实用方法,可使从 classpath 或其他位置加载资源文件更加容易。

3、 XML 头部的声明,用来验证 XML 文档正确性。environment 元素体中包含了事务管理和连接池的配置。mappers 元素则是包含一组 mapper 映射器(这些 mapper 的 XML 文件包含了 SQL 代码和映射定义信息)。

4、SqlSession 完全包含了面向数据库执行 SQL 命令所需的所有方法。

5、依赖注入框架可以创建线程安全的、基于事务的 SqlSession 和映射器(mapper)并将它们直接注入到你的 bean 中,因此可以直接忽略它们的生命周期。

6、SqlSessionFactoryBuilder 实例的最佳作用域是方法作用域。

7、SqlSessionFactory 的最佳作用域是应用作用域。

8、每个线程都应该有它自己的 SqlSession 实例。SqlSession 的实例不是线程安全的,因此是不能被共享的,所以它的最佳的作用域是请求或方法作用域。

XML配置:

文档顶层结构:

configuration 配置

  • properties 属性
  • settings 设置
  • typeAliases 类型别名
  • typeHandlers 类型处理器
  • objectFactory 对象工厂
  • plugins 插件
  • environments 环境
    • environment 环境变量
      • transactionManager 事务管理器
      • dataSource 数据源
  • databaseIdProvider 数据库厂商标识
  • mappers 映射器

XML映射文件:

SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序):

  • cache – 给定命名空间的缓存配置。
  • cache-ref – 其他命名空间缓存配置的引用。
  • resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。
  • sql – 可被其他语句引用的可重用语句块。
  • insert – 映射插入语句
  • update – 映射更新语句
  • delete – 映射删除语句
  • select – 映射查询语句

1、MyBatis 支持 STATEMENT,PREPARED 和 CALLABLE 语句的映射类型,分别代表 PreparedStatement 和 CallableStatement 类型。

resultMap
  • constructor - 用于在实例化类时,注入结果到构造方法中
    • idArg - ID 参数;标记出作为 ID 的结果可以帮助提高整体性能
    • arg - 将被注入到构造方法的一个普通结果
  • id – 一个 ID 结果;标记出作为 ID 的结果可以帮助提高整体性能
  • result – 注入到字段或 JavaBean 属性的普通结果
  • association – 一个复杂类型的关联;许多结果将包装成这种类型
    • 嵌套结果映射 – 关联可以指定为一个 resultMap 元素,或者引用一个
  • collection – 一个复杂类型的集合
    • 嵌套结果映射 – 集合可以指定为一个 resultMap 元素,或者引用一个
  • discriminator – 使用结果值来决定使用哪个 resultMap
    • case – 基于某些值的结果映射
      • 嵌套结果映射 – 一个 case 也是一个映射它本身的结果,因此可以包含很多相 同的元素,或者它可以参照一个外部的 resultMap

转载于:https://www.cnblogs.com/jsersudo/p/10362551.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mybatis一个流行的Java持久层框架,它提供了许多优点和核心组件。在面试,以下是一些可能会被问到的问题和答案: 1. Mybatis的优点有哪些? Mybatis有以下几个优点: - Mybatis提供了灵活且强大的映射机制,可以通过XML或注解来配置和映射原生信息,将POJO映射成数据库的记录。这样可以避免编写大量的JDBC代码,并且不需要手动设置参数和获取结果集。 - Mybatis支持动态SQL,可以根据不同的条件动态生成SQL语句,提供了更好的灵活性和可扩展性。 - Mybatis具有良好的性能和可维护性,可以通过缓存机制来提升查询性能。 - Mybatis与现有的数据库交互技术无缝集成,可以很方便地与Spring等框架集成。 2. Mybatis如何处理#{}? 在处理#{}时,Mybatis会将其转换为?,然后使用PreparedStatement的set方法来设置参数的值。 3. 在使用Mybatis的<if>标签时,为什么需要@Param注解? 当只有一个参数并且在<if>标签里使用时,Mybatis需要通过@Param注解来指定参数的名称,以便正确地组装SQL语句。 4. Mybatis的核心组件有哪些? Mybatis的核心组件包括: - SqlSessionFactory:用于创建SqlSession对象的工厂。 - SqlSession:用于执行数据库操作的核心接口。 - Mapper接口:用于定义数据访问接口,通过调用Mapper接口的方法来执行SQL语句。 - Configuration:用于配置并管理Mybatis的各种设置和属性。 以上是一些关于Mybatis的面试常见问题和答案,希望对你有帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值