2019-04-17 17:15

@正负余 你仔细看一下 jfinal club 最新版本中的用法

#include("/front/agentUser.sql") 这行代码,你要确保 agentUser.sql 文件在 all_sqls.sql 文件所在目录的 front 子目录以下

2019-04-17 17:09

sql 管理功能的配置,永远不要使用 PathKit

2019-04-17 17:08

再重复一次:
1:删掉 arp.setBaseTemplatePath(...) 这行代码
2:arp.addSqlTemplate(...) 改成:arp.addSqlTemplate("/sql/all_sqls.sql");

2019-04-17 17:03

删掉 arp.setBaseTemplatePath(...)

arp.addSqlTemplate 带上目录:
arp.addSqlTemplate("/sql/all_sqls.sql");

2019-04-17 15:02

简洁方便,必赞

2019-04-17 10:46

@jfinal初识 这个问题,可以通过单步调试,看返回值的具体类型,然后再选择合适的接收变量的泛型参数即可

2019-04-17 10:45

@jfinal初识 为此,刚刚补充了文档,新鲜出炉,值得仔细看一下:
https://www.jfinal.com/doc/5-5

2019-04-17 10:25

一般情况使用 Db.find 最好

2019-04-17 10:24

分两种情况:
1:select 后面只有一个字段,根据字段返回值选择泛型值
例如:
字段返回值是 String 类型,可以这么来用:
List<String> list = Db.query("select title from blog limit 1");

字段返回类型是 Integer 型,可以这么来用:
List<Integer> list = Db.query("select id from blog limit 1");

2:select 后面有多个字段,只能使用 List<Object[]>
List<Object[]> list = Db.query("select id, title, content from blog limit 1");

说白了,你的返回值变量要根据具体的返回值去变动,在开发的过程中试用一下就知道了

2019-04-17 09:41

手头持有 alter 型 sql 语句,就能安全、方便地进行数据库表结构的升级

如果你还希望更方便点,可以写个工具类执行这个文件中的 sql 语句,大致如下:
for ( sql : sqls) {
Db.update(sql);
}

2019-04-17 09:39

建议的做法是,每次改表结构都使用 alter 型 sql 语句,该 sql 语句在本地执行完成后立即保存到一个专有的文件里头

在项目部署前将上述文件里头的 sql 在生产环境逐条执行,注意这类 sql 的样子是:
alter table t_app change name app_name varchar(20) not null;

这里有很多 alter 型 sql:
https://www.cnblogs.com/dw3306/p/9650220.html

alter 型 sql 有个好处: 执行完一次,如果不小心执行第二次没有破坏作用,因为原先的修改已经达成,反复执行 alter 无影响

2019-04-17 09:33

对于应用程序,数据是核心,最好不要交给程序自动改变,而是要人为知道数据结构修改这事

2019-04-16 22:14

文档第二小节已经说明,要引入 jfinal-undertow 的 maven 依赖:
https://www.jfinal.com/doc/1-2

2019-04-16 22:11

注意看文档中 表达式 这一小节的最后面一段话:
https://www.jfinal.com/doc/6-4

在表达式中永远不要出现字符 '#',而是直接使用 java 表达式

2019-04-16 22:09

getSessionAttr 与 getSessionAttr 在内部只是转调了 Java web 标准中的 HttpSession 组件的方法

jfinal 并未做任何干预,因此这两个方法是决然不会出错的, 单步调试一下找到原因