什么是ORM框架?
ORM框架全称: Object Retional Mapping, 做数据库列名
使用JDBC手写一个连接关闭, 然后查询一条sql.
public static final String CONNECTION_URL = "jdbc:mysql://***.***.***.***:3306/questions";
public static final String USERNAME = "root";
public static final String PASSWORD = "*****";
public static final String DRIVE_NAME = "com.mysql.cj.jdbc.Driver";
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 获取驱动, Java1.6和mysql驱动5.1之后,不再需要这个了.
Class.forName(DRIVE_NAME);
// 输入账密
Connection connection = DriverManager.getConnection(CONNECTION_URL, USERNAME, PASSWORD);
// 输入sql
String sql = "select question_id, question_text, question_score, create_time, create_by, type, exam_id,\n" +
" question_comment,question_tag,question_img_url\n" +
" from questions.question WHERE question_id=2 ";
PreparedStatement ps = connection.prepareStatement(sql);
// 获得结果
ResultSet resultSet = ps.executeQuery();
while (resultSet.next()) {
String question_text = resultSet.getString("question_text");
System.out.println(question_text);
}
// 关闭连接
ps.close();
connection.close();
}
JDBC的弊端
Mybatis数据处理层分为那四步?
解析Mapper.xml文件在那个包下? 解析config.xml是在那个包下?
SqlSession都提供了那些方法?
Mybatis结构分成三层?分别是什么作用?
Mybatis如何获取数据源
Mybatis如何获取执行sql
Mybatis如何完成参数映射和结果封装
Mybatis如何操作数据库
SqlSession是个接口, 其作用是什么? 底层真正干活的是哪个类? 这是什么设计思想? 有哪些好处?
简要描述一下Configuration类的作用. 什么时候被创建呢?
Executor接口有哪些实现类, 分别有什么区别?
Mybatis都用了什么设计模式?
里面有几种配置的方式?
把xml文件转为对象,然后再去解析对象, 进行java操作, 这一点与安卓相同. xml在Mybatis中做输入接口, 在安卓/前端里做布局. 那么一条sql语句会被封装成对象吗? 如果封装的话, 是哪个类?
Mybatis的cache有哪几种evication算法
实现一下FIFO和LRU算法 (理解LinkedHashMap)
为什么需要先向缓存中放一个占位符?
Mybatis 默认一级缓存是开启还是关闭的?
loadCustomVfs(settings); 这个VFS是什么?
properties节点, resource和url的区别是什么? 能同时写吗?
MetaClass中, 如果处理getter方法和setter的冲突, 那些原因造成的冲突呢?
配置解析主要是那两个包?
session和builder包, builder包是解析xml, 最终生成Configuration和SelSession.
SqlSource有哪些实现类, 分别作用是什么?
Mybatis基础支撑层都有哪些功能, 试举例三种以上.
CacheKey的作用是什么?
XPath 怎么知道按照什么规则进行解析? 如何获取这个规则的?
里面的有几种属性, 还有其他方案吗?
ResueExecutor和Simple区别是什么? 具体是怎么实现的这些区别?
一级缓存什么时候会被清除?
Executor何时创建的? 支持自定义type吗?
Mybatis如何把Xml里的Sql转为可执行的