在maven中实现对sql的增删改擦
时间: 2023-05-23 10:04:52 浏览: 61
盘操作需要引入对应的数据库驱动和使用对应的SQL语句。
首先,在Maven项目中添加对应的数据库驱动依赖:
```
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
```
其中,`mysql-connector-java`为MySQL数据库的驱动,版本号可以根据具体需要进行修改。
然后,在Java代码中连接数据库并执行SQL语句实现增删改擦盘操作。以下是使用JDBC连接MySQL数据库的示例代码:
```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class SqlOperation {
// 数据库连接参数
private static final String DB_URL = "jdbc:mysql://localhost:3306/test";
private static final String USER = "root";
private static final String PASSWORD = "123456";
// 新增数据
public void insertData() throws SQLException {
Connection conn = null;
PreparedStatement stmt = null;
try {
// 获取数据库连接
conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);
String sql = "INSERT INTO user(name, age) VALUES(?, ?)";
stmt = conn.prepareStatement(sql);
// 设置参数,并执行SQL语句
stmt.setString(1, "张三");
stmt.setInt(2, 20);
int rows = stmt.executeUpdate();
System.out.println("插入了"+rows+"条数据。");
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
}
// 删除数据
public void deleteData() throws SQLException {
Connection conn = null;
PreparedStatement stmt = null;
try {
// 获取数据库连接
conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);
String sql = "DELETE FROM user WHERE id=?";
stmt = conn.prepareStatement(sql);
// 设置参数,并执行SQL语句
stmt.setInt(1, 1);
int rows = stmt.executeUpdate();
System.out.println("删除了"+rows+"条数据。");
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
}
// 修改数据
public void updateData() throws SQLException {
Connection conn = null;
PreparedStatement stmt = null;
try {
// 获取数据库连接
conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);
String sql = "UPDATE user SET age=? WHERE id=?";
stmt = conn.prepareStatement(sql);
// 设置参数,并执行SQL语句
stmt.setInt(1, 30);
stmt.setInt(2, 2);
int rows = stmt.executeUpdate();
System.out.println("修改了"+rows+"条数据。");
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
}
// 查询数据
public void selectData() throws SQLException {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
// 获取数据库连接
conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);
String sql = "SELECT * FROM user";
stmt = conn.prepareStatement(sql);
// 执行SQL查询,并遍历结果集
rs = stmt.executeQuery();
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.println("id: "+id+", name: "+name+", age: "+age);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭资源
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
}
}
}
```
上述代码中,使用`DriverManager`获取MySQL数据库的连接,并使用`PreparedStatement`执行SQL语句。其中,`setXxx()`方法可以设置参数,如`setString()`、`setInt()`等,参数下标从1开始。`executeUpdate()`方法返回的是受影响的行数,用于判断操作是否成功。
需要注意的是,以上代码中都重写了`finally`块,关闭数据库连接、PreparedStatement和ResultSet等资源,以防止空指针异常和资源泄漏。在实际应用中,也应该养成这种良好的开发习惯。