MyBatis 概述
1) 优良的长久层框架?(长久层: 负责将内存中的对象存储到数据库的那一层对象 (DAO).
2) 最大的劣势? (可能低成本的疾速实现数据库中的数据操作)
2.1)开源 (收费 - 成本低)
2.2)简略 (操作步骤, 参数映射, 后果映射)
2.4)灵便 (动静 SQL- 能够更好适配不同需要 -for,if,…)
2.5)稳固 (不会三天两头出错)
2.MyBatis 框架的利用架构?
1)DAO (本人写的数据拜访对象 - 这个对象中要调用 mybatis 标准 -SqlSession)
2)MyBatis API(标准, 标准的实现 - 封装了 JDBC 操作)
3)JDBC API (标准 -Java 官网定义)
4)Driver(JDBC 标准的实现 - 数据库厂商提供其驱动)
1)如何了解 SqlSession?(mybatis 中实现与数据库会话的一个入口对象)
2)测试过程中 SqlSession 标准的具体实现是谁?(SqlSessionTemplate)
3)测试过程中咱们本人创立 SqlSessionFactory 对象了吗?(没有,springboot 工程底层创立 - 开箱即用)
4)SqlSession 对象获取连贯时, 连贯来自哪里?(HikariDataSource 关联的连接池对象)
Bug?
1)IllegalArgumentException (Mapped Statement Collections does not contains …..)
MyBatis 框架为咱们的接口创立实现类?
在 GoodsDao 接口上增加 @Mapper 注解或者在启动类上增加
@MapperScan(“dao 接口所在包 ”)
1)@Mapper 注解的作用是什么?
形容数据逻辑层接口,通知 mybatis 框架这个接口的实现类,由 mybatis 创立,
并将其实现类的对象交给 spring 治理,Spring 会为他治理的这个 bean 起个名字
,默认为接口名,而后首字母小写。
2)MyBatis 为咱们的 Dao 接口创立的实现类及其办法外部做了什么?
a)获取 sqlSession 对象
b) 获取 sql 映射的 key 信息 (namespace,elementId)
c) 基于 statement 获取 sql 映射信息(底层是存储在了 MappedStatement 对象中)
d)基于 sqlsession 以及 sql 实现与数据库的会话。
3)数据层接口 (XxxDao) 能够有多个实现类吗?(能够,然而须要时注入那个须要咱们进行设计)
Bug?
1.BindingException (mybatis 绑定异样)
1)业务类中应用的日志 API 是谁?(org.slf4j.Logger)
2)日志 API 的利用中应用到了什么设计模式?(门面模式)
3)你理解哪些日志的级别吗?(trace,debug,info,error)
4)你晓得日志输入时底层为什么要定义日志级别吗?(便于对日志行为进行关上,敞开操作)
5)日志输入时 ”{}” 作用是什么?(占位符, 相似 sql 中的?)
6)日志能够记录到文件吗?如何配置?(能够,logging.file.path)
7)为什么要将日志的记录放到商品业务逻辑对象中?(日志记录自身就属于一个业务)