import java.io.Serializable
public class MyObject implements Serializable {
private static final long serialVersionUID = 1L
private int i
public int getI() {
return i
}
public void setI(int i) {
this.i = i
}
}
//测试 的方法如下
import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
import java.io.IOException
import java.io.ObjectInputStream
import java.io.ObjectOutputStream
import java.sql.Connection
import java.sql.DriverManager
import java.sql.PreparedStatement
import java.sql.ResultSet
public class test {
public static void main(String[] args) throws IOException,
ClassNotFoundException {
MyObject obj = new MyObject()
obj.setI(4567)
write(Object2Bytes(obj))
// read()
}
public static void write(byte[] b) throws ClassNotFoundException {
System.out.println(b.length)
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
try {
Connection con = DriverManager.getConnection("jdbc:odbc:temp")
String sql = "insert into tab values(?)"
PreparedStatement pstmt = con.prepareStatement(sql)
pstmt.setBytes(1, b)
pstmt.execute()
pstmt.close()
con.close()
} catch (Exception e) {
e.printStackTrace()
}
}
public static void read() throws ClassNotFoundException {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
try {
Connection con = DriverManager.getConnection("jdbc:odbc:temp")
String sql = "select * from tab"
PreparedStatement pstmt = con.prepareStatement(sql)
ResultSet res = pstmt.executeQuery()
while (res != null &&res.next()) {
byte[] b = res.getBytes("key")
System.out.println(b.length)
MyObject obj = (MyObject) Bytes2Object(b)
System.out.println(obj.getI())
}
pstmt.close()
con.close()
} catch (Exception e) {
e.printStackTrace()
}
}
public static byte[] Object2Bytes(Object obj) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream()
ObjectOutputStream oos = new ObjectOutputStream(baos)
oos.writeObject(obj)
return baos.toByteArray()
}
// 将字节数组转换成为对象
public static Object Bytes2Object(byte[] b) throws IOException,
ClassNotFoundException {
ByteArrayInputStream bais = new ByteArrayInputStream(b)
ObjectInputStream ois = new ObjectInputStream(bais)
Object obj = ois.readObject()
return obj
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)