首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
jfinal 查询数据库对象 字段名如何转换成驼峰标示的字段名
lveRen
2018-08-01 10:26
jfinal 查询数据库对象 字段名如何转换成驼峰标示的字段名
比如CREATE_TIME 在输出的时候转换成createTime
项目:
JFinal
评论区
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(...)
回复
发送
我要反馈
热门反馈
扫码入社