当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

JFinalSQL

Jfinal 的 SQL 插件
授权协议 Apache
开发语言 Java
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 阎裕
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Jsql 是 Jfinal 的 SQL 插件

主要特点:

  1. SQL与JAVA代码分离

  2. XML配置

  3. JS语法的SQL模板引擎,简单易学

模板标签:

  1. <%=%> ,例如:name = <%=name%>,将转换成 name = ? ,并将参数变量添加到Args中

  2. <%-%> ,例如:name = <%-name%>,将转换成 name = ? ,并将参数变量转义后添加到Args中

  3. <%+%> ,例如:name = <%+name%>,将转换成 name = 'jfinal'

用法:

  1. 主配置文件JSql-Config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <jsqlconfig>
        <jsqlpath path="/JSql-User.xml" />
    </jsqlconfig>
  2. SQL配置文件JSql-User.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <jsql namespace="user">
    <sql id="getusers">
    <![CDATA[
        select * from user t where 1 =1 and
        <%if(typeof(state) != 'undefined'){%>
            t.state = <%=state%>
        <%}%>
        <%if(typeof(ids) != 'undefined'){%>
            and t.id in (<%for(var i=0;i<ids.length;i++){%> <%=ids[i]%> <%if(i < ids.length-1){%> , <%}%> <%}%>)  
        <%}%>
        order by name desc
    ]]>
    </sql>
    </jsql>


  3. JAVA初始化

    new JSqlPlugin("/JSql-Config.xml").start();


  4. 调用SQL

    Map<String, Object> m = new HashMap<String, Object>();
    SqlArgs sqlArgs = JSqlKit.getSqlArgs("user.getusers",m);


  5. 执行SQL语句

    Db.find(sqlArgs.getSql(), sqlArgs.getArgs().toArray());
  • 1、查询出符合条件的数据 List<Record> list = db.find(sql); 2、查出符合条件的第一条数据 Record record = Db.findFirst(sqlPara); 3、获取数值类型的单个返回值; Int count = Db.queryInt( sqlPara );   Long count = Db.queryLong( sqlPara ); 基本类型 =

  • 在上一小节,遗留了一个命名空间没有讲。这个知识点其实很好理解,就像包名的概念一样。接下来就让我们一起来熟悉一下#namespace指令的用法。 因为#namespace的存在,在程序中可以将命名相同的sql标识区分开。有点类似现实生活中两个重名的同学一样,可以通过他们在教室的坐位来区分谁是谁一样。也许这里例子有点不恰当,但是聪明的你应该明白了。接下来,请看代码。 1、sql文件中的代码 #name

 相关资料
  • 问题内容: 可以说在我的代码中我有用户名和一个值。现在,我需要将其保存在数据库中,但首先需要获取与该用户名相对应的ID,因为此表以pk / fk链接到users表。我该怎么做?我知道您可以执行INSERT(blah)SELECT等操作,但是看起来像是直接复制,我需要将SELECT的结果与fk列一起插入值。 用户表:[UserID(pk),用户名] 阿凡达表:[UserID(fk),AvatarUR

  • 问题内容: 我得到了一个包含4个字段的表格: id,int(11),自动收到的电子邮件,varchar(32)通过,varchar(32)date_created,日期 我的问题是查询的外观如何?我的意思是我不需要将第一个值插入id,因为它是自动递增的,但是我必须插入所有值。 问题答案: 在SQL中,您可以指定要在语句中设置的列:

  • 问题内容: 在一个表(jdbc / connector-mysql数据库)中插入1000行的最佳/最省时的方法是什么?(它是一个缓冲区,每次充满时都需要转储到数据库中) 1-一个自动生成/固定的SQL语句? 2 3-存储过程 4-通过文件批量插入数据? 5-(您的解决方案) 问题答案: LOAD DATA INFILE语句可能是提高性能的最佳选择。(来自上面的选项列表中的#4)尽管由于您需要创建中

  • 我必须准备一个SQL插入文件,它将数据从测试导出到生产实例。其中一列是表中的CLOB。 当我在UAT实例中进行测试运行时,我得到以下错误 SQL脚本是我唯一的选择。 更新1 如果将insert语句保存在一个名为test.sql的文件中,并试图从SQLPLUS以@d:\temp\test.sql的形式执行,则会出现错误 Insert语句

  • 问题内容: 我开发了一种将许多东西插入数据库的表单。但是以某种方式,当页面被填满时,它也只插入数据库管理员的user_password。我该如何解决这个问题? 问题答案: 您忘记输入关键字“ VALUES”。检查INSERT INTO的语法。 您传递给MySQL的变量(“ $ name”,“ $ password”,“ $ email”,“ $ contact”,“ $ age”,“ $ gend

  • 问题内容: 我试图像这样将一些值插入到SQL CE数据库中,但没有任何反应。我做错了什么? 问题答案: 您如何“尝试插入一些值…”?您是从Visual Studio运行该应用程序吗?您为什么认为“什么都没有发生”?您在运行应用程序后是否要打开原始的.sdf文件? 在解决方案资源管理器中检查数据库文件的“复制文件”属性;是“复制”吗?这意味着Visual Studio将在bin文件夹中创建原始数据库

  • 问题内容: 插入数据库时​​出现错误。 代码: 忽略dbquery,与mysql_query完全一样。 我收到的错误是: 不知道为什么会引发此错误! 问题答案: 教一个人如何钓鱼。 如果查询失败,那么您应该做的第一件事就是回显您要发送的查询: 通常,最终查询到底出了什么问题,这是很明显的。要特别注意查询中的动态内容,通常要注意MySQL抱怨的区域。 如果看起来还可以,那么您会寻找可能需要转义的单词

  • 为了避免DRY,我试图创建一个sql INSERT语句,其中包含变量列名和通过ScalikeJDBC的sql内插填充这些列的数据: 当我把这个叫做: sql语句是:INSERT INTO?(?,?)值(?,?) 参数为:List(My_Table,key,email,42,user@email.com) 您的SQL语法中有一个错误;检查与您的MySQL server版本对应的手册,查找使用“my_