Connection starting =null;
PreparedStatement statement =null;
try {
starting = Forconnection.starting();
starting.setAutoCommit(false); //优化1:设置非自动提交功能
String sql="insert into graph(fisrt) values(?) ";
statement = starting.prepareStatement(sql);//优化2:预编译语句,使得后期只需填入数据而不需要再次传入sql语句
for (int i = 0; i <=10 ; i++) {
statement.setString(1, "name_"+i);
statement.addBatch();//3
if (i%5==0){
statement.executeBatch();// 优化3:攒一波再提交
statement.clearBatch();
}
}
starting.commit();//3
} catch (Exception e) {
e.printStackTrace();
} finally {
Forconnection.closeAll(statement, starting);
}
// -----------------------得到字段包括Blob字段时
public customers QueryBlob() {
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
FileOutputStream outputStream = null;
InputStream stream= null;
try {
connection = Forconnection.starting();
String sql="select id,name,email,birth,photo from customers where id=?";
statement = connection.prepareStatement(sql);
statement.setInt(1, 16);
resultSet = statement.executeQuery();
outputStream = new FileOutputStream("Zhuyin.jpg");
stream = null;
if (resultSet.next())
{
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String email = resultSet.getString("email");
Date birth = resultSet.getDate("birth");
Blob photo = resultSet.getBlob("photo");
stream = photo.getBinaryStream();
customers cust = new customers(id, name, email, birth);
byte[] bytes = new byte[1024];
int len;
while ((len=stream.read(bytes))!=-1)
{
outputStream.write(bytes, 0, len);
}
return cust;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (stream!=null)
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (outputStream!=null)
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
Forconnection.closeThree(statement, connection, resultSet);
}
return null;
}
JDBC-批量插入数据的优化 and Blob字段的获得方法
最新推荐文章于 2023-12-19 17:46:21 发布