📅  最后修改于: 2023-12-03 15:02:04.921000             🧑  作者: Mango
Java数据库连接(JDBC)是一个Java API,用于与执行SQL的各种关系数据库进行交互。它包含了在Java程序中连接并操作数据库的一组标准接口。
JDBC包括两个主要部分:JDBC API和JDBC驱动程序。
JDBC API是Java定义的一组标准接口,用于与关系数据库进行交互。它提供了一组类和接口,用于执行各种数据库任务,例如建立连接、执行查询、插入数据、更新数据等。
JDBC驱动程序是连接不同类型数据库的程序。JDBC API与特定数据库的交互是通过驱动程序实现的。不同类型的数据库需要不同的驱动程序来与JDBC API进行交互。
JDBC驱动程序通常分为以下几种:
下面是使用JDBC进行数据库连接和数据操作的基本步骤:
在Java代码中使用JDBC API进行数据库交互之前,必须先将所需的JDBC驱动程序导入到项目中。JDBC驱动程序通常以JAR文件的形式提供。
使用JDBC API中提供的DriverManager
类建立数据库连接。在建立连接时需要指定数据库的URL、用户名和密码等参数。
import java.sql.*;
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/EMP";
// Database credentials
static final String USER = "username";
static final String PASS = "password";
public static void main(String[] args) {
Connection conn = null;
try{
//Register JDBC driver
Class.forName(JDBC_DRIVER);
//Open a connection
conn = DriverManager.getConnection(DB_URL,USER,PASS);
}catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}finally{
//finally block used to close resources
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
}//end main
在建立数据库连接之后,就可以使用Statement
对象执行SQL查询了。以下代码演示了如何查询一个名为“employees”的表中的所有数据:
import java.sql.*;
// ...
Connection conn = null;
Statement stmt = null;
try{
//Register JDBC driver
Class.forName(JDBC_DRIVER);
//Open a connection
conn = DriverManager.getConnection(DB_URL,USER,PASS);
//Execute a query
stmt = conn.createStatement();
String sql;
sql = "SELECT id, first, last, age FROM employees";
ResultSet rs = stmt.executeQuery(sql);
//Extract data from result set
while(rs.next()){
//Retrieve by column name
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
//Display values
System.out.print("ID: " + id);
System.out.print(", Age: " + age);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
}
//Clean-up environment
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}finally{
//finally block used to close resources
try{
if(stmt!=null)
stmt.close();
}catch(SQLException se2){
}// nothing we can do
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
使用JDBC API中提供的PreparedStatement
对象执行更新数据库的操作。以下代码演示了如何向一个名为“employees”的表中插入一条记录:
import java.sql.*;
// ...
Connection conn = null;
PreparedStatement stmt = null;
try{
//Register JDBC driver
Class.forName(JDBC_DRIVER);
//Open a connection
conn = DriverManager.getConnection(DB_URL,USER,PASS);
//Execute a query
String sql = "INSERT INTO employees (first, last, age) VALUES (?, ?, ?)";
stmt = conn.prepareStatement(sql);
stmt.setString(1, "John");
stmt.setString(2, "Doe");
stmt.setInt(3, 25);
stmt.executeUpdate();
//Clean-up environment
stmt.close();
conn.close();
}catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}finally{
//finally block used to close resources
try{
if(stmt!=null)
stmt.close();
}catch(SQLException se2){
}// nothing we can do
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
JDBC是Java程序与关系数据库进行交互的标准接口。使用JDBC API需要按照一定的步骤:导入JDBC驱动程序、建立数据库连接、执行SQL查询和更新数据库。使用JDBC可以让Java程序更加灵活地操作数据库,并且具有较好的可移植性。