2017-05-12 12:27

ApiInterceptor 是专门针对控制层设计的,如果你要用于 WeixiinMsgUtil,需要先了解 ApiInterceptor 的工作机制

作用于控制层,可以覆盖到你的 WeixinMsgUtil,所以是没有必要再 enhance 的

2017-05-11 22:01

补充一下:如非必要不要使用 ?? 运算符,否则就是代码冗余,当一个变量为null 时通常也没有必要使用 ??,只有下面两种情况需要使用:
1:需要为 null 值提供一个默认值,例如下面的表达式:
abc ?? def
当 abc 为 null 时,整个表达式的值为 def

2:当 field 取值表达式或者方法调用表达式的被操作对名为 null 时,例如下面的表达式:
obj.method()
当 obj 可能为 null 时,才需要使用: obj.method()?? , 如果确定 obj 不可能为 null就不需要

user.nickName
当 user 可能为 null 时,才需要使用:user.nickName ?? , 如果 user 不可能为 null,即便是 nickName 为 null 也不需要使用 ??

综上, ?? 表达式不要过度使用,只有要必要的时候才使用,否则到处是 ?? ,影响美观,而且代码冗余

2017-05-11 21:57

类似于下面的用法:
#if (cond)
#break
#end

#break #continue 的用法与在 java 中的行为一样

2017-05-11 16:57

感谢你的分享,对于 IDEA 新手很有用

2017-05-11 16:56

简化使用,减少代码冗余的封装都是可以的, just do it

2017-05-11 16:52

"ID NOT IN ? " 这个是无法针对多个值工作的,一个值就得配备一个问号“?”,所以你需要将 sql 拼接成有多少参数就需要多少问号的形式

建议用 sql 管理功能来过生成这个 sql,简洁且清晰

2017-05-11 16:47

@sdfsf 当然可以,这里刚才有个分享是介绍在老版本 jfinal 2.2 中如何使用模板引擎的:https://my.oschina.net/u/2248923/blog/897189

你如果是在 spring 中使用,大致方法一样,不同点在于,只你只需要使用完整的 jfinal-3.1.jar 就可以了

在任意环境下使用 jfinal template engine 的方法在 jfinal 手册中有一个章节有过介绍

2017-05-11 12:00

单步踪到出异常的那个方法里面,看一下 Config 对象持有的 Dialect 属性变量的类型是什么,立即就知道了

2017-05-11 11:59

@泪三国云无痕 不会的,异常提示很明显,就是仍然是 MySqlDialect 在起作用

2017-05-11 11:42

@泪三国云无痕 我可以确定的是方言设置没生效,你单步跟踪一下看看是啥方言就知道了

2017-05-11 11:25

通过异常提示可以看出来,仍然是设置的 MySql 的方言,因为那个提示中的定界字符是 mysql 独有的

因此,很可能是你的 ecipse 的自动编译没打开,设置后没编译成 class,所以并不真的有效,注意方言使用 SqlServerDialect

2017-05-11 11:22

你的分享,我既点了赞,也收藏了,代码很简洁,以后肯定能用上,感谢你的分享

2017-05-11 11:21

jfinal 其实就是普通的 MVC + ORM 框架,尤其是 Model 在生成了 getter、setter 以后尤为如此。

所以本质上是可以集成任何第三方框架的,mq 没有问题

2017-05-11 11:20

试一下这两个方向,二选一,或者两者结合
1:做一个 MyMetaBuilder extends MetaBuilder,强制指定自己需要的类型映射
2:做一个 MyOracleDialect extends OracleDialect,覆盖掉 Dialect 中的 buildeModelList() 与 buildRecordList(),控制一下 JDBC 生成的类型

建议优先使用第二种方式,应该很方便去控制,参考 ModelBuilder.build(...) 方法,在 for 循环里面添加上你想控制的 if 分支应该就可以搞定

记得搞定后回来分享一下哈

2017-05-11 09:44

@无为 魔板引擎的功能是很可靠的,并且深度打磨过