普元EOS-基于CriteriaEntity进行数据查询

1 前言

普元EOS内置了一系列数据库的操作类,本文介绍其中的一个类 CriteriaEntity的使用方法。

CriteriaEntity是进行组织数据库查询条件的类,基于该类配合DataObject,实现对数据库的查询。

2 CriteriaType类的实例化

要利用Criteria进行查询,先要实例化CriterialType类。

实例化代码如下:

import com.eos.das.entity.criteria.CriteriaType;
import com.eos.spring.dao.CriteriaBuilder;

CriteriaBuilder cbuild1 = new CriteriaBuilder( 实体名称 );

参数实体名称,是普元EOS创建的数据实体的名字,关于EOS的数据实体的概念可以看《普元EOS-数据实体、SDO接口和实现类、DataObject都是什么?》,可以理解为图形化的Entity类,在MyBatis中也有Entity类的。

3 根据 field = value 的条件查询

在查询数据库的时候,会有类似下面的sql语句

select * from t_user_devops where afc_user_id = '1'

数据表是 t_user_devops ,查询条件是 afc_user_id 字段值等于1 

利用criteria查询代码如下

CriteriaBuilder cbuild1 = new CriteriaBuilder( TUserDevops.QNAME );
cbuild1.eq("afcUserId", "1");
CriteriaType ct1 = cbuild1.build();

TUserDevops dd2 = DatabaseDao.getInstance(数据源名称)
                .<TUserDevops>getEntityByCriteria(ct1);

简单解释一下:

基于CriteriaBuilder类构件查询条件,最后build生成 CriteriaType对象,然后利用DatabaseDao的getEntityByCriteria 方法查询返回的结果。

CriteriaBuilder初始化的时候,要传递参数 entityName,即数据实体的名称,EOS的数据实体有一个完整的名字,类似: 

com.primeton.eos.KgptDemo.model.kgptdemo.UserDataset.TUserDevops

这个字符串,在SDO接口的QNAME 字段中定义了,代码如下:

public interface TUserDevops extends DataObject {

	public String QNAME = "com.primeton.eos.KgptDemo.model.kgptdemo.UserDataset.TUserDevops";

	public Type TYPE = TypeHelper.INSTANCE.getType("com.primeton.eos.KgptDemo.model.kgptdemo.UserDataset", "TUserDevops");

eq方法:等于( = )方法,参数是字段名和字段值。 eq("afcUserId", "1")等同于SQL语句中的 where afc_user_id = '1'  。 这里注意,第一个参数是数据实体的字段名,而不是数据表的字段名。

build方法:该方法生成CriteriaType对象。

DatabaseDao.getInstance(数据源名称):这个方法实例化了DatabaseDao。参数数据源名称对应user-config.xml中定义的数据源名称。可以不填,不填写的话就是采用默认的default数据。

<TUserDevops>getEntityByCriteria方法:该方法根据条件查询一条数据。泛型语法决定了返回的类型是TUserDevops的。

写在最后

Criteria的使用技巧,我会不断完善到这个文章中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小崔爱读书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值