学完了javase和数据库基础部分,来学一下JDBC。
JDBC(Java DataBase Connectivity),即Java数据库连接。简而言之,就是通过Java语言来操作数据库。JDBC本质上是sun公司制定的一套操作所有关系型数据库的接口,各大厂商(MySql,Oracle等)用实现类去实现该接口,再将这些实现类打包,即数据驱动jar包,供我们使用。
通过JDBC连接并操作Mysql数据库的步骤:
- 导入驱动jar包
- 注册驱动(告诉java程序,即将要连接的是哪个品牌的数据库)
- 获取连接(打开JVM进程和数据库进程之间的通道,属于进程之间的通信,使用完之后要关闭)
- 获取数据库操作对象(专门执行sql语句的对象)
- 执行SQL语句
- 处理查询结果集(只有当第四步执行的是select语句时,才有这一步)
- 释放资源(使用完资源之后一定要关闭资源。java和数据库属于进程间的通信,开启之后一定要关闭)
为了防止代码在执行的过程中出现异常无法正常释放资源,需要使用try-catch-finally来处理异常。将释放资源的代码放入finally代码块中,以保证资源的正常释放。同时为了避免空指针异常,在进行释放资源前需要通过条件语句进行判断。
实例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCDemo {
public static void main(String[] args) { //下面方法有不同的异常,我直接抛出一个大的异常
Connection con = null;
Statement stat = null;
try{
//1、(以类加载的方式)注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2、获取连接
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sys", "root", "123456789");
//3、获取操作数据库的对象
stat = con.createStatement();
//4、执行sql并接收返回结果
String sql = "insert into Student value('10004','李白',21,59)";
int count = stat.executeUpdate(sql);
//6、处理结果
System.out.println(count);
}catch (Exception e){
e.printStackTrace();
}finally {
if (con != null){ //避免空指针异常
//7、释放资源
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stat != null){ //避免空指针异常
//7、释放资源
try {
stat.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}