当前位置:首页 > 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);
}

使用连接池管理连接

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

以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可以简化数据库操作。

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示例:

java如何操作数据库

@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);
}

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

相关文章

vue实现选题操作

vue实现选题操作

Vue 实现选题操作 在 Vue 中实现选题操作通常涉及数据绑定、事件处理和状态管理。以下是几种常见的实现方式: 单选实现 使用 v-model 绑定单选值,通过 radio 或 select 元素…

vue项目操作如何实现

vue项目操作如何实现

Vue 项目基本操作实现 创建 Vue 项目 使用 Vue CLI 快速创建项目: npm install -g @vue/cli vue create project-name cd projec…

react如何连接mssql数据库

react如何连接mssql数据库

在React中连接MSSQL数据库 React本身是前端框架,不直接连接数据库。需要通过后端服务(如Node.js)与MSSQL交互,React再通过API调用后端。以下是完整方案: 后端服…

react如何连接MySQL数据库

react如何连接MySQL数据库

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

js实现操作

js实现操作

JavaScript 实现操作的方法 JavaScript 提供了多种方式来实现操作,包括 DOM 操作、事件处理、异步编程等。以下是几种常见操作的实现方法。 DOM 操作 通过 JavaScrip…

java如何查询数据库

java如何查询数据库

查询数据库的基本步骤 在Java中查询数据库通常使用JDBC(Java Database Connectivity)API。JDBC提供了一套标准接口,允许Java程序与各种数据库进行交互。 加载数…