Jfinal 的sql语句中 如何使用if判断属性是否为空

本文介绍如何在JFinal3.2框架中利用Kv.create()设置查询条件,通过SqlPara获取SQL语句,并使用实体类.dao.find(sql)方法查询数据库,获取所需数据。文章详细展示了controller层代码实现及SQL语句编写技巧。

 1. controller 层代码:

public void questionInfo(){
        // 获取 产品线id 、 技术点id, 进行查询
        Long productLineId = this.getParaToLong("productLineId");
        Integer level = this.getParaToInt("level");
        String questionTypes = this.getPara("questionTypes");
        String difficulty = this.getPara("difficulty");
        Kv cond = Kv.create().set("productLineId",productLineId).set("questionTypes",questionTypes).set("difficulty",difficulty);

        String sql = null;
        List<TopicInformation> topicInformationList = new ArrayList<TopicInformation>();
        if(level == 1){
            SqlPara sqlPara = Db.getSqlPara("teacher.testFindByProduct", cond);
            topicInformationList = TopicInformation.dao.find(sqlPara);
        }else if(level == 2){
            Long technologyId = this.getParaToLong("technologyId");
            sql = Db.getSql("teacher.testFindByProductAndTechnology");
            topicInformationList = TopicInformation.dao.find(sql,productLineId,technologyId);
        }
}

2.sql语句

#sql("testFindByProduct")
  select * from topic_information where  productLineId = #para(productLineId) and flag = 1
  #if(questionTypes)
    and questionTypes = #para(questionTypes)
  #end
  #if(difficulty)
    and difficulty = #para(difficulty)
  #end
#end

在jfinal3.2中  使用Kv.create().set().....方法,设置属性, 然后使用 SqlPara   获取你想要的SQL语句,

在然后使用  实体类.dao.find(sql), 就可以查询数据库,得到自己想要的数据了。

看了一天半jfinal, 就开始写代码了, 如有错误,请您多多指点。

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值