视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mysql版本升级引发的问题_MySQL
2020-11-09 18:35:19 责编:小采
文档


bitsCN.com

mysql版本升级引发的问题

问题描述:

1. ibatis 中 mysql语句

Java代码

2. service层代码

Java代码

Map tempMap = dao.getQids(qid);

if(tempMap != null){

byte[] arr = (byte[])tempMap.get("qids");

String tempQids = new String(arr);

tempMap.put("qids", tempQids);

this.qids.add(tempMap);

}

3. 在测试服务器上测试时,发现一直报2中刷红部分一直报 类型转换错误

4. 采用了N种办法

(1) 本地与svn代码

(2) 对比 测试 与 正式的代码

(3) 对比测试与正式数据的差异性

实在找不到原因

(4) 开始怀疑 mysql驱动

(5) mysql数据库版本

最终竟然 锁定在mysql数据库版本

由于数据库(测试库) 上个月刚采用了 mysql 5.5 ,而正式上还没有发布,仍旧采用的mysql 5.1,真正原因。

如下原因:

当你用group_concat的时候请注意,连接起来的字段如果是int型,一定要转换成char再拼起来,

否则在你执行后(ExecuteScalar或者其它任何执行SQL返回结果的方法)返回的将不是一个逗号隔开的串,

而是byte[]。

该问题当你在SQLyog等一些工具中是体现不出来的,所以很难发现。

select group_concat(ipaddress) from t_ip 返回逗号隔开的串

select group_concat(id) from t_ip 返回byte[]

select group_concat(CAST(id as char)) from t_dep 返回逗号隔开的串

select group_concat(Convert(id , char)) from t_dep 返回逗号隔开的串

bitsCN.com

下载本文
显示全文
专题