JavaWeb连接数据库实现增删改查
时间: 2023-08-30 09:11:06 浏览: 142
Java连接sql数据库增删改查.pdf
JavaWeb连接数据库可以使用Java提供的JDBC接口来实现。下面是一个示例代码,演示如何使用JDBC连接MySQL数据库并进行增删改查操作。
首先需要在项目中引入MySQL驱动包,这里以5.x版本为例:
```java
// 注册MySQL驱动
Class.forName("com.mysql.jdbc.Driver");
// 获取数据库连接
String url = "jdbc:mysql://localhost:3306/test?useSSL=false&characterEncoding=UTF-8";
Connection conn = DriverManager.getConnection(url, "root", "password");
```
其中,`url`是连接MySQL的URL,`test`是数据库名,`root`和`password`是登录MySQL的用户名和密码。如果要连接其他数据库,需要修改`url`中的数据库名和登录信息。
接下来,可以使用`Statement`对象或`PreparedStatement`对象来执行SQL语句。`Statement`对象用于执行静态的SQL语句,而`PreparedStatement`对象用于执行动态的SQL语句,可以防止SQL注入攻击。
```java
// 创建Statement对象
Statement stmt = conn.createStatement();
// 执行查询语句
ResultSet rs = stmt.executeQuery("SELECT * FROM user");
// 遍历结果集
while (rs.next()) {
String username = rs.getString("username");
String password = rs.getString("password");
System.out.println(username + "," + password);
}
// 关闭结果集和Statement对象
rs.close();
stmt.close();
```
以上代码演示了如何查询数据库中的数据。其他的增删改操作可以使用`executeUpdate()`方法执行SQL语句。例如,插入一条数据:
```java
String sql = "INSERT INTO user(username, password) VALUES (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "admin");
pstmt.setString(2, "123456");
int rows = pstmt.executeUpdate();
System.out.println(rows + " rows affected");
pstmt.close();
```
其中,`?`表示占位符,可以使用`setXXX()`方法设置具体的值。`executeUpdate()`方法返回受影响的行数。
删除、修改操作类似,只需要修改SQL语句即可。例如,删除一条数据:
```java
String sql = "DELETE FROM user WHERE username = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "admin");
int rows = pstmt.executeUpdate();
System.out.println(rows + " rows affected");
pstmt.close();
```
以上代码演示了如何使用JDBC连接MySQL数据库并进行增删改查操作。完整代码示例可以参考下面的代码:
```java
import java.sql.*;
public class DBTest {
public static void main(String[] args) throws Exception {
// 注册MySQL驱动
Class.forName("com.mysql.jdbc.Driver");
// 获取数据库连接
String url = "jdbc:mysql://localhost:3306/test?useSSL=false&characterEncoding=UTF-8";
Connection conn = DriverManager.getConnection(url, "root", "password");
// 查询数据
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM user");
while (rs.next()) {
String username = rs.getString("username");
String password = rs.getString("password");
System.out.println(username + "," + password);
}
rs.close();
stmt.close();
// 插入数据
String sql = "INSERT INTO user(username, password) VALUES (?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "admin");
pstmt.setString(2, "123456");
int rows = pstmt.executeUpdate();
System.out.println(rows + " rows affected");
pstmt.close();
// 修改数据
sql = "UPDATE user SET password = ? WHERE username = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "654321");
pstmt.setString(2, "admin");
rows = pstmt.executeUpdate();
System.out.println(rows + " rows affected");
pstmt.close();
// 删除数据
sql = "DELETE FROM user WHERE username = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "admin");
rows = pstmt.executeUpdate();
System.out.println(rows + " rows affected");
pstmt.close();
// 关闭数据库连接
conn.close();
}
}
```
阅读全文