当前位置: 首页 > news >正文

乌兰浩特建设网站推广黄冈软件必备软件

乌兰浩特建设网站,推广黄冈软件必备软件,网站空间指的是什么,什么是sem需求背景需要一个像mybatis plus 一样的基于lambda, 且面向对象的查询mongo数据的插件。在网上找了很久#xff0c;没有发现有类似功能的插件。于是自己手写了一个#xff0c;借助mongoTemplate屏蔽了底层查询语句的实现细节。在此基础上#xff0c;实现了查询的统一封装。技…需求背景需要一个像mybatis plus 一样的基于lambda, 且面向对象的查询mongo数据的插件。在网上找了很久没有发现有类似功能的插件。于是自己手写了一个借助mongoTemplate屏蔽了底层查询语句的实现细节。在此基础上实现了查询的统一封装。技术难点基于SerializedLambda对象获取查询的属性例如下面是获取task的nameMongoLambdaQuery.lambdaQuery(Task.class).is(Task::getName, taskCriteria.getName())怎么传参这种Task::getName 函数引用通过函数式接口SFunction来表示R实际类型Children ne(R column, Object val);FunctionalInterface public interface SFunctionT, R extends FunctionT, R, Serializable { }然后通过maybeDo来判断搜索参数不为空才进行查询。这里DoSomething又是一个函数式接口something.doIt()时才会执行具体columnToString操作得到我们的属性。 protected Children addCondition(boolean condition, R column, SqlKeyword keyWord, Object val, Object... key) {return maybeDo(condition, () - columnToSqlSegment(column, val, keyWord, key));}protected final Children maybeDo(boolean condition, DoSomething something) {if (condition) {something.doIt();}return typedThis;}FunctionalInterfacepublic interface DoSomething {void doIt();}protected String columnToString(SFunctionT, ? column) {return LambdaUtils.getField(column);}c. 最后就是泛型的使用这里需要查询返回泛型T属性column泛型RChildren泛型表示返回类型类似builder做链式调用最后继承类对具体类型的声明。public interface QueryTpublic interface FuncChildren, R extends Serializablepublic abstract class AbstractQueryT, R, Children extends AbstractQueryT, R, Childrenimplements FuncChildren, R, QueryTpublic abstract class MongoAbstractLambdaQueryT, Children extends MongoAbstractLambdaQueryT, Childrenextends AbstractQueryT, SFunctionT, ?, Childrenpublic class MongoLambdaQueryT extends MongoAbstractLambdaQueryT, MongoLambdaQueryT项目地址https://github.com/DarMi7/mongo-lambda-query使用demo引入maven依赖文件dependency groupIdio.github.darmi7/groupId artifactIdmongo-lambda-query/artifactId version1.1.0/version/dependency开启插件注解加上需要扫描mongo实体的包路径EnableMongoLambdaQueryEnableMongoRepositories(basePackages com.darmi.demo.repository.mongo)public class Application编写查询代码Repositorypublic interface TaskRepository extends MongoRepositoryTask, String {default PageTask search(TaskCriteria taskCriteria) {return MongoLambdaQuery.lambdaQuery(Task.class).is(Task::getName, taskCriteria.getName()).is(Task::getType, taskCriteria.getFuzzyName()).reg(Task::getName, taskCriteria.getName()).gt(Task::getPoints, taskCriteria.getPoints()).gt(Task::getCreated, taskCriteria.getBegin()).lt(Task::getCreated, taskCriteria.getEnd()).page(taskCriteria.getPagination());}}
http://www.hkea.cn/news/14339445/

相关文章:

  • 工会网站建设策划书免费注册网站的平台
  • 网站推广方案策划书2000f3322免费域名申请
  • 最便宜网站seo关键词排名软件流量词
  • 外贸营销型网站建站怎样设网站
  • 建设网站具体步骤网站开发遵循
  • 网站建设实例教程 pdfwordpress页面调用文章列表
  • 猎头做单网站国内优秀网站案例
  • 建设一个普通的网站需要多少钱信息服务平台有哪些网站
  • 免费h5模板网站模板高端网站建设费用情况
  • 汕头网站制作公司价格分销体系搭建
  • 哪个网站做招聘海报比较好安阳县崔家桥职业中专
  • 烟台消防建设信息网站制作app需要学什么
  • 移商网站建设搜索引擎推广的基本方法有
  • 微机做网站的软件洛阳百姓网
  • 广安网站建设哪家好网页设计师证书报考条件
  • 电子商务网站建设的规划和实施wordpress插件安装目录
  • 东莞专业网站设计建站公司南充网站建设多少钱
  • 吴江那里有做公司网站的网站建设论文答辩ppt
  • 网站建设注册教程九江市广安建设工程有限公司网站
  • 网站开发收如何在百度能搜索到公司网站
  • 网页设计与制作项目重庆网站seo昔年优化
  • 河间网站建推荐常州网站建设
  • 网站模板可以自己做吗宁波做网站烟台厂商
  • 网站建设弹窗怎么设置wordpress保存登陆
  • 佛山网站页面优化山西大同专业网站建设制作价格
  • 秦皇岛网站制作方案saas建站 彩页
  • 常德网站建设厦门网站制作wordpress 文章 id
  • 做网站需要的图片去哪找网站可以做网站广告
  • 淮南服装网站建设费用创建公司的流程图
  • 建网站的成本计算360建筑网是什么平台