没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
javaEE 框架课程
Mybatis
框架课程
javaEE 框架课程
1 Mybatis 入门
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?charac
terEncoding=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"));
}
} catch (Exception e) {
e.printStackTrace();
}finally{
//释放资源
if(resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
javaEE 框架课程
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(preparedStatement!=null){
try {
preparedStatement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(connection!=null){
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
上边使用 jdbc 的原始方法(未经封装)实现了查询数据库表记录的操作。
1.1.2 jdbc 编程步骤:
1、 加载数据库驱动
2、 创建并获取数据库链接
3、 创建 jdbc statement 对象
4、 设置 sql 语句
5、 设置 sql 语句中的参数(使用 preparedStatement)
6、 通过 statement 执行 sql 并获取结果
7、 对 sql 执行结果进行解析处理
8、 释放资源(resultSet、preparedstatement、connection)
1.1.3 jdbc 问题总结如下:
1、 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接
池可解决此问题。
javaEE 框架课程
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、 mybatis 配置
SqlMapConfig.xml,此文件作为 mybatis 的全局配置文件,配置了 mybatis 的运行环境等信息。
mapper.xml 文件即 sql 映射文件,文件中配置了操作数据库的 sql 语句。此文件需要在
SqlMapConfig.xml 中加载。
2、 通过 mybatis 环境等配置信息构造 SqlSessionFactory 即会话工厂
3、 由会话工厂创建 sqlSession 即会话,操作数据库需要通过 sqlSession 进行。
4、 mybatis 底层自定义了 Executor 执行器接口操作数据库,Executor 接口有两个实现,一
个是基本执行器、一个是缓存执行器。
5、 Mapped Statement 也是 mybatis 一个底层封装对象,它包装了 mybatis 配置信息及 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 管理,地址:https://github.com/mybatis/mybatis-3/releases
mybatis-3.2.7.jar----mybatis 的核心包
lib----mybatis 的依赖包
mybatis-3.2.7.pdf----mybatis 使用手册
1.5 创建 mysql 数据库
先导入 sql_table.sql,再导入 sql_data.sql 脚本:
剩余75页未读,继续阅读
资源评论
小小哭包
- 粉丝: 1902
- 资源: 3901
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功