编写一个工具类DBUtil,实现对数据库的增删改查
时间: 2024-05-01 07:20:33 浏览: 15
下面是一个简单的DBUtil工具类示例,可以实现对MySQL数据库的增删改查操作:
```
import java.sql.*;
public class DBUtil {
private static final String URL = "jdbc:mysql://localhost:3306/test";
private static final String USER = "root";
private static final String PASSWORD = "password";
private static Connection conn = null;
static {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
return conn;
}
public static void closeConnection() {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void insert(String tableName, String[] values) {
StringBuilder sb = new StringBuilder();
sb.append("INSERT INTO ").append(tableName).append(" VALUES (");
for (int i = 0; i < values.length; i++) {
sb.append("'").append(values[i]).append("'");
if (i != values.length - 1) {
sb.append(", ");
}
}
sb.append(")");
try {
Statement stmt = conn.createStatement();
stmt.executeUpdate(sb.toString());
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void update(String tableName, String[] setValues, String condition) {
StringBuilder sb = new StringBuilder();
sb.append("UPDATE ").append(tableName).append(" SET ");
for (int i = 0; i < setValues.length; i++) {
sb.append(setValues[i]);
if (i != setValues.length - 1) {
sb.append(", ");
}
}
sb.append(" WHERE ").append(condition);
try {
Statement stmt = conn.createStatement();
stmt.executeUpdate(sb.toString());
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void delete(String tableName, String condition) {
StringBuilder sb = new StringBuilder();
sb.append("DELETE FROM ").append(tableName).append(" WHERE ").append(condition);
try {
Statement stmt = conn.createStatement();
stmt.executeUpdate(sb.toString());
} catch (SQLException e) {
e.printStackTrace();
}
}
public static ResultSet query(String tableName, String[] selectColumns, String condition) {
StringBuilder sb = new StringBuilder();
sb.append("SELECT ");
if (selectColumns == null) {
sb.append("*");
} else {
for (int i = 0; i < selectColumns.length; i++) {
sb.append(selectColumns[i]);
if (i != selectColumns.length - 1) {
sb.append(", ");
}
}
}
sb.append(" FROM ").append(tableName);
if (condition != null) {
sb.append(" WHERE ").append(condition);
}
ResultSet rs = null;
try {
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sb.toString());
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
}
```
使用示例:
```
public static void main(String[] args) {
// 插入数据
String[] values = {"1", "张三", "20", "男"};
DBUtil.insert("student", values);
// 更新数据
String[] setValues = {"name='李四'", "age='22'"};
String condition = "id=1";
DBUtil.update("student", setValues, condition);
// 删除数据
String condition = "id=1";
DBUtil.delete("student", condition);
// 查询数据
String[] selectColumns = {"id", "name", "age"};
String condition = "gender='男'";
ResultSet rs = DBUtil.query("student", selectColumns, condition);
try {
while (rs.next()) {
System.out.println(rs.getString("id") + " " + rs.getString("name") + " " + rs.getString("age"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
```