2019-06-08 10:12

如果是使用 jfinal-undertow 开发的话, sql 文件会被打到 jar 包中,如果要修改的话就不方便了

所以你的分享通过配置来决定 sql 模板的加载方式,对于打包后的 sql 修改很方便

感谢分享

2019-06-08 10:05

可能是没配置enctype 为 "multipart/form-data"

2019-06-08 10:03

应该是你的运行环境有问题,检查一下安装的是否为 JDK, JRE 是不可以的

再检查 JDK 最低要是 1.8 版本

最后,环境变量 CLASSPATH 最重要,检查配的环境变量,CLASSPATH 配置要是下面这样:
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

如果是 windows 系统,检查环境变量 CLASSPATH 的值为:
%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

记得搞定后回来分享

升级到 4.2 功能、性能各方面要好很多

2019-06-08 09:47

@Sohnny 目前你的 freemareker实现只是少了一行代码,但enjoy 的用法可以传递参数,还可以改变被回调的函数名,而 freemarker 是定死的

再者 enjoy 的用法是函数定义与调用的逻辑,而 freemarker 的 nested 的用法很古怪,新手很难理解

最后,如果你一定要用 enjoy 实现目前 freemarker 的用法用下指令扩展即可,假定你定义了一个 #query 指令,用法如下:
#query(paras)
#(r.COLUMN_COMMENT.name)
#end

记得搞定后回来分享,自定义指令的方法最符合你的预期

2019-06-07 17:47

先不说 #define 与模板函数安全调用可以解决你的问题,连最为灵活、动态的 #call 指令都给你了,还有啥 nested 是不能实现的:
#define myList(funcName, map)
#for(...)
#if(...)

#call(funcName, map)

#end
#end
#end

#define myFunc(user)
#(user.id)
#(user.name)
#end

// 动态传入被调用函数 myFun
#@myList("myFunc", {user : {id : 123, name : "james"} } )

2019-06-07 17:38

String sql = "UPDATE student SET stu_code=? , stu_name=?,stu_sex=?,birthday=?,class_id=? WHERE stu_id=?";

Db.update(sql, stuCode, sutName, stuSex, birthDay, classId, stuId);

2019-06-07 17:37

Map map = FastJson.getJson().parse(json, Map.class);

然后从 map 中获取

2019-06-07 17:36

生成器会自动生成相适应的 getter、setter 方法

Db.find (...) 出来的 Record 对象,可以使用 getInt getLong 等方法,完全兼容 Byte

2019-06-07 17:06

@RichardHe 自立更生,丰衣足食,忧患意识一定要有,没有错的

2019-06-07 17:04

迭代速度很快,技术水平也不错,相信会有不错的发展

2019-06-07 17:03

代码挺简洁,看得出有水平,感谢分享

2019-06-07 17:02

从异常提示来看,你用的是很古老的 jfinal 版本

很古老的版本对 sql 中的 table name 有检测,检测你当前 sql 需要存在与 model 映射过的 table name

为了更大的灵活性,早在一两年前就移除了这个检测

升级以后不会检测这个 table name

2019-06-07 16:59

数据库权限层面的事情,jfinal 肯定是不方便插手的

2019-06-07 07:37

@playsex 升到 4.2 版本,超爽的

2019-06-07 07:36

@happyboy 4.2 是里程碑式版本,值得升级,功能强悍,极端轻量级