2016-10-25 16:34
1:对于不使用 sql 的查询不需要指定表名,例发 model.findById(123) 这种,对于需要传入 sql 参数情况,由于 sql 本身也是用户自己给出来的,所以表名也在 sql 之中,如果 jfinal 再去干预一次,除了要拼接损失点性能以外,还需要用户故间不写表名,例如: model.find("select * from #tableName where ...", para),这样 jfinal 在底层再去替换 #tableName 这样的占符,也是可以的,目前暂未支持
2:表名可以在 model 中通过 getTable().getName() 这一行代码获取到,可以定制生成器,生成一个 _getTableName() 的方法出来使用,注意,这个方法名要带上下划线 "_",否则会被当成是 bean 的 getter 方法
2016-10-24 21:22
@avegetablebird 如果 wxReq() 是一个 action,那么调用同 controller 中另一个 action 的时候, parameter 中的参数本身就过去了,不需要做任何传递动作
2016-10-24 10:59
@Noobs 这个是 jfinal 2.3 中将要推出的功能,目前建议是在 Controller 的声明入添加解,可拦截整个 controller 中所有 action
2016-10-23 16:16
这个地方是帮助控制事务,以及在 showSql 设置为 true 时代理 connection 来实现 sql 语句输出的,注意如下几点:
1:在 Tx 拦截器或者 Db.tx(...) 这类开启事务的方法中,会直接从 dataSource 获取 connection 开启事务,并放入该 threadLocal
2:真正使用 connection 的地方调用该 getConnection() 方法,如果 threadlocal 中有 conn 对象,直接使用,这样拿到手的就是前面 1 中设置的 connection
3:当 threadLocal 中没有 connection 的时候,证明没有开启事务,这时再从 dataSource 中去拿 connection,拿的时候根据 showSql 值来决定是不是要生成代理
2016-10-22 21:15
@kopj 是依据 jfinal 路由规则让 url 对应到 controller 中的方法,下载 jfinal 手册了解一下