0 前言
Java为关系数据库定义了一套标准的访问接口:JDBC(Java Database Connectivity),使我们可以基于JDBC访问数据库,实现数据的增删改查。
本文将以PostgreSQL为例,展示JDBC的一些基本操作,其中以实操代码为主,关于基本概念的讲解详见参考文献。
提示:在开始学习JDBC编程之前,务必先学习下SQL基础。
1 配置MAVEN
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.18</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.4.5</version>
</dependency>
配置项包括两个jar包:
1、postgresql:PostgreSQL的JDBC驱动
2、HikariCP:JDBC连接池(javax.sql.DataSource)的实现类
注意:
postgresql中的scope应该为runtime,因为只在运行期才使用。如果把runtime
改成compile
,虽然也能正常编译,但是在IDE里写程序的时候,会多出来一大堆类似com.mysql.jdbc.Connection
这样的类,非常容易与Java标准库的JDBC接口混淆,所以坚决不要设置为compile
。
2 连接数据库
import java.sql.*;
public class Test {
// JDBC连接的URL, 不同数据库有不同的格式:
static final String URL = "jdbc:postgresql://localhost:3306/test";
static final String USER = "sde";
static final String PASSWORD = "123456";
public static void main(String[] args) {
// 获取连接:
try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD)) {
System.out.println("数据库连接成功!");
}catch(SQLException e){
e.printStackTrace();
}
}
}
核心代码是DriverManager
提供的静态方法getConnection()
。DriverManager
会自动扫描classpath,找到所有的JDBC驱动,然后根据我们传入的URL自动挑选一个合适的驱动。因为JDBC连接是一种昂贵的资源,所以使用后要及时释放(通过try-with-resources的方式)。
注意:代码中的URL
、USER
、PASSWORD
是数据库的信息,填写你自己的。
3 创建表
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {
// 不同数据库有不同的格式
static final String URL = "jdbc:postgresql://localhost:3306/test";
static final String USER = "sde";
static final String PASSWORD = "123456";
public static voi