jfinal 查询数据库对象 字段名如何转换成驼峰标示的字段名

jfinal 查询数据库对象 字段名如何转换成驼峰标示的字段名

比如CREATE_TIME 在输出的时候转换成createTime

评论区

HingLo

2018-08-01 15:37

你的sql 是的时候取别名啊,不然就在查询出来后,进行手动的转驼峰

lveRen

2018-08-01 15:41

@HingLo 就算取了驼峰标识的别名,查出来也全部是大写的,而且封装好的方法有些不需要自己写sql那种 查出来就全是和数据库字段一样了

HingLo

2018-08-01 15:56

那就在查询出来后,手动的进行转换

wangjiaxian

2020-05-08 22:02

问下, 这个问题最后如何解决的

JFinal

2020-05-09 00:39

@wangjiaxian 生成 base model , 其 getter 方法就是驼峰格式的

如果要转成 json, 使用 FastJson:
me.setJsonFactory(new FastJsonFactory());

wangjiaxian

2020-05-09 08:31

@JFinal 感谢波总,FastJson完美解决。

JFinal

2020-05-09 11:06

@wangjiaxian 配置成 FastJson 转换 json 时,对 Model 对象的转换一定要注意

fastjson 转 json 时依赖 getter 方法,所以你在使用 sql 关联查询时获取到的一些别的 table 的字段就不会被转换。使用 Model.put(...) 进去的数据也不会被转换,反正记住没有 getter 方法的就不会被转换

JFinalJson 对 Model 对象的转换不依赖 getter 方法,而是对 Model 内部的 Map attrs 这个对象进行转换,所以往这里头装入的数据都会被转换

在使用过程中,可以灵活选择,例如:
如果你使用的是 Oracle 数据库,最急需的是解决驼峰字段名问题,可以配置为 FastJson

然后在需要使用 JFinalJson 转换的地方临时使用,例如在 Controller 中这么临时来用:
String jsonString = JFinalJson.getJson().toJson(model);
renderJson(jsonString);

总结就是:me.setJsonFactory(...) 配置默认 json 实现类,在需要临时使用别的 json 实现的时候通过 JFinalJson.getJson() 或者 Xxx.getJson() 来使用

JFinal

2020-05-09 11:07

@wangjiaxian 建议看看 json 的文档与源码,很少的内容,一会就看完了:
https://jfinal.com/doc/12-1

最后,还可以继承扩展 JFinalJson, 在里头加一个对字段名转驼峰的代码也可以解决,方法也是现成的:
StrKit.toCamelCase(...)

热门反馈

扫码入社