请教一个Jfinal与模板语言的问题

有一个需求,实现一个比较复杂的查询,并返回结果。

现在我的实现完全是用Jfinal的Db+ActiveRecord来实现的,看到enjoy的模板那么强大一直想改成,模板方式的,那样容易维护和修改(现在一旦策划有要求,就必须修改代码)。

Java代码大致情况如下:

Record  step1=Db.use("biz").findFirst("select * from table_a where para1=? and para2=? ", aa,bb);

String name=step1.get("name");

Record result=Db.use("biz").findFirst("select * form table_b where name=?",name);

return result.

如上的代码,如何改写成enjoy语句呢?

不好意思,小白的问题,谢谢了。

 

评论区

JFinal

2018-03-31 11:42

数据库查询、复杂逻辑这类代码建议写在业务层,而不是在模板中去写

如果你一定要这么用,可以使用下面的办法:
1:在 YourJFinalConfig 中创建一个 afterJFinalStart() 方法,将 Db 注册进去:
public void afterJFinalStart() {
Engine engine = RenderManager.me().getEngine();
engine.addSharedObject("Db", Db.use());
}

然后就可以在 enjoy 中这样来用了:
#for( x : Db.find("select * from user where age > ?", 18))
#(x.name)
#(x.age)
#end

#set(user = Db.use("biz").findFirst("select * from t where name=?", name))
#(user.name)
#(user.age)

rirai

2018-03-31 15:05

谢谢,搞懂了。查询代码还是放在业务层吧,原来是想在业务层调用模板脚本来更加灵活一些的。

热门反馈

扫码入社