Hibernate使用者自定義資料型別問題
各位大俠,我專案的資料庫是oracle字符集是UTF-8
資料庫中使用Clob儲存資料。
我自己寫了一個自定義資料型別
public class StringClobType implements UserType {
public Object nullSafeGet(ResultSet arg0, String[] arg1, Object arg2)
throws HibernateException, SQLException {
String ret = null;
StringBuffer buffer = new StringBuffer();
try {
// First we get the stream
InputStream is = arg0.getAsciiStream(arg1[0]);
byte[] buf = new byte[1024];
int read = -1;
while ((read = is.read(buf)) > 0) {
buffer.append(new String(buf, 0, read,"UTF-8"));
}
is.close();
} catch (IOException ioe) {
ioe.printStackTrace();
throw new HibernateException("Unable to read from resultset", ioe);
}
ret = buffer.toString();
return ret;
}
/*
* (non-Javadoc) (at) see org (dot) hibernate.usertype.UserTypenullSafeSet
* (java.sql.PreparedStatement, java.lang.Object, int)
*/
public void nullSafeSet(PreparedStatement pst, Object data, int index)
throws HibernateException, SQLException {
data = data == null ? new String() : data;
String in = (String) data;
byte[] buf = null;
try {
buf = in.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
buf = in.getBytes();
throw new HibernateException(e.getMessage());
}
int len = buf.length;
ByteArrayInputStream bais = new ByteArrayInputStream(buf);
pst.setAsciiStream(index, bais, len);
}
我的問題是,存入資料庫的資料漢字全部變成了亂碼!請問哪位知道問題何在
資料庫中使用Clob儲存資料。
我自己寫了一個自定義資料型別
public class StringClobType implements UserType {
public Object nullSafeGet(ResultSet arg0, String[] arg1, Object arg2)
throws HibernateException, SQLException {
String ret = null;
StringBuffer buffer = new StringBuffer();
try {
// First we get the stream
InputStream is = arg0.getAsciiStream(arg1[0]);
byte[] buf = new byte[1024];
int read = -1;
while ((read = is.read(buf)) > 0) {
buffer.append(new String(buf, 0, read,"UTF-8"));
}
is.close();
} catch (IOException ioe) {
ioe.printStackTrace();
throw new HibernateException("Unable to read from resultset", ioe);
}
ret = buffer.toString();
return ret;
}
/*
* (non-Javadoc) (at) see org (dot) hibernate.usertype.UserTypenullSafeSet
* (java.sql.PreparedStatement, java.lang.Object, int)
*/
public void nullSafeSet(PreparedStatement pst, Object data, int index)
throws HibernateException, SQLException {
data = data == null ? new String() : data;
String in = (String) data;
byte[] buf = null;
try {
buf = in.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
buf = in.getBytes();
throw new HibernateException(e.getMessage());
}
int len = buf.length;
ByteArrayInputStream bais = new ByteArrayInputStream(buf);
pst.setAsciiStream(index, bais, len);
}
我的問題是,存入資料庫的資料漢字全部變成了亂碼!請問哪位知道問題何在
相關文章
- 自定義資料型別資料型別
- DM自定義資料型別資料型別
- Vector中存放自定義資料型別資料型別
- 自主資料型別:在TVM中啟用自定義資料型別探索資料型別
- 自定義型別型別
- Python 多程式的自定義共享資料型別Python資料型別
- UnrealEngine建立自定義資產型別Unreal型別
- Kettle自定義資料庫連線型別連線HGDB資料庫型別
- 型別自定義格式字串型別字串
- ros|自定義訊息型別ROS型別
- long資料型別跨平臺問題資料型別
- 【填坑往事】使用Rxjava2的distinct操作符處理自定義資料型別去重的問題RxJava資料型別
- Android 自定義構建型別 BuildTypeAndroid型別UI
- C# 泛型集合的自定義型別排序C#泛型型別排序
- 陣列轉json後的資料型別問題陣列JSON資料型別
- MyBatis使用自定義TypeHandler轉換型別MyBatis型別
- 兄弟連go教程(7)自定義型別Go型別
- C語言筆記——自定義型別C語言筆記型別
- hibernate跨資料庫,json欄位處理方案,自定義擴充套件JsonStringType資料庫JSON套件
- 使用 System.Text.Json 時,如何處理 Dictionary 中 Key 為自定義型別的問題JSON型別
- 【知識分享】大資料安全問題有哪些型別大資料型別
- Hive(一)資料型別以及DDL資料定義Hive資料型別
- Hibernate中@Struct註解型別Struct型別
- SpringBoot + 通義千問 + 自定義React元件,支援EventStream資料解析!Spring BootReact元件
- SQL Server資料庫中的資料型別隱式轉換問題SQLServer資料庫資料型別
- Laravel 中自定義使用者登入的資料表Laravel
- ClickHouse資料庫資料定義手記之資料型別資料庫資料型別
- Jaskson精講第6篇-自定義JsonSerialize與Deserialize實現資料型別轉換JSON資料型別
- 編號函式 自定義函式 集合型別 表的優化 資料傾斜函式型別優化
- 如何構建自定義人臉識別資料集
- JS專題之資料型別和型別檢測JS資料型別
- js資料型別之基本資料型別和引用資料型別JS資料型別
- 資料型別: 資料型別有哪些?資料型別
- Mybatis使用小技巧-自定義型別轉換器MyBatis型別
- 《Haskell趣學指南》筆記之自定義型別Haskell筆記型別
- ROS2/C++ 自定義訊息型別ROSC++型別
- PyTorch 自定義資料集PyTorch
- Java泛型型別擦除問題Java泛型型別
- 多型關聯自定義的型別欄位的處理多型型別