baseDAO查询一个字段
时间: 2023-07-20 07:07:30 浏览: 112
在BaseDAO中查询一个字段,可以使用以下代码:
```java
public class BaseDAO<T> {
// 其他代码
public Object getFieldById(Class<T> clazz, Serializable id, String fieldName) {
String hql = "select " + fieldName + " from " + clazz.getName() + " where id=:id";
Query query = getSession().createQuery(hql);
query.setParameter("id", id);
return query.uniqueResult();
}
}
```
其中,clazz是实体类的Class对象,id是实体类中主键的值,fieldName是要查询的字段名。使用时,调用getFieldById方法即可,示例如下:
```java
BaseDAO<User> userDao = new BaseDAO<>();
String username = (String) userDao.getFieldById(User.class, 1L, "username");
System.out.println(username);
```
以上代码将查询id为1的User对象的username字段的值,并将其输出到控制台。
相关问题
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 类来操作数据库表了。
阅读全文