JDBC
Java DataBase Connectivity 是⼀个独⽴于特定数据库的管理系统,通⽤的 SQL 数据库存取和操作的公
共接⼝。
定义了⼀组标准,为访问不同数据库提供了统⼀的途径。
JDBC 体系结构
JDBC 接⼝包括两个层⾯:
⾯向应⽤的 API,供程序员调⽤
⾯向数据库的 API,供⼚商开发数据库的驱动程序
JDBC API
提供者:Java 官⽅
内容:供开发者调⽤的接⼝
java.sql 和 javax.sql
DriverManager 类
Connection 接⼝
Statement 接⼝
ResultSet 接
DriverManager
提供者:Java 官⽅
作⽤:管理不同的 JDBC 驱动
JDBC 驱动
提供者:数据库⼚商
作⽤:负责连接不同的数据库
JDBC 的使用
1、加载数据库驱动,Java 程序和数据库之间的桥梁。
Class.forName("com.mysql.cj.jdbc.Driver");
2、获取 Connection,Java 程序与数据库的⼀次连接。
//获取连接
String url = "jdbc:mysql://localhost:3306/test?
useUnicode=true&characterEncoding=UTF-8";
String user = "root";
String password = "root";
Connection connection =
DriverManager.getConnection(url,user,password);
3、创建 Statement 对象,由 Connection 产⽣,执⾏ SQL 语句。
String sql = "select * from student";
Statement statement = connection.createStatement();
4、如果需要接收返回值,创建 ResultSet 对象,保存 Statement 执⾏之后所查询到的结果。
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()){
Integer id = resultSet.getInt("id");
String name = resultSet.getString(2);
Double score = resultSet.getDouble(3);
Date date = resultSet.getDate(4);
System.out.println(id+"-"+name+"-"+score+"-"+date);
}
package com.southwind.test;
import java.sql.*;
import java.util.Date;
public class Test {
public static void main(String[] args) {
try {
//加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//获取连接
String url = "jdbc:mysql://localhost:3306/test?
useUnicode=true&characterEncoding=UTF-8";
String user = "root";
String password = "root";
Connection connection =
DriverManager.getConnection(url,user,password);
// String sql = "insert into student(name,score,birthday) values('李 四',78,'2019-01-01')";
// String sql = "update student set name = '李四'";
// String sql = "delete from student";
// Statement statement = connection.createStatement();
// int result = statement.executeUpdate(sql);
String sql = "select * from student";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()){
Integer id = resultSet.getInt("id");
String name = resultSet.getString(2);
Double score = resultSet.getDouble(3);
Date date = resultSet.getDate(4);
System.out.println(id+"-"+name+"-"+score+"-"+date);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e){
e.printStackTrace();
}
}
}