2023-04-02 17:42
@JFinal 好的,一开始用的就是sqlId,后来参考的文档中的“#sql 指令”部分提到了sqlkey,才命名为sqlKey的,个人感觉sqlKey比sqlId美观,但多一个字母...
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:10
@JFinal 遇到同样问题了,意思是这样,输出指令中的对象是动态拼接的,如果用#("data." + "name"),这样输出的是字符串 data.name,不是想要的#(data.name)中data对象的name值,不知道这样描述清楚不?不知道有什么别的办法渲染#(data.name)不?
2018-02-08 16:18
@JFinal 波总,3.3的shiro我这么搞的,把插件启动放到configEngine里边,然后调用了start方法启动了插件,分块路由参考http://www.jfinal.com/share/224?p=3#reply_start,原来的ShiroPlugin构造方法添加一个参数为List的,测试了下controller添加注解可用。