Mybatis的介绍
Mybatis是一个半自动的【ORM框架】,
Object Relation Mapping:统一自动管理SQL语句【对象关系映射】
Object:Java是一个面向对象的编程语言
Relation:数据库MySQL是一个关系型数据库
Mapping:映射
Mybatis的历史
原是【Apache】的一个开源项目【iBatis】
2010年6月这个项目由【Apache Software Foundation】迁移到了【Google Code】、
随着开发团队转投【Google Code】旗下——>【iBatis3.x】正式更名为【MyBatis】
代码于2013年11月迁移到Github
【iBatis】一词来源于"internet"和"abatis"的组合,是一个基于Java的持久层框架。
【iBatis】提供的持久层框架包括SQL Maps和Dao(Data Access Objects)
为什么学习mybatis?
在学习mybatis之前,我们通过【JDBC】访问数据库进行【CURD】一系列操作:
JDBC的四个步骤:
【第一步】、加载驱动
【第二步】、获取连接
【第三步】、创建SQL通道
【第四步】、关闭连接
【注:JDBC:Java DataBase Connectivity】
【注:CURD:Create(创建) Update(更新) Read(读取) Delete(删除)】
JDBC类
package com.am.utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
//import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* JDBC类:连接数据库
* 1、加载驱动
* 2、创建连接
* 3、创建普通SQL通道和预编译通道
* 4、
* @author Begimwer
*
*/
public class DataBase {
/**路径**/
String url="jdbc:mysql://localhost:3306/test?serverTimezone=UTC";
/**账号**/
String username="root";
/**密码**/
String password="123456";
/**【第一步】、加载驱动**/
/**静态初始化块:直接加载一次驱动,与类同生共死**/
static {
try {
/**加载驱动**/
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.out.println("DateBase提示: 加载驱动失败。。。");
}
}
/**
* 定义属性:
* 【连接】、
* 【预编译SQL通道】、
* 【普通SQL通道】
*/
Connection conn=null;
PreparedStatement ps=null;
Statement stat = null;
/**【第二步】、获取数据库连接**/
public Connection getConn() {
try {
//通过驱动管理器【DriverManager】获取数据库连接
conn=DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
System.out.println(this.getClass().getSimpleName()+"提示:数据库连接失败!!!");
}
return conn;
}
/**【第三步】、创建SQL通道**/
/**创建普通SQL通道**/
public Statement getStat() {
try {
stat=getConn().createStatement();
} catch (SQLException e) {
System.out.println(this.getClass().getSimpleName()+"提示:创建普通SQL通道失败!!!");
}
return stat;
}
/**创建预编译SQL通道**/
public PreparedStatement getPs(String sql) {
try {
ps=getConn().prepareStatement(sql);
} catch (SQLException e) {
System.out.println(this.getClass().getSimpleName()+"提示:创建预编译SQL通道失败!!!");
}
return ps;
}
/**【第四步】、关闭连接**/
public void close() {
try {
/**关闭结果集**/
/**
* if(rs!=null) {
* rs.close();
* }
*/
/**关闭普通SQL通道**/
if(null!=ps) {
ps.close();
}
/**关闭预编译SQL通道**/
if(null!=stat) {
stat.close();
}
/**关闭数据库连接**/
if(null!=conn) {
conn.close();
}
} catch (SQLException e) {
System.out.println(this.getClass().getSimpleName()+"提示:关闭【普通SQL通道】,【预编译SQL通道】,【数据库连接】失败!!!");
}
}
}
封装
将【经常修改】的内容放到【配置文件中】——【xml,json,properties,yarn】,
将【不经常修改】的放到Java文件中
缓存
当访问量比较大的时候,可以【重复使用】查询的数据,尽量【减少数据库的访问次数】
处处的把数据库里面的记录一一的转换成【java对象】(注:查询单条);java对象处处的转换成数据库的记录
MyBatis的下载
Mybatis的下载地址:【点这里】
点此查看MyBatis的官方文档:【点这里】
下载MyBaits