java oracle12c blob_java将图片base64编码后的编码存入ORACLE数据库的BLOB类型字段中
数据库连接工具类:
`
// class MyConnection
// 创建4个常量(数据库连接地址,数据库驱动类地址,数据库登录权限名,登录密码)
private static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
private static final String URL = "jdbc:oracle:thin:[@127.0.0.1](https://my.oschina.net/u/567043):1521:xe";
private static final String UNAME = "nct";
private static final String UPWD = "123456";
public static Connection getORACLEConnection() {
Connection conn = null;
try {
Class.forName(DRIVER);
conn = DriverManager.getConnection(URL, UNAME, UPWD);
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
`
public static void colseAll(ResultSet rs, PreparedStatement pstmt, Statement stmt, Connection conn) {
if (null != rs) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (null != pstmt) {
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (null != stmt) {
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (null != conn) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}`
DEMO
`
public static void insertImg() {
Connection conn = MyConnection.getORACLEConnection();
String sql = "INSERT INTO T_IMG(ID,IMG) VALUES('123461',empty_blob())";
String sql2 = "SELECT ID,IMG FROM T_IMG WHERE ID = '123461' FOR UPDATE";
String sql3 = "UPDATE T_IMG SET IMG = ? WHERE ID = '123461'";
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn.setAutoCommit(false);
ps = conn.prepareStatement(sql);
int b = ps.executeUpdate();
if (b>0) {
rs = ps.executeQuery(sql2);
while(rs.next()) {
// 得到java.sql.Blob对象后强制转换为oracle.sql.BLOB
oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("IMG");
byte [] result = base64ToByte();
blob.setBytes(1,result);
ps = conn.prepareStatement(sql3);
ps.setBlob(1, blob);
int c = ps.executeUpdate();
if (c>0) {
System.out.println("执行成功");
}else {
System.out.println("执行失败");
}
}
}
conn.commit();
conn.setAutoCommit(true);
} catch (SQLException e) {
e.printStackTrace();
System.out.println("数据插入失败");
}finally {
MyConnection.colseAll(rs, ps, null, conn);
}
}
/**
* base64转blob
* [@param](https://my.oschina.net/u/2303379) str
* [@return](https://my.oschina.net/u/556800)
*/
public static byte[] base64ToByte() {
String str = "base64字符串";
BASE64Decoder decode = new BASE64Decoder();
byte[] b = null;
try {
b = decode.decodeBuffer(str);
} catch (IOException e) {
e.printStackTrace();
}
return b;
} `
T_IMG表结构
CREATE TABLE T_IMG ( ID VARCHAR2(32) NOT NULL, IMG BLOB, PRIMARY KEY (ID) ); COMMENT ON COLUMN T_IMG.ID IS '主键UUID'; COMMENT ON COLUMN T_IMG.IMG IS '头像';
jar包
ojdbc6-11.2.0.4.0-atlassian-hosted.jar
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)