当前位置:首页 > Java

java如何操作数据库

2026-03-19 07:18:42Java

使用JDBC连接数据库

JDBC(Java Database Connectivity)是Java操作数据库的标准API。通过JDBC可以连接各种关系型数据库,执行SQL语句并处理结果。

引入JDBC驱动依赖(以MySQL为例):

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.28</version>
</dependency>

基本操作流程:

// 加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");

// 建立连接
String url = "jdbc:mysql://localhost:3306/db_name";
String user = "username";
String password = "password";
Connection conn = DriverManager.getConnection(url, user, password);

// 创建Statement
Statement stmt = conn.createStatement();

// 执行查询
ResultSet rs = stmt.executeQuery("SELECT * FROM table_name");

// 处理结果
while(rs.next()) {
    String name = rs.getString("column_name");
    int id = rs.getInt("id");
}

// 关闭资源
rs.close();
stmt.close();
conn.close();

使用PreparedStatement防止SQL注入

PreparedStatement是预编译的SQL语句,能有效防止SQL注入攻击,提高执行效率。

String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);

pstmt.setString(1, "John");
pstmt.setInt(2, 30);
pstmt.executeUpdate();

使用事务管理

JDBC支持事务操作,确保数据一致性。

try {
    conn.setAutoCommit(false); // 关闭自动提交

    // 执行多个SQL操作
    stmt.executeUpdate("UPDATE account SET balance = balance - 100 WHERE id = 1");
    stmt.executeUpdate("UPDATE account SET balance = balance + 100 WHERE id = 2");

    conn.commit(); // 提交事务
} catch (SQLException e) {
    conn.rollback(); // 回滚事务
} finally {
    conn.setAutoCommit(true);
}

使用连接池管理连接

数据库连接是宝贵资源,使用连接池可以提高性能。

java如何操作数据库

以HikariCP为例:

<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>5.0.1</version>
</dependency>

配置连接池:

HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/db_name");
config.setUsername("username");
config.setPassword("password");
config.setMaximumPoolSize(10);

HikariDataSource ds = new HikariDataSource(config);
Connection conn = ds.getConnection();
// 使用连接...
conn.close(); // 实际是归还到连接池

使用ORM框架简化操作

主流ORM框架如Hibernate和MyBatis可以简化数据库操作。

java如何操作数据库

MyBatis示例:

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.9</version>
</dependency>

Mapper接口定义:

public interface UserMapper {
    @Select("SELECT * FROM users WHERE id = #{id}")
    User getUserById(int id);

    @Insert("INSERT INTO users (name, age) VALUES (#{name}, #{age})")
    void insertUser(User user);
}

使用JPA规范

Java Persistence API(JPA)是JavaEE的标准ORM规范。

Spring Data JPA示例:

@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;
    private Integer age;
    // getters and setters
}

public interface UserRepository extends JpaRepository<User, Long> {
    List<User> findByName(String name);
}

标签: 操作数据库
分享给朋友:

相关文章

启动react项目如何操作

启动react项目如何操作

安装Node.js 确保系统已安装Node.js(建议版本16+),可通过官网下载或使用版本管理工具(如nvm)。安装完成后,在终端运行 node -v 和 npm -v 验证版本。 创建React…

react如何操作引用页面的值

react如何操作引用页面的值

获取引用页面的值 在React中,可以通过useRef钩子或createRef方法创建引用(ref),用于直接访问DOM节点或React组件实例。以下为具体实现方式: 使用函数组件与useRef…

react中如何应用数据库

react中如何应用数据库

在React中应用数据库的方法 React本身是一个前端库,不直接与数据库交互。通常需要通过后端服务或API来连接数据库。以下是几种常见方法: 使用后端API 创建独立的后端服务(如Node.js、…

react如何连接MySQL数据库

react如何连接MySQL数据库

连接MySQL数据库的方法 React本身是一个前端框架,无法直接连接MySQL数据库。通常需要通过后端服务(如Node.js、PHP、Java等)作为中间层来处理数据库操作,React再通过API与…

react如何请求数据库数据

react如何请求数据库数据

在React中请求数据库数据的常见方法 React本身是一个前端库,不直接与数据库交互。通常需要通过后端API或服务来间接访问数据库。以下是几种常见实现方式: 使用Fetch API与后端通信 通过…

php实现数据库备份

php实现数据库备份

使用 mysqldump 命令 在 PHP 中调用系统命令 mysqldump 是最常见的数据库备份方法。该方法适用于 MySQL 或 MariaDB 数据库。 $dbHost = 'localho…