当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

jfinal-dbx

JFinal 数据库模块改进
授权协议 WTFPL
开发语言 Java
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 国产
投 递 者 滕渝
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

针对jfinal框架,在数据库查询的相关api上做了一些修改,增强易用性。

  1. 参数获取

    int id = getInt("id", 0); // 如果有id参数并且值为整数类型,则转换为int类型,否则返回默认值0 float price = getFloat("price", 0); long time = getLong("timestamp", 0L);
    String name = getString("name");
    String sex = getString("sex", "^(male|female)$", "male");
  2. 分页查询的从句

    Clause clause = Clause.compose();
    clause.and("id in (*)", 1, 2, 3, 4); // 用*号代替需要指定确切数量的? clause.and("is_delete = ?", false); // 不再需要拼接又臭又长的where语句 Sheet users = Db.paginate(pageIndex, pageSize, "select *", "from tb_users {WHERE} order by id desc", clause);
  3. 简化参数化SQL查询

    // 使用*号代替需要指定确切数量的?
     Long count = Db.queryLong("select count(*) from table where id in (*)", 1, 2, 3, 4);
  4. 数据格式化器,大大降低联合查询的复杂性,详见样例

    1. 字段内容格式化

    2. 表联结

    3. 字段组合(联合计算或表联结)

WHY:为什么要弄个这东西?

首先当然是为了偷懒啦
又臭又长的SQL语句,完全没有可读性
繁复的表与表间的join,性能堪忧啊
构建复杂结构的json输出,很麻烦啊
轮子要重复的造,体力活不要重复的做

HOW:这东西怎么使

  1. 添加依赖库

    1. jfinal:极简J2EE开发框架

    2. Google gson

  2. 构建得到jar或直接添加.java文件到项目中

  3. 看看样例Sample.java

SAMPLE:样例

  1. 测试表结构及数据

    1. tb_users 用户表

      id        name        sex        reg_time            province_id
      1        zhangsan    1        1445218698            1
      2        lisi        1        1444749270            3
      3        lilan        0        1444809300            4
      4        huamulan    0        1443941012            7
    2. tb_friends 好友信息表

      id        user_id        friend_id
      1        1                2
      2        1                3
      3        2                3
      4        2                4
      5        3                1
      6        4                1
    3. tb_provinces 省份信息表

      id        name
      1        beijing
      2        tianjing
      3        shanghai
      4        chongqing
      5        shanxi
      6        shandong
      7        hebei
      8        henan
      9        hunan
      10        hubei
  2. 测试代码:Test.java

  3. 测试代码的输出JSON

    [
     {
         "test": "2:lisi",
         "province_id": 3,
         "sex": true,
         "name": "lisi",
         "id": 2,
         "friends": [
             {
                 "friend_name": "lilan",
                 "friend_id": 3,
                 "user_id": 2,
                 "id": 3 },
             {
                 "friend_name": "huamulan",
                 "friend_id": 4,
                 "user_id": 2,
                 "id": 4 }
         ],
         "fmt_reg_time": "2015-10-13 23:14" }
    ]

TIPS:最佳实践

整一大堆常用的Formattable,你值得拥有

 相关资料
  • 我试图在代码欺骗中创建一个功能测试,在那里我可以检查数据库表是否被pupuated,这里是测试: 以下是yaml文件: 我得到一个错误: 但是,当我在浏览器中填写表单时,代码起作用,用户已注册

  • 我正在尝试连接到codeception中的数据库。在我的api.suite.dist.yml和codeception.dist.yml文件中提供了以下配置(我不知道在哪里提供配置,所以我在api.suite.dist.yml和codeception.dist.yml中都提供了配置) 这是我的api.dist.suite.yml 这是我的codeception.dist.yml 这就是我得到的回应

  • 快速开始 安装MySQL数据库 https://www.mysql.com/downloads/ 安装 node.js的mysql模块 npm install --save mysql 模块介绍 mysql模块是node操作MySQL的引擎,可以在node.js环境下对MySQL数据库进行建表,增、删、改、查等操作。 开始使用 创建数据库会话 const mysql = require(

  • JBoss Wildfly 8.0.0-最终 JSF 2.2.4 首先,我创建登录使用application-users.properties和application-roles.properties.添加用户add-user.bat 网状物xml 独立的。xml 登录。xhtml 所以这很有效。。现在我想使用数据库身份验证。。因此,我改变了独立。xml。 我使用此sql在数据库中插入角色和用户(

  • 在一个Web App中,所有数据,包括用户信息、发布的日志、评论等,都存储在数据库中。在awesome-python-app中,我们选择MySQL作为数据库。 Web App里面有很多地方都要访问数据库。访问数据库需要创建数据库连接、游标对象,然后执行SQL语句,最后处理异常,清理资源。这些访问数据库的代码如果分散到各个函数中,势必无法维护,也不利于代码复用。 此外,在一个Web App中,有多个

  • 我有一个现有的Android项目,在其中我创建了一个新的(offlineservicelibrary)(文件/new/new module/Android library)。在这个库中,我想创建一个房间数据库。 我遵循https://developer.android.com/training/data-storage/room并为我的数据库创建了Entity(OfflineData)和DAO(O

  • 获得数据表数据接口,支持对内置表自定义字段的获取与修改 查询数据 接口 GET https://cloud.minapp.com/userve/v1/table/:table_id/record/ 其中 :table_id 需替换为你的数据表 ID 参数说明 Content-Type: application/json 参数 类型 必填 说明 where String N 查询语句,参数值应经过

  • 获得数据表数据接口,支持对内置表自定义字段的获取与修改 查询数据 接口 GET https://cloud.minapp.com/oserve/v1/table/:table_id/record/ 其中 :table_id 需替换为你的数据表 ID 参数说明 Content-Type: application/json 参数 类型 必填 说明 where String N 查询语句,参数值应经过