Java基础之JDBC的数据库连接与基本操作
Java数据库连接(JDBC)是Java语言中用于与关系型数据库进行交互的一种API(Application Programming Interface)。
本篇攻略主要讲解JDBC的数据库连接和基本操作,包括以下内容:
- 数据库连接步骤
- JDBC基本操作(插入、更新、删除、查询)
- 操作示例
数据库连接步骤
使用JDBC连接数据库,主要需要以下几步:
- 注册JDBC驱动:在使用JDBC连接数据库之前,需要先注册相应的JDBC驱动。比如,使用MySQL数据库,则需要注册com.mysql.jdbc.Driver驱动。
示例代码:
java
// 注册JDBC驱动
Class.forName("com.mysql.jdbc.Driver");
- 建立数据库连接:使用JDBC连接的关键在于建立数据库连接。为此,需要提供数据库URL、用户名和密码等信息。
示例代码:
java
// 建立数据库连接
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);
其中,url是数据库的连接地址,格式一般为:
jdbc:mysql://host:port/databaseName
user和password分别是连接数据库所需的用户名和密码。
-
执行SQL语句:建立数据库连接之后,就可以执行SQL语句进行数据库操作了。常见的SQL语句包括插入、更新、删除和查询等。
-
关闭数据库连接:完成数据库操作之后,需要及时关闭数据库连接,以释放资源和避免占用过多的系统资源。
示例代码:
java
// 关闭数据库连接
conn.close();
JDBC基本操作
JDBC支持各种各样的数据库操作,下面列举常用的插入、更新、删除和查询操作。
插入数据
插入数据是向数据库中插入一条新纪录的操作。传统的SQL语句一般为INSERT INTO语句。
示例代码:
// 插入一条新纪录
String sql = "INSERT INTO users (name, age, gender) VALUES (?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
pstmt.setInt(2, 18);
pstmt.setString(3, "男");
pstmt.executeUpdate();
注:上述代码中的?表示需要通过pstmt.setString()和pstmt.setInt()等方法进行参数设置。
更新数据
更新数据是修改数据库中已有的记录。传统的SQL语句一般为UPDATE语句。
示例代码:
// 更新一条记录
String sql = "UPDATE users SET age = 20 WHERE name = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
pstmt.executeUpdate();
注:上述代码中的?表示需要通过pstmt.setString()和pstmt.setInt()等方法进行参数设置。
删除数据
删除数据是从数据库中删除指定的记录。传统的SQL语句一般为DELETE FROM语句。
示例代码:
// 删除一条记录
String sql = "DELETE FROM users WHERE name = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
pstmt.executeUpdate();
注:上述代码中的?表示需要通过pstmt.setString()和pstmt.setInt()等方法进行参数设置。
查询数据
查询数据是从数据库中读取记录的操作。传统的SQL语句一般为SELECT语句。
示例代码:
// 查询记录
String sql = "SELECT name, age, gender FROM users";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String name = rs.getString("name");
int age = rs.getInt("age");
String gender = rs.getString("gender");
System.out.println(name + "\t" + age + "\t" + gender);
}
注:上述代码中的getString()和getInt()等方法用于获取ResultSet对象中的数据。
操作示例
下面是一个完整的JDBC操作示例,包括数据库连接、数据插入、数据修改、数据删除、数据查询和关闭数据库连接等操作。该例子实现了对学生信息表的操作。
import java.sql.*;
public class JDBCExample {
static final String DB_URL = "jdbc:mysql://localhost:3306/test";
static final String USER = "root";
static final String PASS = "123456";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
// 注册JDBC驱动
Class.forName("com.mysql.jdbc.Driver");
// 建立数据库连接
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
// 执行插入操作
System.out.println("Creating statement...");
String sql;
sql = "INSERT INTO student (name, age, gender) VALUES (?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
pstmt.setInt(2, 18);
pstmt.setString(3, "男");
pstmt.executeUpdate();
// 执行更新操作
System.out.println("Creating statement...");
sql = "UPDATE student SET age = 20 WHERE name = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
pstmt.executeUpdate();
// 执行删除操作
System.out.println("Creating statement...");
sql = "DELETE FROM student WHERE name = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "张三");
pstmt.executeUpdate();
// 执行查询操作
System.out.println("Creating statement...");
stmt = conn.createStatement();
sql = "SELECT name, age, gender FROM student";
ResultSet rs = stmt.executeQuery(sql);
// 输出查询结果
while (rs.next()) {
String name = rs.getString("name");
int age = rs.getInt("age");
String gender = rs.getString("gender");
System.out.println(name + "\t" + age + "\t" + gender);
}
// 关闭数据库连接
rs.close();
stmt.close();
pstmt.close();
conn.close();
} catch(SQLException se) {
// 处理JDBC错误
se.printStackTrace();
} catch(Exception e) {
// 处理Class.forName错误
e.printStackTrace();
} finally {
// 关闭资源
try {
if(stmt!=null) stmt.close();
} catch(SQLException se2) {
} try {
if(conn!=null) conn.close();
} catch(SQLException se){
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}
注:上述代码中的student表结构为(id, name, age, gender)。该例子需要引入mysql-connector-java的JAR包。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java基础之JDBC的数据库连接与基本操作 - Python技术站