单独使用Jfinal的ar和enjoy,
DruidPlugin dp = new DruidPlugin(datasource.getUrl(),datasource.getUsername(), datasource.getPassword(), datasource.getDriverClassName()); ActiveRecordPlugin arp = new ActiveRecordPlugin(datasource); arp.setDialect(new PostgreSqlDialect()); Engine engine = Engine.use(); engine.setDevMode(true); engine.setToClassPathSourceFactory(); engine.addSharedMethod(new com.jfinal.kit.StrKit()); arp.setShowSql(true); arp.setDevMode(true); dp.start(); arp.start();
通过Db.templateByString(sql,map).query();查询,要用enjoy处理最终的执行sql,要判断空串,一直写 #if(str==null&& str=='') 赶到麻烦和难看,想使用StrKit的isBlank方法,
执行如下enjoy代码
#if(isBlank(startDate)) and date=now() #end
抛出如下异常,Shared method not found: isBlank(java.lang.String);找不到方法
如何解决?
项目:JFinal
Engine engine = Engine.use();
改成:
Engine engine = arp.getEngine();
由于 enjoy 可以用在同一个项目中的不同功能,所以不同的 Engine 对象的配置是独立的,你通过 Engine.use() 获得的 Engine 对象并没有用于 ActiveRecordPlugin
仔细看一下文档中有关配置多个 Engine 的部分:
https://jfinal.com/doc/6-2