操作数据库的basedao抽象类
时间: 2023-08-15 16:53:26 浏览: 68
BaseDao是一个抽象类,用于封装数据库的基本操作。它提供了常用的增删改查方法,例如insert、update、delete、select等。BaseDao还提供了一些常见的数据库连接方法,例如getConnection、closeConnection等,以及一些常用的事务处理方法,例如beginTransaction、commit、rollback等。通过继承BaseDao,我们可以简化数据库操作的代码,并提高代码的可维护性和重用性。
相关问题
baseDAO 使用
BaseDAO是一个通用的数据操作类,可以方便地对数据库进行增删改查操作。使用BaseDAO有以下几个步骤:
1. 定义实体类
首先需要定义与数据库表对应的实体类,实体类中的属性需要与表中的字段一一对应。
2. 继承BaseDAO类
定义DAO类并继承BaseDAO类,指定实体类和主键类型。例如:
```java
public class UserDao extends BaseDAO<User, Long> {
// ...
}
```
3. 编写SQL语句
在DAO类中编写SQL语句,可以使用预编译语句,也可以使用MyBatis等ORM框架。
4. 调用方法进行操作
使用BaseDAO提供的方法进行数据操作,例如:
```java
UserDao userDao = new UserDao();
List<User> userList = userDao.queryAll();
User user = userDao.queryById(1L);
user.setName("张三");
userDao.update(user);
userDao.deleteById(1L);
```
BaseDAO还提供了一些其他的方法,例如分页查询、批量插入等,具体可以查看文档或源码。
basedao代码
BaseDao 是一个基础的 DAO(Data Access Object)类,通常用于操作数据库。这里是一个示例代码:
```java
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public abstract class BaseDao<T> {
protected Connection connection;
public BaseDao(Connection connection) {
this.connection = connection;
}
protected abstract T build(ResultSet resultSet) throws SQLException;
protected abstract String getTableName();
public T findById(int id) throws SQLException {
String selectSql = "SELECT * FROM " + getTableName() + " WHERE id = ?";
PreparedStatement preparedStatement = connection.prepareStatement(selectSql);
preparedStatement.setInt(1, id);
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
return build(resultSet);
}
return null;
}
public void deleteById(int id) throws SQLException {
String deleteSql = "DELETE FROM " + getTableName() + " WHERE id = ?";
PreparedStatement preparedStatement = connection.prepareStatement(deleteSql);
preparedStatement.setInt(1, id);
preparedStatement.executeUpdate();
}
public void save(T object) throws SQLException {
String insertSql = "INSERT INTO " + getTableName() + " VALUES (?, ?, ?)";
PreparedStatement preparedStatement = connection.prepareStatement(insertSql);
// set values to preparedStatement
preparedStatement.executeUpdate();
}
public void update(T object) throws SQLException {
String updateSql = "UPDATE " + getTableName() + " SET column1 = ?, column2 = ? WHERE id = ?";
PreparedStatement preparedStatement = connection.prepareStatement(updateSql);
// set values to preparedStatement
preparedStatement.executeUpdate();
}
}
```
这个类中提供了一些基本的 CRUD(Create,Read,Update,Delete)方法,可以用于操作数据库表中的数据。具体的实现需要子类来完成,因为不同的数据表可能有不同的字段和数据类型。通常情况下,我们会为每个数据表定义一个 DAO 类,继承 BaseDao 类,然后在子类中实现 build() 和 getTableName() 方法。这样就可以使用这个 DAO 类来操作数据库表了。