2023-04-02 17:42

@JFinal 好的,一开始用的就是sqlId,后来参考的文档中的“#sql 指令”部分提到了sqlkey,才命名为sqlKey的,个人感觉sqlKey比sqlId美观,但多一个字母...

2019-02-28 09:29

楼主探讨一下,JWT是无状态的,想实现签发新的token后旧的token主动失效和后台会话管理的话,再加上层redis咋样?虽然会违背JWT消灭服务端session的原意!!还有shiro本身缓存使用的ehcache,同样换成redis做shiro的缓存,那样是不是就可以集群部署了。刚好用到,讨论下。。

2019-01-02 08:56

@年轻似水 你这个跟业务需求有关,上边的写法都是用的PreparedStatement,只要是这种写法就可以,灵活应用,比如你这个需求可以加个变量,一个存储sql,一个存储Object [] para,具体参考第三条;再一个思路,可以用下jfinal的sql管理功能,具体见文档 https://www.jfinal.com/doc/5-13

2018-12-11 10:08

使用占位符的优点:
1.增加SQL代码可读性
2.占位符可以预先编译,提高执行效率
3.防止SQL注入
4.用占位符的目的是绑定变量,这样可以减少数据SQL的硬解析,所以执行效率会提高不少

1. 查询参数无通配符
String userId = getPara("userId");
User.dao.find("select * from t_er_user where userId = ?", userId);

2. 参数有通配符
String userName = this.getPara("userName");
Object [] para = new Object[]{"%" + userName + "%"};
User.dao.find("select * from t_er_user where userName like ?", para);

3. 多个参数,其中有参数需要添加通配符
String userId = this.getPara("userId");
String userName = this.getPara("userName");
Object [] para = new Object[]{userId, "%" + userName + "%"};
User.dao.find("select * from t_er_user where userId = ? and userName like ?", para);

2018-08-09 23:56

@JFinal 谢谢波总这么晚回答,看了上边的帖子用map也是个办法,但后台需要转换,我暂时先加了vue结合输出指令用了

2018-08-09 23:10

@JFinal 遇到同样问题了,意思是这样,输出指令中的对象是动态拼接的,如果用#("data." + "name"),这样输出的是字符串 data.name,不是想要的#(data.name)中data对象的name值,不知道这样描述清楚不?不知道有什么别的办法渲染#(data.name)不?

2018-02-09 08:27

@JFinal 好的 去试下 谢谢波总

2018-02-08 16:18

@JFinal 波总,3.3的shiro我这么搞的,把插件启动放到configEngine里边,然后调用了start方法启动了插件,分块路由参考http://www.jfinal.com/share/224?p=3#reply_start,原来的ShiroPlugin构造方法添加一个参数为List的,测试了下controller添加注解可用。