Java Statement接口
在Java数据库编程中,Statement接口是JDBC API的核心组件之一,它提供了执行SQL语句和获取查询结果的基本功能。作为初学者,理解这个接口对于掌握Java数据库操作至关重要。
Statement接口简介
Statement接口位于java.sql
包中,是用来执行静态SQL语句并返回其生成的结果的对象。它是Java应用程序与数据库之间的桥梁,允许开发者向数据库发送SQL命令并处理返回的结果。
Statement的基本使用流程
使用Statement接口的基本步骤如下:
- 建立数据库连接(Connection)
- 通过Connection创建Statement对象
- 执行SQL语句
- 处理执行结果
- 关闭Statement和Connection资源
创建Statement对象
要创建Statement对象,首先需要获取Connection对象:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.SQLException;
public class StatementDemo {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
// 1. 注册JDBC驱动
Class.forName("com.mysql.jdbc.Driver");
// 2. 打开连接
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/testdb", "username", "password");
// 3. 创建Statement对象
stmt = conn.createStatement();
// 后续使用stmt执行SQL语句...
} catch(SQLException se) {
se.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
} finally {
// 关闭资源
try {
if(stmt!=null) stmt.close();
} catch(SQLException se2) { }
try {
if(conn!=null) conn.close();
} catch(SQLException se) {
se.printStackTrace();
}
}
}
}
执行SQL语句
Statement接口提供了三种执行SQL语句的方法:
1. execute()
用于执行可能返回多个结果集的SQL语句。
boolean hasResultSet = stmt.execute(sql);
返回值表示第一个结果是否为ResultSet对象,如果是则返回true,否则返回false。
2. executeQuery()
用于执行SELECT查询,返回查询结果集。
String sql = "SELECT id, name, age FROM students";
ResultSet rs = stmt.executeQuery(sql);
3. executeUpdate()
用于执行INSERT、UPDATE、DELETE等修改数据的SQL语句,返回受影响的行数。
String sql = "UPDATE students SET age = 21 WHERE id = 1";
int rowsAffected = stmt.executeUpdate(sql);
System.out.println("更新了 " + rowsAffected + " 行数据");