现在又一个应用场景,前台数据操作数据我以HashMap保存起来然后存入数据库中的blob字段,现在怎样在把它取出来放到一个map中
[b]问题补充:[/b]
请问有没有spring结合hibernate操作的 ,看了一些网上的配置都有错误,多谢大侠们的解答

spring 和hibernate怎样操作blob字段
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- CaiHuajiang 2010-01-15 09:45关注
[code="java"] //测试用HashMap
HashMap staff=new HashMap();
staff.put("001","true");
staff.put("002","false");
staff.put("003","false");import oracle.sql.*;//oracle提供的JDBC包
//写入oracle数据库
Connection con=dbConn.getConnection();
con.setAutoCommit(false);Statement st=con.createStatement();
//关键!!之所以用了这么长时间就是因为没有对BLOB字段初始化!
//插入新的数据时一定要使用EMPTY_BLOB()对BLOB字段初始化!!!
st.executeUpdate("UPDATE TABLE_NAME SET BLOB_VALUE=EMPTY_BLOB() WHERE ID=10");ResultSet rs = st.executeQuery(
"SELECT BLOB_VALUE " +
"FROM TABLE_NAME " +
"WHERE id = 10 FOR UPDATE"
);
rs.next();BLOB myBlob =(BLOB) rs.getObject("BLOB_VALUE"); ObjectOutputStream oos=new ObjectOutputStream(myBlob.getBinaryOutputStream()); oos.writeObject(staff); oos.flush(); st.execute("commit"); ……
//从oracle数据库中读出
Connection con=dbConn.getConnection();
Statement st=con.createStatement();
ResultSet rs2 = st.executeQuery(
"SELECT BLOB_VALUE " +
"FROM TABLE_NAME " +
"WHERE id = 10"
);
rs2.next();BLOB blob =(BLOB) rs.getObject("BLOB_VALUE");
ObjectInputStream ois=new ObjectInputStream(blob.getBinaryStream());
HashMap h1=(HashMap) ois.readObject();
String s1=(String) h1.get("001");system.out.println(s1);//打印出“true”
ois.close();[/code]
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报