java中如何写sql语句

在Java中编写SQL语句
Java中执行SQL语句主要通过JDBC(Java Database Connectivity)API实现。以下是几种常见操作方式:
使用Statement执行静态SQL
Connection connection = DriverManager.getConnection(url, username, password);
Statement statement = connection.createStatement();
String sql = "SELECT * FROM users WHERE age > 18";
ResultSet resultSet = statement.executeQuery(sql);
使用PreparedStatement防止SQL注入
String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, "John Doe");
pstmt.setInt(2, 25);
pstmt.executeUpdate();
使用事务处理
connection.setAutoCommit(false);
try {
// 执行多个SQL语句
connection.commit();
} catch (SQLException e) {
connection.rollback();
}
使用Try-With-Resources自动关闭资源
try (Connection conn = DriverManager.getConnection(url, user, pass);
PreparedStatement pstmt = conn.prepareStatement(sql)) {
// 执行SQL操作
}
使用ORM框架(如Hibernate)
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
Query<User> query = session.createQuery("FROM User WHERE email = :email", User.class);
query.setParameter("email", "test@example.com");
List<User> users = query.list();
tx.commit();
session.close();
使用JdbcTemplate(Spring框架)
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
String sql = "UPDATE products SET price = ? WHERE id = ?";
jdbcTemplate.update(sql, 29.99, 1001);
每种方法适用于不同场景,静态SQL适合简单查询,PreparedStatement推荐用于参数化查询,事务处理保证数据一致性,ORM框架简化数据库操作。







