当前位置:首页 > Java

java 如何执行sql语句

2026-02-05 07:56:51Java

执行SQL语句的基本方法

在Java中执行SQL语句通常通过JDBC(Java Database Connectivity)实现。JDBC是Java标准库提供的数据库访问接口,支持多种关系型数据库。

加载JDBC驱动

使用Class.forName()加载特定数据库的JDBC驱动类。不同数据库需要不同的驱动类名:

Class.forName("com.mysql.jdbc.Driver"); // MySQL
Class.forName("oracle.jdbc.driver.OracleDriver"); // Oracle
Class.forName("org.postgresql.Driver"); // PostgreSQL

建立数据库连接

通过DriverManager.getConnection()方法建立连接,需要提供URL、用户名和密码:

String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "password";
Connection connection = DriverManager.getConnection(url, username, password);

创建Statement对象

使用Connection对象创建StatementPreparedStatement

Statement statement = connection.createStatement(); // 普通Statement
PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM users WHERE id = ?"); // 参数化查询

执行SQL语句

根据SQL类型选择不同的执行方法:

java 如何执行sql语句

// 执行查询返回ResultSet
ResultSet resultSet = statement.executeQuery("SELECT * FROM users");

// 执行更新操作(INSERT/UPDATE/DELETE)
int rowsAffected = statement.executeUpdate("UPDATE users SET name='John' WHERE id=1");

// 执行任意SQL语句
boolean isResultSet = statement.execute("CALL stored_procedure()");

处理结果集

对于查询语句,需要处理返回的ResultSet

while(resultSet.next()) {
    int id = resultSet.getInt("id");
    String name = resultSet.getString("name");
    System.out.println("ID: " + id + ", Name: " + name);
}

关闭资源

确保在使用完毕后关闭所有数据库资源:

resultSet.close();
statement.close();
connection.close();

使用try-with-resources

Java 7+推荐使用try-with-resources自动管理资源:

java 如何执行sql语句

try (Connection conn = DriverManager.getConnection(url, username, password);
     Statement stmt = conn.createStatement();
     ResultSet rs = stmt.executeQuery("SELECT * FROM users")) {
    // 处理结果
} catch (SQLException e) {
    e.printStackTrace();
}

使用PreparedStatement防止SQL注入

对于包含用户输入的SQL语句,应使用参数化查询:

String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
try (PreparedStatement pstmt = connection.prepareStatement(sql)) {
    pstmt.setString(1, username);
    pstmt.setString(2, password);
    ResultSet rs = pstmt.executeQuery();
    // 处理结果
}

事务处理

对于需要原子性的一组操作,可以使用事务:

connection.setAutoCommit(false); // 关闭自动提交
try {
    // 执行多个SQL语句
    statement.executeUpdate("UPDATE accounts SET balance = balance - 100 WHERE id = 1");
    statement.executeUpdate("UPDATE accounts SET balance = balance + 100 WHERE id = 2");
    connection.commit(); // 提交事务
} catch (SQLException e) {
    connection.rollback(); // 回滚事务
}

使用连接池

生产环境推荐使用连接池(如HikariCP、DBCP)管理数据库连接:

HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/mydatabase");
config.setUsername("root");
config.setPassword("password");

try (HikariDataSource ds = new HikariDataSource(config);
     Connection conn = ds.getConnection();
     Statement stmt = conn.createStatement()) {
    // 执行SQL
}

标签: 语句java
分享给朋友:

相关文章

java如何创建文件

java如何创建文件

使用 File 类创建文件 通过 File 类的 createNewFile() 方法创建文件。此方法返回布尔值,表示文件是否成功创建。 import java.io.File; import j…

java如何安装

java如何安装

安装Java的步骤 下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面下载适合操作系统的JDK版本。Oracle JDK适用于商业用途,OpenJDK是开源版本。选择…

如何打开java

如何打开java

打开 Java 程序的方法 通过命令行运行 Java 程序 确保已安装 Java Development Kit (JDK) 并配置环境变量。使用 javac 编译 .java 文件,生成 .clas…

java如何读取文件

java如何读取文件

读取文件的常用方法 Java提供了多种读取文件的方式,适用于不同场景和需求。以下是几种常见的方法: 使用FileInputStream和BufferedInputStream读取二进制文件 t…

java如何react

java如何react

在Java中使用React 要在Java项目中集成React,通常需要将React前端与Java后端结合使用。以下是几种常见的方法: 使用Spring Boot作为后端 Spring Boot是一…

java如何创建类

java如何创建类

创建类的基本语法 在Java中,类通过class关键字定义,语法如下: [访问修饰符] class 类名 { // 成员变量(属性) // 构造方法 // 成员方法 }…