1 前言
普元EOS提供了内置的数据库操作的方法。
本文章描述DatabaseDao类的使用方法。
2 获得DatabaseDao实例
import com.eos.spring.dao.DatabaseDao;
DatabaseDao.getInstance(数据源名称)
这个数据源名称,对应的是 user-config.xml中配置的数据源名称。
参数是一个字符串,或者不填写。不填写的话默认采用 default 数据源
3 getEntityByCriteria方法解释
方法功能:基于Criteria定义的查询条件,查询数据库,并返回一条记录。
返回值:返回值类型是 DataObject ,这个是普元EOS内置的对象。
这个方法接收一个 CriteriaType类型的参数。
CriteriaType类组装数据查询的条件,具体的使用方法我再另一篇文章中有描述《普元EOS-基于CriteriaEntity进行数据查询》。
4 getEntityByCriteria方法泛型进行数据查询
import com.eos.spring.dao.DatabaseDao;
import com.primeton.eos.KgptDemo.model.kgptdemo.UserDataset.TUserDevops;
TUserDevops dd2 = DatabaseDao.getInstance(SystemConst.DataSourceKgptDemoName)
.<TUserDevops>getEntityByCriteria(ct1);
请注意上面的代码, <TUserDevops> 放在方法前面,从而查询结果返回的值是 TUserDevops类型的,否则默认返回的类型是 DataObject类型的。
上面这个例子里面的 TUserDevops ,是本人自定义的一个SDO接口,具体的普元SDO接口和实现类的创建方法就不赘述了。
通过查看源代码,看到 getEntityByCriteria 方法定义如下
public <E extends DataObject> E getEntityByCriteria(CriteriaType criteria) {
if (criteria != null && !StringUtils.isBlank(criteria.get_entity())) {
List<E> entities = this.queryEntitiesByCriteria(criteria, 0, 1);
return entities.isEmpty() ? null : (DataObject)entities.get(0);
} else {
return null;
}
}
后记
以后我会不断完善该文章,把这个类的使用方法写的更准确一些。