java如何sql
使用JDBC连接数据库
JDBC(Java Database Connectivity)是Java中操作数据库的标准API。通过JDBC可以连接各种关系型数据库,执行SQL语句并处理结果。
加载数据库驱动:
Class.forName("com.mysql.cj.jdbc.Driver");
建立数据库连接:
String url = "jdbc:mysql://localhost:3306/database_name";
String username = "root";
String password = "password";
Connection connection = DriverManager.getConnection(url, username, password);
执行SQL查询
使用Statement或PreparedStatement执行SQL查询。PreparedStatement能防止SQL注入,推荐使用。
创建PreparedStatement并执行查询:
String sql = "SELECT * FROM users WHERE id = ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1, 1); // 设置参数
ResultSet resultSet = statement.executeQuery();
处理查询结果:
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println("ID: " + id + ", Name: " + name);
}
执行SQL更新
插入、更新或删除数据使用executeUpdate方法。
插入数据示例:
String insertSql = "INSERT INTO users (name, email) VALUES (?, ?)";
PreparedStatement insertStatement = connection.prepareStatement(insertSql);
insertStatement.setString(1, "John");
insertStatement.setString(2, "john@example.com");
int rowsAffected = insertStatement.executeUpdate();
System.out.println(rowsAffected + " row(s) inserted.");
事务管理
JDBC支持事务,确保数据操作的原子性。
开启并提交事务:
connection.setAutoCommit(false); // 关闭自动提交
try {
// 执行多个SQL操作
connection.commit(); // 提交事务
} catch (SQLException e) {
connection.rollback(); // 回滚事务
} finally {
connection.setAutoCommit(true); // 恢复自动提交
}
使用连接池优化性能
频繁创建和关闭连接会影响性能,推荐使用连接池(如HikariCP)。
配置HikariCP连接池:
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/database_name");
config.setUsername("root");
config.setPassword("password");
HikariDataSource dataSource = new HikariDataSource(config);
从连接池获取连接:
try (Connection connection = dataSource.getConnection()) {
// 执行SQL操作
}
使用JPA简化数据库操作
JPA(Java Persistence API)是ORM框架的标准,简化数据库操作。
定义实体类:
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
// getters and setters
}
使用EntityManager操作数据:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistence-unit-name");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
User user = new User();
user.setName("Alice");
user.setEmail("alice@example.com");
em.persist(user);
em.getTransaction().commit();
em.close();






