2018-08-29 13:15

升级 cos 到 2017.5 这个版本,再首页下载 jfinal all zip 这个文件里面也有这个文件,maven 中心库也有

2018-08-29 10:18

@happyboy 使用 jfinal 开发项目省下来的时间,走出去全部用于撩妹,别老宅在家里

2018-08-29 10:13

先下载首页的 jfinal demo, 导到 eclipse 中先跑起来,然后按教程走的过程中碰到问题就回看一下 jfinal demo,立即就明白了

简单来说就是你的那个 YourJFinalConfig 中少一个 public void configEngine(Engine me) 方法

2018-08-28 16:59

JFinalJson.setConvertDepth(50)

2018-08-28 16:11

设置一下 JFinalJson 这个类里面的那个 convertDepth参数,有个方法专门设置这个参数的

2018-08-28 15:15

@Don小浩 @平音 PropKit 得到 Prop 对象以后,里面有一个 getProperties() 方法可以得到 Properties 对象,这个对象是 JDK 里面的一个工具类,可以对其操作并写入文件,实现起来估计也就 10 行代码左右

网上很多有关 Properties 类写文件的资源可以参考

2018-08-28 15:06

jfinal 是后端框架,而 antd 是前端框架,这两者没有本质的关系,在整合的时候不存在什么关联

前端后端各自使用就可以了,前后分离的项目,后端一般提供 json 类型的数据,非前后分离的后端提供 html 数据

2018-08-28 14:21

@vk567 有眼光

2018-08-28 11:46

直接写关联的 sql 就好:
select a.* from a inner join b on a.bid = b.id

三张表就 join 两次,看一下 jfinal 文档,其中有关于关联表查询以及数据输出的例子

2018-08-28 11:35

@七彩 看到你的数据库和代码中使用了 ymx ks 这样的名字,这类代码可维护性很低

不要用拼音,更不能用拼音缩写,一定要用有意义的英文单词

2018-08-28 11:34

@CrazyZH 简单说就是要让 PathKit.getRootClassPath() 输出的目录确实是指向了你的 sql 文件输出的目录,你的 sql 文件会被自动编译到 classes 目录下面,这个目录下面还有其它的被编译成 .class 的文件

2018-08-28 11:21

PathKit.getRootClassPath()打印出来是:E:\workspaces\waiter\file:\E:\workspaces\waiter\src\main\webapp\WEB-INF\lib\alipay-sdk-java20180309170622.jar!

错误就是这里了,正常情况是项目的 webapp/WEB-INF/classes 下面,如果是 maven 项目则是 target/classes 下面

应该是你的项目配置有问题,解决办法有两个:
1:如果是 maven 项目,则保留 src 目录以及 pom.xml 文件,删掉所有的东西,重新当成 maven 项目导入一次,让 eclipse 重新帮你生成那些额外的配置文件

2:如果不是 maven 项目,按照文档来配置一下 Default output folder 目录即可

2018-08-28 11:00

@jianghe727 这个是因为你前面的 acc.save() 与 后面的 Db.update 处在一个事务之中,事务未提交所以 acc.save() 还并未真正在数据库里面创建记录,所以后面的 Db.update 找不到 ids 参数,所以就不会生效了

解决办法是不要将 acc.save 与 Db.update 放在同一个事务中,具体做法是使用 Db.tx(...) 这种手动的方式对 acc.save() 部分做事务

然后 Db.update 另起一个事务

这个问题本质是因为 Db.update 中使用的 where 条件对于同一个事务中前面的 acc.save() 有依赖,并不是在 jfinal 中才会碰到的问题,使用任何一个 ORM 框架都会碰到这个问题

2018-08-27 23:21

有办法解决,今天太晚了,只简单说一下:
1: number 字段映射问题可以通过继承 MetaBuilder ,对于 BigDecimal 类型生成 Integer 或者 Long 类型。 MetaBuilder 中所有方法都是可以覆盖并定制的。具体到 oracle 的 number 类型,还可以得到其精度,选择生成 Integer、Long、BigDecimal

2:oralce 的字段一定要用下划线分隔,否则生成器生成 getter、setter 方法时就不好处理,因为生成器是无法知道你的多个单词的分界点的,除非先准备一个分词文件,然后利用分词器进行单词的分割,做到是可以做到,就是麻烦

CaseInsensitiveContainerFactory 这个不建议使用,如果要用也不建议传入 true/false构造方法的参数,让构造方法参数留空

3:date 格式这个,只要配置好 datePatter 就可以了,me.setJsonDatePattern(...)。 建议使用 jfinal 3.4版本,因为老版本的这个配置对于 JFinalJson 实现无效

2018-08-27 21:56

已分割完一个,为啥不会分割第二个呢? 代码都是一样的:
#set( ymxArray = x.yxm.split(",") )
#set( ksArray = x.ks.split(",") )

#for (int i=0; i < ymxArray.length; i++)
#(ymxArray[i])
#(ksArray[i])
#end

跟写 java 代码几乎没有区别