您的位置:首页 > 数据库 > Oracle

Oracle jdbc 插入 clob blob

2016-01-07 15:24 330 查看
Oracle 使用 clob 与 blob 插入一些比较庞大的文本或者文件,JDBC 插入时 也比较简单

表结构

CREATE TABLE test_info (
user_id int NOT NULL,
user_name varchar(64) NULL,
email varchar(32) NULL,
contentText blob not null
);

java 代码

/**
* 获得数据库连接
* @param url
* @param username
* @param passwd
* @return
*/
public static Connection createConnection(String url, String username, String passwd) {
Connection conn = null;

try {
DriverManager.registerDriver(new OracleDriver());

conn = DriverManager.getConnection(url, username, passwd);

} catch (Exception e) {
e.printStackTrace();
}
return conn;
}

/**
* 写入 blob
*/
public static void writeBLOB() {
/** inFile path **/
String inPath = "D:/testFile/xstream/test01.jpg";

/** ========== out ========== **/
String xsoutUrl = ConfigInfo.xsoutUrl;
String xsoutUsername = "testStreamUser";
String xsoutPasswd = "admin";

InputStream input = null;

Connection conn = null;
PreparedStatement pst = null;

int userId = 1;
String sqlInsert = "insert into test_info values (" + userId + ", 2, 3, ?) ";

try {
//输出流
input = new FileInputStream(inPath);

conn = createConnection(xsoutUrl, xsoutUsername, xsoutPasswd);
conn.setAutoCommit(false);

pst = conn.prepareStatement(sqlInsert);

pst.setBinaryStream(1, input);

//插入数据
pst.executeUpdate();

//commit
pst.execute("COMMIT");

} catch (Exception e) {
e.printStackTrace();
}finally{
try {
input.close();

pst.close();
conn.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle clob blob