2023-10-24 15:30

去掉这个依赖javax.servlet-api,这个已包含在 jfinal-undertow 依赖之中,如果添加,反而会出问题,IDEA、eclipse 对依赖的处理有差异

2023-10-10 13:33

这是什么数据库? 字段类型能空着? 没见过这种玩法

2023-10-04 16:33

在 SpringBootConfig 配置的 Engine 对象与你 Engine.use() 获取到的是不同的对象,有两种办法,一种是使用前者:
JFinalViewResolver.engine.getTemplate("test.html");

另一种是先配置:
Engine.use().setToClassPathSourceFactory().setBaseTemplatePath("/templates/");

然后再使用:
Engine.use().getTemplate("test.html");

Enjoy 模板的各个 Engine 对象是独立配置的,可分别用于不同的用途,知道这点就能轻松拿捏了

2023-09-21 00:58

可能是 sqlite 的驱动不对,看看 pom.xml

还有一个解决办法是,先不管 jfinal 这边, 先用纯 JDBC 将 sqlite 跑起来,然后用跑起来的配置用于 jfinal 配置

因为 jfinal 底层就是用的 JDBC, 仅仅对 JDBC 做了极薄封装,所以,能在 JDBC 上用的配置就一定能在 jfinal 中用

2023-09-21 00:56

@杜福忠 极好极好

有了 JDK 17 的多行字符串支持, sql 不用写在外部文件中了,直接写到 java 代码中也很好维护。

即便还想写在外部文件中,也可以将 SQL 抽取到独立的 java 代码中的多行字符串,例如:
public interface UserSql {
String find = """
select * from user where id = #para(0)
""";
}

然后用的时候: dao.templateByString(UserSql.find).find();

aifei 已将模板 sql 提升到最优先位置,不用 templateByString ,用更便捷的方式使用 sql 模板

2023-09-20 18:07

应该是 JDK 21 中没有了 Compiler 这个类,一会我去除掉,见下面这的代码:
static {
Class[] cs = {..., Compiler.class, ...}
}

着急用吗? 着急我就发一个新版本

2023-09-20 18:04

代码不完整,不知道你是如何调用的

2023-09-10 12:10

@zzutligang 超赞

对于打包:通过配置,让 sql 留在 jar 文件内,不要复制到 config 目录

对于开发:通过配置,确保 target/classes 下面存在 sql 文件,否则程序无法启动

2023-09-07 19:44

package.xml 中大致这么配置:

<!-- src/main/resources 全部 copy 到 config 目录下 -->
<fileSet>
<directory>${basedir}/src/main/resources</directory>
<excludes>
<exclude>**/*.sql</exclude>
</excludes>
<outputDirectory>config</outputDirectory>
</fileSet>

2023-09-07 19:40

参考 jfinal-admin 或者 jfinal-club,大致是配置一下 pom.xml 中的 resoures

<!--
添加 includes 配置后,excludes 默认为所有文件 **/*.*,反之亦然
该规则在 maven-jar-plugin 等插件中同样适用
-->
<resources>
<!-- 添加该配置是为了将 .sql 文件打入 jar 包 -->
<resource>
<!-- 注意 IDEA 下必须要使用 ${project.basedir}/ 前缀,否则不生效 -->
<directory>${project.basedir}/src/main/java</directory>
<includes>
<!-- **/* 前缀用法,可以匹配所有路径 -->
<include>**/*.sql</include>
<include>**/*.jf</include>
</includes>
</resource>

<!--
没有添加 resources 配置时,src/main/resources 目录是默认配置
一旦添加 resources 配置指向 src/main/java 目录时,原先的默认配置被取代,
所以需要添加如下配置将默认配置再添加进来,否则无法使用 src/main/resources
下的资源文件
-->
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
</resources>

然后在 package.xml 中将 sql 排除在外,不 copy

2023-09-07 19:36

@zzutligang 参考 jfinal-admin 或者 jfinal-club

大致是配置一下 pom.xml 中的 resoures
${project.basedir}/src/main/java **/*.sql **/*.jf ${project.basedir}/src/main/resources 然后在 package.xml 中将 sql 排除在外,不 copy

2023-09-07 13:52

优先从 jar 包中加载, 打包时 sql 模板文件不要生成到 config 目录下,通过配置排除掉

2023-08-30 19:52

试用一下我提交的新版本代码,看还有没有问题,这个版本针对 BigDecimal 添加了 halfUp(int) 四舍五入功能,非常方便

2023-08-30 10:09

将 json 表示成一颗树,看一下树最深的地方是多少层

2023-08-30 10:05

@rctmlb 可能是 JDK 版本的问题,你是不是没有使用 Oracle 或者 OpenJdk 的版本? 可能有些比较偏门的 JDK 发行版本会有问题

无论如何,我这边代码已经调整过了,回发头个新版本给你:
https://gitee.com/jfinal/jfinal/commit/d95792105599e239ed5e87cf49bd19e4c449b64e