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)为什么要将日志的记录放到商品业务逻辑对象中?(日志记录自身就属于一个业务)