dbutils getBytes 转码问题

黑豆白 发布于 2012/03/21 16:13
阅读 222
收藏 0
我的数据库中数据比较特殊,一位大牛设计的,我这只能通过下面方法,才能正常显示中文。
ResultSet rs = pstmt.executeQuery(); 
while(rs.next()){
    byte[] b = rs.getBytes("name");
    System.out.println(new String(b, "GBK"));

现在想用dbutils的查询,请问name字段该对应什么类型呢?怎么转换合适呢?
加载中
0
zheng-lee
zheng-lee

数据库直接用GBK编码,这位大牛确实比较牛

可以考虑实现ResultSetExtractor接口,自己做JavaBean封装

0
三番水
弱弱的问一句 看不到数据库中字段的存储类型吗?
黑豆白
黑豆白
varchar的,但他在入库的时候setBytes(8,dsid.getBytes("GBK")) 这样了,数据库里都是乱码,我只能用上面那样解码
0
zheng-lee
zheng-lee
估计他数据库的编码设置成了GBK,使用的驱动又没法设置编码,读取按照java的默认编码就会乱码,估计估计
zheng-lee
zheng-lee
就用我上面写的方法就可以了
黑豆白
黑豆白
是他在入库的时候就setBytes(8, dsid.getBytes("GBK")),所以数据库直接看都是乱码,只能转码,我很无耐。跟他讨论过,无解。@三番水
0
红薯
红薯
没玩过这种类型,不知道对应什么类型,你可以试试用 Map 来映射,然后拿出 value 打印 value.getClass().getName() 看看 dbutils 给你转成什么类型
黑豆白
黑豆白
数据库是varchar的,我用map看它自己转为string了。用bean映射,无法直接转为byte[] 类型。我先用原始方法完活了,之后在研究,一般db没这么设计的·····
返回顶部
顶部