2016-11-11 11:44

@白菜先生 引号确保在 sql 中可以使用保留字,理论上来说应该全部加上,只不过目前只对 mysql、oracle 这些常用的数据库方言添加了引号

不同的数据库需要使用不同的转义字符,有些是引号,有些是方括号,而sqlite 没有多少使用经验,暂时还没添加

你可以通过 public class MySqliteDialect extends Sqlite3Dialect 扩展出自己用的方言,这样有利于 jfinal 升级以后,完全不影响你的代码,自行改动 jfinal 源码以以后升级到 jfinal 新版本时会比较麻烦

当然,你可以直接改源码并自行导出 jar 包去使用,jfinal 使用的是 apache 2.0 协议,是对商业十分友好的开源协议,开源的好处之一就是可以通过改源码自由定制自己要的功能

2016-11-11 11:12

这里是一个 jfinal 资深专家自已整合的 jetty9到 jfinal 上,可以参考一下:https://my.oschina.net/myaniu/blog/470050

这种方式,只是将原来 jfinal 的 Jetty 8 整合升级成了 jetty 9 整合,其实你不使用整合方式启动,完全不用这样做,jetty 与 jfinal 是完全可分离并使用的,例如,如果你用的 maven,只需要配置一下 jetty 插件到 pom.xml 之中,点击右键直接就可以启动 jetty 了

2016-11-11 11:09

源代码肯定是不用修改的,很多人在 jfinal 下使用 JSP,有几地方注意一下:
1:你用的 jetty 9.3 而不是 jfinal 官方整合的,所以在启动时不能以Main 方法的形式用 JFinal.start(...) 启动,也不用 IDE 间接使用 JFinal.java 这个类启动,这两种启动方式本质是一样的

2:由于 jfinal 要支持老版本的 JDK,所以 jfinal 整合的是 jetty 8 ,因为 jetty 9 不支持老版本 jdk

3:如果要用 jetty 9,使用其它非 jfinal 官方提供的方式启动即可,也就是说你以前怎么用的 jetty ,现在还怎么用

2016-11-11 11:04

简要说明一下:
1:方言要设置好,生成 model 以及运行时都要设置
2:oracle 默认会在 sql 查询出数据时,将字段名变为大写,但生成的 BaseModel 会是正确的,在读写字段时用 getter setter 方法即可
3:在没有使用 getter、setter 而是用 get(String) 的地方,注意大小写与字段名相同,但也可以使用一下 arp.setContainerFactory(new CaseInsensitiveFactory()) ,使其可以不用区分大小写
4:表不存在的问题,通常是当前用户有没有权限,虽然明明看到表是存在的,但是就是读不到

2016-11-10 18:27

@杜福忠 回报之心非常之难得,再次感谢你的支持,jfinal 将越来越好用,为你节约更多宝贵时间,jfinal 2.3 下个月放出来,确保四连冠

2016-11-10 18:25

两种方式,任选其一:
1:在第一行处调用一次:checkUrlPara(0)
2:在 index() 这个 action 上用一下 @Before(NoUrlPara.class)

2016-11-10 18:23

微信小程序的这些思想确实很高明,除了体现价值以外,还体现了“善良”,张小龙信奉“善良”比聪明更重要

2016-11-10 18:20

@puyu jfinal 后续版本支持了多数据源,所以将 DataSource Connection 这类对象按照数据源分组在 Config 对象中进行管理,所以先要获取相应的 Config 对象,然后再获取相应的资源

2016-11-10 18:19

jfinal 仅仅是将 sql 与其参数直接扔给了 JDBC 去查询数据库,所以 jfinal 这端是不会有问题的,只需要确定纯 JDBC 是否支持你的查询即可

目测应该字符集的问题,info.getArtName() 得到的字符集可能与数据库支持的不相同,建议将 info.getArtName() 手写成中文常量试试,当然这样做需要确保你的源程序使用的字符集与数据库字段一致

2016-11-10 10:34

@杜福忠 非常感谢你对社区的支持,上个月就发现捐助人名里面你的名字非常眼熟,刚看了一下一共有 6 次捐助,如果所有 jfinal 用户都这样支持,那社区发展就会更加迅猛了

2016-11-09 15:59

不用 MappingKit,在多数源下可以这样来:
arpAaa.addMapping(aaa, Aaa.class); // 数据源 aaa,映射 model Aaa
arpBbb.addMapping(bbb, Bbb.class);// 数据源 bbb,映射 model Bbb
arpCcc.addMapping(ccc, Ccc.class);// 数据源 ccc,映射 model Ccc

2016-11-09 15:58

用 _MappingKit 也可以:
_MappingKitAaa.mapping(arpAaa);
_MappingKitBbb.mapping(arpBbb);
_MappingKitCcc.mapping(arpCcc);

2016-11-09 15:57

@luluxiu00 完全一样:arp.addMapping(...)

2016-11-09 15:46

jdk 是否使用的是 openJDK,这个可能有问题

2016-11-09 15:44

一个 model 只能映射到某一个数据源,但是可以通过 model.use(...) 临时改变数据源去使用