一.概念
JDBC顾名思义,java Database Connectvity,即java数据库连接,JAVA语言操作数据库。
本质:其实是sun公司定义的一套操作所有关系型数据库规则,即接口。各个数据库厂商去实现这个接口,提供数据库驱动jar包。
二.常用API
- DriverManager 类
用于加载jdbc驱动,并且创建与数据库的连接 - Connection 接口
代表java程序和数据库的连接,只有获得该连接对象后,才能访问数据库。 - Statement 接口
用于执行静态的sql语句,返回一个结果对象。statement对象可以通过connection实例的create Statement()方法获得。 - PrepareStatement接口
statement操作过于繁琐,且存在安全隐患,所以jdbc提供了扩展的prepareStatement接口。 - Resultset接口
保存jdbc执行查询时返回的结果集,封装在一个逻辑表格中
三.基本步骤
- 导入jar包
- 加载并注册数据库驱动
- 通过DriverManager获取数据的连接
- 通过connection对象获得Statement对象
- 执行sql语句
- 操作result结果集
- 关闭连接,释放资源
四. 代码演示
package data1202.itcast.jdbc;
/*
jdbc快速入门
*/
import java.sql.*;
public class JdbcDemo {
public static void main(String[] args) {
//以下三个对象需要关闭,所以提上来
Connection conn = null;
Statement sta = null;
ResultSet rs = null;
try {
//1注册驱动
Class.forName("com.mysql.cj.jdbc.Driver"); //注意:5.x及以下版本为:com.mysql.jdbc.Driver
//2获取数据库连接对象
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1?serverTimezone=GMT%2B8", "root", "root");
//3获取执行的Sql对象Statement
sta = conn.createStatement();
//4执行sql语句
String sql = "select * from account ";
rs = sta.executeQuery(sql);
//5操作resultset结果集输出
System.out.println("id | name | cc ");
while(rs.next()){
int id = rs.getInt(1); //索引从一开始
String name = rs.getString("name"); //也可用列名代表
int cc = rs.getInt(3);
System.out.println(id+" | "+name+" | "+cc);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally {
//6释放资源
if (rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (sta!=null){
try {
sta.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
运行结果: