没有合适的资源?快使用搜索试试~ 我知道了~
基础知识(重点,内容量多) 对原生态jdbc程序(单独使用jdbc开发)问题总结 mybatis框架原理 (掌握) mybatis入门程序 用户的增、删、改、查 mybatis开发dao两种方法: ① :原始dao开发方法(程序需要编写dao接口和dao实现类)(掌握) ② :mybaits的mapper(代理)接口(相当于dao接口)代理开发方法(掌握)第二种要掌握 mybatis配置文件SqlMapConfig.xml*** mybatis核心: mybatis输入映射(掌握) mybatis输出映射(掌握) mybatis的动态sql(掌握) *****灵活 高级知识 订单商品数据模型分析 高级结果集映射(一对一、一对多、多对多) mybatis延迟加载 mybatis查询缓存(一级缓存、二级缓存) mybaits和spring进行整合(掌握) mybatis逆向工程
资源推荐
资源详情
资源评论
javaEE 框架课程
Mybas
框架课程
javaEE 框架课程
1 Mybas 入门
1.1 单独使用 jdbc 编程问题总结
1.1.1 jdbc 程序
Public static void main(String[] args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
//① 加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//② 通过驱动管理类获取数据库链接
connection =
DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?
characterEncoding=utf-8", "root", "mysql");
//定义 sql
语句 ?表示占位符
String sql = "select * from user where username
= ?";
//③ 获取预处理 statement
preparedStatement =
connection.prepareStatement(sql);
//设置参数,第一个参数为 sql
语句中参数的序号(从 1 开始),第二
个参数为设置的参数值
preparedStatement.setString(1, "王五");
//④ 向数据库发出 sql
执行查询,查询出结果集
resultSet = preparedStatement.executeQuery();
//遍历查询结果集
while(resultSet.next()){
System.out.println(resultSet.getString("id")+"
"+resultSet.getString("username"));
javaEE 框架课程
}
} catch (Exception e) {
e.printStackTrace();
}finally{
//⑤ 释放资源
if(resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(preparedStatement!=null){
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
上边使用 jdbc 的原始方法(未经封装)实现了查询数据库表记录的操作。
1.1.2 jdbc 编程步骤:
1、 加载数据库驱动
2、 创建并获取数据库链接
3、 创建 jdbc statement 对象
4、 设置 sql 语句
javaEE 框架课程
5、 设置 sql 语句中的参数(使用 preparedStatement)
6、 通过 statement 执行 sql 并获取结果
7、 对 sql 执行结果进行解析处理
8、 释放资源(resultSet、preparedstatement、connecon)
1.1.3 jdbc 问题总结如下:
1、 数据库链接创建、释放频繁 造成系统资源浪费从而影响系统性能,如果使用数据库链
接池可解决此问题。
2、 Sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动
需要改变 java 代码。
3、 使用 preparedStatement 向占位符号传参数存在硬编码,因为 sql 语句的 where 条件不
一定,可能多也可能少,修改 sql 还要修改代码,系统不易维护。
4、 对结果集解析存在硬编码(查询列名),sql 变化导致解析代码变化,系统不易维护,
如果能将数据库记录封装成 pojo 对象解析比较方便。
1.2 MyBatis 介绍
MyBatis 本是 apache 的一个开源项目 iBatis, 2010 年这个项目由 apache
software foundation 迁移到了 google code,并且改名为 MyBatis,实质上 Mybatis
对 ibatis 进行一些改进。
MyBatis 是一个优秀的持久层框架,它对 jdbc 的操作数据库的过程进行封装,使开
发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建 connection、
创建 statement、手动设置参数、结果集检索等 jdbc 繁杂的过程代码。
Mybatis 通过 xml 或注解的方式将要执行的各种
statement(statement、preparedStatemnt、CallableStatement)配置起来,并
通过 java 对象和 statement 中的 sql 进行映射生成最终执行的 sql 语句,最后由
mybatis 框架执行 sql 并将结果映射成 java 对象并返回。
1.3 Mybatis 架构
javaEE 框架课程
1、 mybas 配置
SqlMapCon%g.xml,此文件作为 mybas 的全局配置文件,配置了 mybas 的运行环境等信息。
mapper.xml 文件即 sql 映射文件,文件中配置了操作数据库的 sql 语句。此文件需要在
SqlMapCon%g.xml 中加载。
2、 通过 mybas 环境等配置信息构造 SqlSessionFactory 即会话工厂
3、 由会话工厂创建 sqlSession 即会话,操作数据库需要通过 sqlSession 进行。
4、 mybas 底层自定义了 Executor 执行器接口操作数据库,Executor 接口有两个实现,一
个是基本执行器、一个是缓存执行器。
5、 Mapped Statement 也是 mybas 一个底层封装对象,它包装了 mybas 配置信息及 sql 映
射信息等。mapper.xml 文件中一个 sql 对应一个 Mapped Statement 对象,sql 的 id 即是
Mapped statement 的 id。
6、 Mapped Statement 对 sql 执 行 输 入 参 数 进 行 定 义 , 包 括 HashMap 、 基 本 类 型 、
pojo,Executor 通过 Mapped Statement 在执行 sql 前将输入的 java 对象映射至 sql 中,
输入参数映射就是 jdbc 编程中对 preparedStatement 设置参数。
7、 Mapped Statement 对 sql 执 行 输 出 结 果 进 行 定 义 , 包 括 HashMap 、 基 本 类 型 、
pojo,Executor 通过 Mapped Statement 在执行 sql 后将输出结果映射至 java 对象中,输
出结果映射过程相当于 jdbc 编程中对结果的解析处理过程。
1.4 mybatis 下载
mybaits 的代码由 github.com 管理,地址:h,ps://github.com/mybas/mybas-3/releases
剩余63页未读,继续阅读
资源评论
Salasnun
- 粉丝: 2
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功