帮我写个basedao的代码
时间: 2023-06-01 16:02:18 浏览: 114
以下是一个简单的BaseDao类,用于提供基本的数据库操作方法,包括增删改查。
```
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class BaseDao {
/**
* 执行增删改操作
* @param sql
* @param params
* @return
*/
public int executeUpdate(String sql, Object[] params) {
Connection conn = null;
PreparedStatement pstmt = null;
int result = 0;
try {
conn = DBUtil.getConnection();
pstmt = conn.prepareStatement(sql);
if (params != null) {
for (int i = 0; i < params.length; i++) {
pstmt.setObject(i + 1, params[i]);
}
}
result = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.closeAll(conn, pstmt, null);
}
return result;
}
/**
* 执行查询操作
* @param sql
* @param params
* @return
*/
public List<Object[]> executeQuery(String sql, Object[] params) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<Object[]> resultList = new ArrayList<Object[]>();
try {
conn = DBUtil.getConnection();
pstmt = conn.prepareStatement(sql);
if (params != null) {
for (int i = 0; i < params.length; i++) {
pstmt.setObject(i + 1, params[i]);
}
}
rs = pstmt.executeQuery();
int columnCount = rs.getMetaData().getColumnCount();
while (rs.next()) {
Object[] row = new Object[columnCount];
for (int i = 0; i < columnCount; i++) {
row[i] = rs.getObject(i + 1);
}
resultList.add(row);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.closeAll(conn, pstmt, rs);
}
return resultList;
}
}
```
这个BaseDao类中包含了两个方法:executeUpdate和executeQuery。executeUpdate用于执行增删改操作,executeQuery用于执行查询操作。两个方法都接受一个SQL语句和一个参数数组作为参数,并返回一个结果集或者操作结果。在方法中使用了一个DBUtil类,用于获取数据库连接和关闭资源。这个DBUtil类可以根据具体项目的需求进行编写。
阅读全文