美文网首页Java学习笔记
JFinal3.0快速上手,sql管理与动态生成下(二十八)

JFinal3.0快速上手,sql管理与动态生成下(二十八)

作者: 葉糖糖 | 来源:发表于2017-08-07 16:17 被阅读456次

    首先要感谢小徐同学南63同学,因为有你们的帮助和督促才有了此文的产出。衷心的感谢二位,还有其他的小伙伴们!

    在上一小节,遗留了一个命名空间没有讲。这个知识点其实很好理解,就像包名的概念一样。接下来就让我们一起来熟悉一下#namespace指令的用法。

    因为#namespace的存在,在程序中可以将命名相同的sql标识区分开。有点类似现实生活中两个重名的同学一样,可以通过他们在教室的坐位来区分谁是谁一样。也许这里例子有点不恰当,但是聪明的你应该明白了。接下来,请看代码。

    1、sql文件中的代码

    #namespace("sugar")
        #sql("findUserList")
          select * from t_user where id=#para(id) and pwd=#para(pwd)
        #end
    #end
    

    2、服务端java代码

    细心的小伙伴已经知道该如何在java代码调用,是的没错,就如何所看到的一样。在#namespace的sql调用只需要通过空间名.sql标识来调用。注意空间名和sql标识中的点号(操作符)千万不要忘记写或写错了,否则会出现纰漏。

         public void index(){
             //设置查询参数
             Kv cond= Kv.by("id",3).set("pwd",345678);
             //封装查询参数并返回sql
             SqlPara sqlpara=Db.getSqlPara("sugar.findUserList",cond);
             //执行查询
             Db.find(sqlpara);
             //输出查询结果
             renderJson(Db.find(sqlpara));
         }
    

    一、书山有路勤为径

    关于sql代码高阶用法,其实也是很简单。只是结合之前学习到的模板指令一起处理复杂的sql。这些小伙伴们可以自行摸索,今天就简单的介绍一个简单的使用方法。

    1、sql文件中的代码
    这是根据之前的代码改造的 一个sql,其作用并未发生改变,只是更加灵活一些了。没有改造之前的sql是必须要传参数,改造之后的sql可以不传参数。改造之后的sql使用#for()指令来迭代参数,根据参数的索引来拼接sql。有经验的老司机可以看出来,那是一个三元表达式,如果参数的索引是0,那就使用where拼接参数,如果不是第一个那就使用and,然后输出key和value。

    #namespace("sugar")
        #sql("findUserList")
          select * from t_user
          #for(x:cond)
            #(for.index == 0 ? "where" : "and") #(x.key) #para(x.value)
          #end
        #end
    #end
    

    2、服务端java代码

    调用的方法大体和之前的一样,但是还是有细微的差距。那就是在Db.getSqlPara()方法的第二个参数上,在这里又将参数进行了一点小处理。其含义就是为了让模板引擎能够顺利的找到要去解析的sql参数。

         public void index(){
             //设置查询参数
             Kv cond= Kv.by("id=",3).set("pwd=",345678);
             //封装查询参数并返回sql
             SqlPara sqlpara =Db.getSqlPara("sugar.findUserList",Kv.by("cond",cond));
             //执行查询
             Db.find(sqlpara);
             //输出查询结果
             renderJson(Db.find(sqlpara));
         }
    

    好了,亲爱的小伙伴们!今天的栗子已经举完了。其实程序这点事儿,还是得靠自己去摸索。恭喜你们又掌握了一些知识,又进步了一点,加油!
    PS:有需要的小伙伴,可以加入qq群和一些爱智求真的小伙伴一起学习,成长。

    qq群二维码

    相关文章

      网友评论

        本文标题:JFinal3.0快速上手,sql管理与动态生成下(二十八)

        本文链接:https://www.haomeiwen.com/subject/unqalxtx.html