JDBC的简单使用(连接数据库与增删改查)

JDBC(Java Database Connectivity)是Java语言中用于执行SQL语句的API。它提供了一种标准的方法来访问关系型数据库。本文将介绍如何使用JDBC连接到数据库,并执行常见的增删改查操作(下面均有列举)。

## 1. 准备工作

在开始之前,确保你已经安装了Java开发环境和一个关系型数据库(如MySQL、PostgreSQL等)。同时,下载并配置相应的JDBC驱动程序。

### 1.1 添加JDBC依赖

如果你使用的是Maven项目,可以在`pom.xml`中添加以下依赖:(Maven添加依赖比单纯为了建立连接方便很多,否则代码会复杂很多)

```xml
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version>
</dependency>
```

## 2. 连接数据库

首先,我们需要编写代码来连接到数据库。以下是一个简单的示例:

```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DatabaseConnection {
    private static final String URL = "jdbc:mysql://localhost:3306/mydatabase";
    private static final String USER = "root";
    private static final String PASSWORD = "password";

    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(URL, USER, PASSWORD);
    }
}
```

## 3. 查询数据

连接到数据库后,我们可以执行SQL查询。以下是一个查询示例:

```java
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class QueryExample {
    public static void main(String[] args) {
        try (Connection conn = DatabaseConnection.getConnection();
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery("SELECT * FROM employees")) {

            while (rs.next()) {
                System.out.println("ID: " + rs.getInt("id"));
                System.out.println("Name: " + rs.getString("name"));
                System.out.println("Salary: " + rs.getDouble("salary"));
                System.out.println("--------------------");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
```

## 4. 插入数据

插入数据使用`PreparedStatement`可以防止SQL注入。以下是一个插入数据的示例:

```java
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class InsertExample {
    public static void main(String[] args) {
        String sql = "INSERT INTO employees (name, salary) VALUES (?, ?)";

        try (Connection conn = DatabaseConnection.getConnection();
             PreparedStatement pstmt = conn.prepareStatement(sql)) {

            pstmt.setString(1, "John Doe");
            pstmt.setDouble(2, 50000.0);

            int affectedRows = pstmt.executeUpdate();
            System.out.println(affectedRows + " row(s) inserted.");

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
```

## 5. 更新数据

更新数据同样使用`PreparedStatement`。以下是一个更新数据的示例:

```java
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class UpdateExample {
    public static void main(String[] args) {
        String sql = "UPDATE employees SET salary = ? WHERE id = ?";

        try (Connection conn = DatabaseConnection.getConnection();
             PreparedStatement pstmt = conn.prepareStatement(sql)) {

            pstmt.setDouble(1, 55000.0);
            pstmt.setInt(2, 1);

            int affectedRows = pstmt.executeUpdate();
            System.out.println(affectedRows + " row(s) updated.");

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
```

## 6. 删除数据

删除数据也使用`PreparedStatement`。以下是一个删除数据的示例:

```java
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class DeleteExample {
    public static void main(String[] args) {
        String sql = "DELETE FROM employees WHERE id = ?";

        try (Connection conn = DatabaseConnection.getConnection();
             PreparedStatement pstmt = conn.prepareStatement(sql)) {

            pstmt.setInt(1, 1);

            int affectedRows = pstmt.executeUpdate();
            System.out.println(affectedRows + " row(s) deleted.");

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
```

7. 总结

本文介绍了如何使用JDBC连接到数据库,并执行常见的增删改查操作。JDBC提供了丰富的API来处理数据库操作,包括事务管理、批处理等高级功能。希望这个简单的示例能帮助你入门JDBC编程。

## 参考资料(确实有参考,要具体学习可以去官网进行资料的查找)

- [JDBC官方文档](https://docs.oracle.com/javase/tutorial/jdbc/index.html)
- [MySQL Connector/J](https://dev.mysql.com/doc/connector-j/8.0/en/)

希望这篇博客对你有所帮助!如果有任何问题或建议,欢迎留言讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值