2017-01-04 11:42

@super超 可以对 RedisPlugin 做些自行扩展,都是开源的东西,扩展起来很方便

2017-01-04 11:39

自行获取 Jedis 对象,注意一下资源的回收问题,可以看看 Cache 类里面是如何回收 jedis 对象资源的,照此办理就好

2017-01-04 11:38

对 Jedis 有些了解是最好的,因为 jfinal 的 redis plugin 是对 Jedis 这个工具的二次封装,可以通过 cache.getJedis() 直接获取到 Jedis 对象,这样就能直接绕过 jfinal 去使用更加底层的 Jedis 了

2017-01-04 11:24

@super超 通过这种方式解决后,有多少数据库,只需要通过 Redis.use(...) 切换过去就好,非常方便,当然这个 Redis.use(...) 方法并不仅仅是用来切换数据库,还可以事先指向另一台 redis 服务器,这样就可以切换到不同的服务端

2017-01-04 11:20

再提醒一下,获取 incr incrBy decr decrBy 设置的数据,需要使用 getCounter(key) 方法,而不能使用 get(key) 方法

2017-01-04 11:19

创建另一个,指向 database 2
RedisPlugin rp = new RedisPlugin("db2", ip, 8888, 30, pass, 2);
me.add(rp)

然后用的时候 Redis.use("db2").get(...) 不要使用 select(2) 来切换数据库,这个 select 方法是需要配合 Redis.call(...) 来使用的

2017-01-04 11:10

为 database 0 以外的数据库再创建别一个 RedisPlugin 对象,使用 Redis.use(...) 的方式切换过去再调用其方法: Redis.use(otherDb).get(...)

注意:指定 database 创建 RedisPlugin 有相应的构造方法可以使用,注意看一下

2017-01-04 10:55

简单说上传就用 getFile() 下载就用 renderFile(),例子的话,在 oschina 上搜索一下相关项目:http://git.oschina.net/search?search=jfinal&type=project&condition=forks_count

2017-01-03 17:23

@java小王 删除与修改都是用的 Db.update(...) 方法

2017-01-03 15:45

@leejanfin 还没有发布,再等几天

2017-01-03 15:32

做一个 MyInterceptor extends I18nInterceptor扩展一下,然后将 inv.inovke() 这行代码往前移动,放在 switchView 操作前面去就可以了。这是个 bug,新版本已修复该问题,多多关注社区动态,近期的新版本已经搞定

2017-01-03 15:31

在多数情况下,findAll() 这种方式不是 jfinal 提倡使用的 api,jfinal 提倡 select 具体的字段,可以养成更好的习惯,而且无条件查询表中所有数据的情况并不是经常发生,即便有这种需求,也可以通过 find("select * from t") 来实现,这种实现方式不仅代码量并没有提升,而且开发者自己明确自己是否真的需要无条件 select * 查询当前表中所有数据

而对于 findFrist(searchEntity) ,jfinal 并不是很容易地确定该怎么去利用 searchEntity 中的查询条件,例如:是利用其中的所有条件? 还是利用部分条件? 是某个条件用 and 还是某些条件用 or 和 not?还是用 not exists 和 in?

查询条件的多少与利用方式是一个极其个性化、业务化的事情,如果 jfinal 去插手这个事情,事情可能变得更糟糕,并且更加复杂。所以对于这个问题,jfinal 是开放 String sql 与 Object... sql,这两个参数来让用户自由去发挥,无招往往才是最好的招

当然,为了方便用户更加方便和灵活的定制 sql,目前的 jfinal 版本还做得不够,这正是即将推出的 jfinal 新版本要做的事情,多多关注社区动态,近期发布新版本

2017-01-03 15:23

不用那么麻烦,用 Db.update("delete from tbl_student where name=?", "张飞") 即可

2017-01-03 11:46

@sdfsf 以下这几个链接中有上千个相关项目,供参考:
http://git.oschina.net/search?search=jfinal&type=project&condition=updated_at

https://www.oschina.net/search?q=jfinal&scope=project&tag1=0&tag2=0&lang=0&os=0

https://github.com/search?o=desc&q=jfinal&s=stars&type=Repositories&utf8=%E2%9C%93

2017-01-02 21:52

@localhost8080 根据日志提示信息,可以猜测一下,可能是连接池在多线程下并发分配资源时造成了死锁,但死锁存在并不一定就是不正常的,检测出死锁,将死锁去除也是一种处理方式。

据日志信息来说这类死锁可能是正常现象,否则就直接报ERROR,而不是WARN