mybatis入门(一)什么是mybatis
1.JDBC
Java Data Base Connectivity :Java数据库连接
由SUN公司提出的一系列规范 -- 只定义了接口的规范,具体实现是交给各个数据库厂商去实现的,JDBC是一种典型的桥接模式
(1) 如何使用JDBC规范进行编程实现对数据库的CRUD(create、read、update、delete)操作
A:注册数据库驱动和信息(以MySql数据为例)
加载数据库驱动
Class.forName("com.mysql.jdbc.Driver")
加载数据库连接信息
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/3306/test",username,pwd)
B:操作conn,构建Statement(PrepareStatement)对象
说明:
PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程
prepareStatement会先初始化SQL,先把这个SQL提交到数据库中进行预处理,多次使用可提高效率。
Statement不会初始化,没有预处理,每次都是从0 开始执行SQl
PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement("insert into user(name,age) values(?,?)");
C:通过Statement执行SQL语句
增删改:
int ret = pstmt.executeUpdate();
if(ret > 0){
//SQL语句执行成功
}
查询:
ResultSet rs = pstmt.executeQuery();
while(rs.next){
//操作rs数据集,将数据映射成Java Pojo对象
}
D:最后用完后,关闭conn
conn.close();
(2) JDBC弊端
1、需要编写大量demo,demo复用性不够好,需要自己封装Dao层达到代码的复用
2、数据集到pojo对象的映射关系太过拘泥,需要自己进行适配,工作量大
二、ORM
对象关系映射:英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping)
其取代了JDBC,并对其进行了封装(简化工作量,使得数据到对象的映射关系更为简单)
用于实现面向对象编程语言里不同类型系统的数据之间的转换,简单明了的说就是:
通过编程,操作pojo对象,加上映射关系,即可达到操作数据库的效果,反之,则是将数据库操作的数据映射成pojo对象
三.什么是Mybatis?
MyBatis本是Apache的一个开源项目iBatis, 2010年这个项目由Apache Oftware Foundation 迁移到了Google Code,并且改名为MyBatis 。2013年11月迁移到Github。 iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。