运维开发网

如何自定义SQL的小方法

运维开发网 https://www.qedev.com 2022-05-20 17:04 出处:网络
这篇文章主要介绍了MybatisPlusEntityWrapper如何自定义SQL,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

这篇文章主要介绍了MybatisPlusEntityWrapper如何自定义SQL,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


EntityWrapper自定义SQL

根据mybatis plus中的条件构造函数,构建SQL查询非常方便。使用条件构造函数可以代替我们编写SQL。我们来看几个例子。


第一种

使用tselect one(wrap erlt;Tgt包装纸);我们只需要传入创建一个EntityWrapper()并拼接条件。

例如新的EntityWrapper()。情商(quotidquot,quot1quot)就是查询这段id等于1的数据。这里不仅支持eq(),还支持like、not like、group by等。SQL中几乎所有需要的东西在这里都可以得到。


第二种

当我们需要在单表查询中自定义列时,使用SetSqlSelect方法,如下:

/**此格式的意思为requireParam传参了才创建where条件,请按照此格式撰写代码*Object为你的单表实体类*requireParam为入参实体类*EntityWrapperlt;Objectgt; ew = new EntityWrapperlt;Objectgt;(requireParam);是为了让构造where条件*我在前面给requireParam的state属性设置了值为1,所以这里会自动拼接上where条件,如果不需要的话则可不传requireParam****/? ? ? ? ? ? EntityWrapperlt;Objectgt; ew = new EntityWrapperlt;Objectgt;(requireParam);? ? ? ? ? ? /**设置需要查询的列名**/? ? ? ? ? ? ew.setSqlSelect("id,resource_id,user_id,username,content,createtime,parent_id," +? ? ? ? ? ? ? ? ? ? " path,type,like_count")? ? ? ? ? ? ? ? ? ? /**排序方式**/? ? ? ? ? ? ? ? ? ? .orderBy(false,"path",false);

和第一种情况一样,我们可以在后面继续拼接各种条件。


第三种

EntityWrapper()拼接where条件。实际上,这已经在第二个案例中说过了,这是根据我们是否参与了EntityWrapper的创建来完成的。

到目前为止,我们只用过这些,以后遇到我会继续更新。


MybatisPlus自定义sql查询public void reconciliationForConfirmOne(Integer Id, Integer payoffType) { Listlt;FinanceReconciliationEntitygt; frList = financeReconciliationService.selectList( new EntityWrapperlt;FinanceReconciliationEntitygt;() .eq("payoff_id", Id) .eq("payoff_type", payoffType) .where("(reconciliation_status lt;gt; 1 OR reconciliation_status IS NULL)") ); for (FinanceReconciliationEntity fr : frList) { fr.setReconciliationStatus(1); } if (frList != null amp;amp; frList.size() gt; 0) { financeReconciliationService.updateBatchById(frList); }}

以上个人经验,希望能给你一个参考

0

精彩评论

暂无评论...
验证码 换一张
取 消