日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

java解析varbinary_java – JdbcTemplate:以字符串形式访问MySQL VARBINARY字段

發布時間:2023/12/10 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java解析varbinary_java – JdbcTemplate:以字符串形式访问MySQL VARBINARY字段 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我無法使用JdbcTemplate將

MySQL的VARBINARY字段作為String讀取.我們將字符串縮寫(“ABC”,“XYZ”,“LMN”等)存儲為VARBINARY(不要問我為什么).奇怪的是,當我使用Connection類/ PreparedStatement路由和普通的舊ResultSets與SqlRowSet時,我讀取String沒有問題.也就是說,

此代碼有效:

String sql = "select MY_VARBINARY_FIELD from MY_TABLE where KEY1=? and KEY2=?";

PreparedStatement stmt = connectionDev.prepareStatement(sql);

prepStmt1.setInt(1, key1);

prepStmt1.setInt(2, key2);

ResultSet rs = stmt.executeQuery();

while (rs.next()) {

String s = rs.getString("MY_VARBINARY_FIELD");

System.out.print(s + " ");

}

**Output:** AHI-1 DKFZp686J1653 FLJ14023 FLJ20069 JBTS3 ORF1 dJ71N10.1

但是這段代碼沒有:

String sql = "select MY_VARBINARY_FIELD from MY_TABLE where KEY1=? and KEY2=?";

Object[] params = {key1, key2};

SqlRowSet rows = getJdbcTemplate().queryForRowSet(sql, params);

while (rows.next()) {

String s = rows.getString("MY_VARBINARY_FIELD");

System.out.print(s + " ");

}

**Output:** [B@3a329572 [B@4ef18d37 [B@546e3e5e [B@11c0b8a0 [B@399197b [B@3857dc15 [B@10320399

為什么SqlRowSet和ResultSet為VARBINARY生成不同的String表示形式?如何使用JdbcTemplate / SqlRowSet獲得“正確”的表示?

謝謝!

馬克羅特維爾(下圖)回答了這個問題.我得到了這個:

String sql = "select MY_VARBINARY from MY_TABLE where KEY=VALUE";

SqlRowSet rows = getJdbcTemplate().queryForRowSet(sql);

while (rows.next()) {

byte[] varbinary = (byte[]) rows.getObject("MY_VARBINARY");

System.out.println(new String(varbinary));

}

總結

以上是生活随笔為你收集整理的java解析varbinary_java – JdbcTemplate:以字符串形式访问MySQL VARBINARY字段的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。