mybatis 中文显示不正常的问题

xevvex 2016-07-14 03:09:21
大神们,我写了一段sql里面有一段是这样的:
case when t.status= 0 then "下单成功" when t.status= 1 then "购买成功,购买资格已审核通过" when t.status= "2" then "超时未付关闭" when t.status= 21 then "已删除" else t.status end status,
case when t.audit_flag= 0 then "待审核" when t.audit_flag= 1 then "审核通过" when t.audit_flag= 2 then "审核未通过" else t.audit_flag end auditFlag,
这个字段显示到页面的时候都变成了[B@48be170b类似这种好像是对象的显示了,应该不是编码的问题 ,数据库里面存的中文是正常显示的 只是case when设定的中文不正常,这个应该咋办呢 Google了半天都是解决中文乱码的问题,跟我这个情况不一样,求解答
...全文
300 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lynnlovemin 2016-07-15
  • 打赏
  • 举报
回复
引用 7 楼 xevvex 的回复:
[quote=引用 5 楼 qq_33456238 的回复:] 试试这样写 case t.status when 0 then '下单成功' when 1 then '购买成功,购买资格已审核通过' when 2 then '*******' when 3 then '*************' end ) as status
已经试过 结果一样
引用 6 楼 lynnlovemin 的回复:
[quote=引用 2 楼 xevvex 的回复:] [quote=引用 1 楼 lynnlovemin 的回复:] [B@48be170b 打印的这个 很明显是个对象,你应该显示该对象下的属性
是的 ,我知道是对象,如果按照case when显示结果为中文的话,系统莫名其妙的自动把另外一列和这一列组合一起成为一个对象,但是如果我去掉case when 只是显示status的话就不会自动组合,从而正常显示了,所以就想知道这是为啥 是不是mybatis有什么使用上的限制[/quote] 跟mybatis关系不大吧 他直接操作的是sql,而且为什么要用case when呢 一般我们不建议用,效率比较低[/quote] 因为是一个临时的需求 就打算尽快出了就好 没想到反而除了莫名其妙的问题[/quote] 我大概知道你要实现什么功能,你sql不要写case when 就直接查询出status 然后在页面上判断,不就行了
xevvex 2016-07-15
  • 打赏
  • 举报
回复
引用 5 楼 qq_33456238 的回复:
试试这样写 case t.status when 0 then '下单成功' when 1 then '购买成功,购买资格已审核通过' when 2 then '*******' when 3 then '*************' end ) as status
已经试过 结果一样
引用 6 楼 lynnlovemin 的回复:
[quote=引用 2 楼 xevvex 的回复:] [quote=引用 1 楼 lynnlovemin 的回复:] [B@48be170b 打印的这个 很明显是个对象,你应该显示该对象下的属性
是的 ,我知道是对象,如果按照case when显示结果为中文的话,系统莫名其妙的自动把另外一列和这一列组合一起成为一个对象,但是如果我去掉case when 只是显示status的话就不会自动组合,从而正常显示了,所以就想知道这是为啥 是不是mybatis有什么使用上的限制[/quote] 跟mybatis关系不大吧 他直接操作的是sql,而且为什么要用case when呢 一般我们不建议用,效率比较低[/quote] 因为是一个临时的需求 就打算尽快出了就好 没想到反而除了莫名其妙的问题
lynnlovemin 2016-07-14
  • 打赏
  • 举报
回复
引用 2 楼 xevvex 的回复:
[quote=引用 1 楼 lynnlovemin 的回复:] [B@48be170b 打印的这个 很明显是个对象,你应该显示该对象下的属性
是的 ,我知道是对象,如果按照case when显示结果为中文的话,系统莫名其妙的自动把另外一列和这一列组合一起成为一个对象,但是如果我去掉case when 只是显示status的话就不会自动组合,从而正常显示了,所以就想知道这是为啥 是不是mybatis有什么使用上的限制[/quote] 跟mybatis关系不大吧 他直接操作的是sql,而且为什么要用case when呢 一般我们不建议用,效率比较低
曲奇丶 2016-07-14
  • 打赏
  • 举报
回复
试试这样写 case t.status when 0 then '下单成功' when 1 then '购买成功,购买资格已审核通过' when 2 then '*******' when 3 then '*************' end ) as status
  • 打赏
  • 举报
回复
Terence Jing 2016-07-14
  • 打赏
  • 举报
回复
都是高手
xevvex 2016-07-14
  • 打赏
  • 举报
回复
引用 1 楼 lynnlovemin 的回复:
[B@48be170b 打印的这个 很明显是个对象,你应该显示该对象下的属性


是的 ,我知道是对象,如果按照case when显示结果为中文的话,系统莫名其妙的自动把另外一列和这一列组合一起成为一个对象,但是如果我去掉case when 只是显示status的话就不会自动组合,从而正常显示了,所以就想知道这是为啥 是不是mybatis有什么使用上的限制
lynnlovemin 2016-07-14
  • 打赏
  • 举报
回复
[B@48be170b 打印的这个 很明显是个对象,你应该显示该对象下的属性

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧