01、Mybatis的介绍和基本使用
1、数据库操作框架的历程
(1) JDBC
(2) DBUtils
(3)Hibernate
(4) JDBCTemplate
2、什么是Mybatis?
3、快速搭建Mybatis项目
5、配置文件详解
1
、数据库操作框架的历程
(1) JDBC
JDBC(Java Data Base Connection,java
数据库连接
)
是一种用于执行SQL语句的
Java API,
可以为多种关系数据库提供统一访问
,
它由一组用
Java
语言编写的类和接口组成.JDBC
提供了一种基准
,
据此可以构建更高级的工具和接口
,使数据库开发人员能够编写数据库应用程序
优点:运行期:快捷、高效
缺点:编辑期:代码量大、繁琐异常处理、不支持数据库跨平台
![](https://i-blog.csdnimg.cn/blog_migrate/a97f19fd85a695879da25677d41b8923.png)
jdbc核心api
1.DriverManager 连接数据库
2.Connection 连接数据库的抽象
3.Statment 执行SQL
4.ResultSet 数据结果集
(2) DBUtils
DBUtils
是
Java
编程中的数据库操作实用工具,小巧简单实用。
DBUtils
封装了对
JDBC
的操作,简化了
JDBC
操作,可以少写代码。
DBUtils
三个核心功能介绍
1
、
QueryRunner
中提供对
sql
语句操作的
API
2
、
ResultSetHandler
接口,用于定义
select
操作后,怎样封装结
果集
3
、
DBUtils
类,它就是一个工具类,定义了关闭资源与事务处理
的方法
(3)Hibernate
ORM 对象关系映射
object java对象
relational 关系型数据
mapping 映射
Hibernate
是由
Gavin King
于
2001
年创建的开放源代码的对象关系框架。它强大且高效的构建具有关系对象持久性和查询服务的 Java
应用程序。
Hibernate
将
Java
类映射到数据库表中,从
Java
数据类型中映射到SQL 数据类型中,并把开发人员从
95%
的公共数据持续性编程工作中解放出来。
Hibernate
是传统
Java
对象和数据库服务器之间的桥梁,用来处理基于 O/R
映射机制和模式的那些对象。
Hibernate
使用
XML
文件来处理映射
Java
类别到数据库表格中,并
且不用编写任何代码。
为在数据库中直接储存和检索
Java
对象提供简单的
APIs
。
如果在数据库中或任何其它表格中出现变化,那么仅需要改变
XML
文
件属性。
抽象不熟悉的
SQL
类型,并为我们提供工作中所熟悉的
Java
对象。
Hibernate
不需要应用程序服务器来操作。
操控你数据库中对象复杂的关联。
最小化与访问数据库的智能提取策略。
提供简单的数据询问。
Hibernate
劣势
hibernate
的完全封装导致无法使用数据的一些功能。
Hibernate
的缓存问题。
Hibernate
对于代码的耦合度太高。
Hibernate
寻找
bug
困难。
Hibernate
批量数据操作需要大量的内存空间而且执行过程中需要的对
象太多
(4) JDBCTemplate
JdbcTemplate
针对数据查询提供了多个重载的模板方法
,
你可以根据需要选用不同的模板方法.
如果你的查询很简单,仅仅是传入相应
SQL
或者相关参数,然后取得一个单一的结果,那么你可以选择如下一组便利的模板方法。
优点:运行期:高效、内嵌
Spring
框架中、支持基于
AOP
的声明式事
务
缺点:必须于
Spring
框架结合在一起使用、不支持数据库跨平台、默
认没有缓存
2
、什么是
Mybatis
?
MyBatis
是一款优秀的持久层框架
/
半自动的
ORM
,它支持自定义SQL、存储过程以及高级映射。
MyBatis
免除了几乎所有的
JDBC
代码以及设置参数和获取结果集的工作。MyBatis
可以通过简单的
XML
或注解来配置和映射原始类型、接口和 Java POJO
(
Plain Old Java Objects
,普通老式
Java
对象)为数据库中的记录。
优点:
1
、与
JDBC
相比,减少了
50%
的代码量
2
、 最简单的持久化框架,简单易学
3
、
SQL
代码从程序代码中彻底分离出来,可以重用
4
、提供
XML
标签,支持编写动态
SQL
5
、提供映射标签,支持对象与数据库的
ORM
字段关系映射支持缓存、连接池、数据库移植....
缺点:
1
、
SQL
语句编写工作量大,熟练度要高
2
、数据库移植性比较差,如果需要切换数据库的话,
SQL
语句会有很
大的差异
3、快速搭建Mybatis项目
1
、创建普通的
maven
项目
2
、导入相关的依赖
pom.xml
驱动请按照数据库版本进行对应https://dev.mysql.com/doc/relnotes/connector-j/5.1/en/
3
、创建对应的数据表
4
、创建与表对应的实体类对象
emp.java
![](https://i-blog.csdnimg.cn/blog_migrate/4759c2c360d1554b625690dcd6c2c1ec.png)
5
、创建对应的
Mapper
接口
EmpMapper.java
![](https://i-blog.csdnimg.cn/blog_migrate/c074b65b781db9fea73ebe66a6523435.png)
6
、编写配置文件
mybatisconfig.xml
![](https://i-blog.csdnimg.cn/blog_migrate/4f59bcafea2877ad2814ac3b52c49cf1.png)