提示:仅供参考
MyBatis
MyBatis是实现Java Bean和数据库映射信息结构的持久化框架,简化了JDBC内部操作,提供SqlSession调用操作数据库,还有数据缓存,分页插件等功能。
提示:以下是本篇文章正文内容,下面案例可供参考
一、JDBC执行Sql的步骤
- 加载JDBC驱动器
- 加载JDBC驱动
- 创建数据库连接,并注册到DriverManager中,一般使用Class.forName(string)
- 创建Statement或者PrepareStatement,发送Sql语句
- 访问ResultSet结果集
- 断开连接
二、分页原理与运行流程
1.运行流程
- 通过MyBatis配置文件,加载运行环境,创建SqlSessionFactory全局会话
- 通过SqlSessionFactory,创建SqlSession
- 通过SqlSession开启执行事务和Sql语句
- SqlSession调用Commit()
- 关闭SqlSession
2.分页原理
分页类型 | 实现原理 |
---|---|
物理分页 | 分页Sql语句实现 |
逻辑分页 | 通过游标实现,首先获得全部记录,由offset和limit截断记录 |
MyBatis分页 | 实现原理 |
---|---|
RowBounds | 原理同上逻辑分页 |
物理分页插件 | 通过拦截器,拦截待执行Sql并重写Sql语句 |
- 实现插件原理:实现Interceptor接口和intercept方法
- 提供的插件接口:StatementHandler/ResultSetHandler/Executor/ParameterHandler
- 自定义插件只能围绕这四个接口对象进行拦截
总结
给大家复习#{}和${}的区别?
- ${}是字符串替换,直接替换成变量的值,会引起Sql注入
- #{}是预编译处理,处理时替换成? , 由PrepareStatement调用set赋值
- ${}灵活性更高