ORM简介
连接数据库步骤:
1、注册数据库驱动类,指定信息
2、打开数据库连接
3、通过数据库连接创建对象
4、执行SQL
5、读取数据转换成JavaBean对象(将关系模型到对象模型的转换)
6、关闭连接释放资源
ORM框架根据映射的配置文件完成数据在对象模型与关系模型之间的映射,封装重复的代码
ORM对比
Hibernate:封装数据库层面的全部操作,存在性能问题
Mybatis:能够编写原生SQL,可控性比较高;根据不同条件动态拼接SQL
Mybatis流程
1、解析全局配置,解析mapper映射文件,循环解析mapper节点以及其下的子节点(select/resultMap/parameterMap/sql),将sql语句构造为sqlSource,mapper节点构造成MapStatement对象
-
${}->dynamicSqlSource,会在执行sql前赋值,属于静态文本替换,建议在select语句使用
-
#{}->StaticSqlSource,sql占位符解析时将#{}改为?,执行sql时对?赋值
2、根据方法形参生成 -
JDK8之前javac编译是不会把构造器和方法的参数名编译进class中(减少.class),如果需要获取参数名,可以在方法上加上注解,反射获取注解的值从而获取参数名
参考来自《JavaGuide面试突击版》