ection.prepareStatement("insert into book values(1001,'海贼王','尾田一郎')");
stetm2.execute();
//提交
connection.commit();
} catch (SQLException e) {
try {
//失败后自动回滚
connection.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
}
CLOB操作:
用于存储大量的文本数据,大字段的操作常常以流的方式处理。而非一般的字段一次读取即可。
//代码实现:
public class ReadAndWriteClob {
public static void main(String[] args) {
//获取数据库连接
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/library",
"root",
"123456");
//clob字段插入
//表:user_info
//字段:name varchar , introduce clob
String sql = "insert into user_info values(,)";
PreparedStatement prepared1 = conn.prepareStatement(sql);
//插入数据
prepared1.setObject(1, "user1");
//设置插入文本对象,第二个参数是一个输入流,直接读取文件
prepared1.setClob(2,new BufferedReader(
new InputStreamReader(
new FileInputStream("src/a.txt"))));
prepared1.execute();
//clob字段读取
sql="select * from user_info";
PreparedStatement prepared2 =conn.prepareStatement(sql);
ResultSet resultSet = prepared2.executeQuery();
while(resultSet.next()){
Clob introduce = resultSet.getClob("introduce");
Reader characterStream = introduce.getCharacterStream();
int temp=0;
while((temp=characterStream.read())!=-1){
System.out.print((char)temp);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
BLOB操作:
用于存储大量的二进制数据,二进制可以存入任何类型的文件(音频、视频等等..)。
//代码实现
public class ReadAndWriteClob {
public static void main(String[] args) {
//获取数据库连接
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/library",
"root",
"123456");
//clob字段插入
//表:user_info
//字段:name varchar , headImg blob
String sql = "insert into user_info values(,)";
PreparedStatement prepared1 = conn.prepareStatement(sql);
//插入数据
prepared1.setObject(1, "user1");
//设置插入图片对象,第二个参数是一个基本输入流
prepared1.setBlob(2,new FileInputStream("src/a.jpg"));
prepared1.execute();
//clob字段读取
sql="select * from user_info";
PreparedStatement prepared2 =conn.prepareStatement(sql);
ResultSet resultSet = prepared2.executeQuery();
while(resultSet.next()){
Blob headImg = resultSet.getBlob("headImg");
//获取的是基本的流,
InputStream binaryStream = headImg.getBinaryStream();
int len=0;
byte flush []=new byte [1025];
OutputStream os=new FileOutputStream(new File("d:\\c.jpg"));
while((len=binaryStream.read(flush))!=-1){
os.write(flush,0,len);
os.flush();
}
os.close();
binaryStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
对jdbc的封装
这里需要加载配置文件:
代码实现:
public class jdbcUtils {
private static Properties pro;
static {
try {
pro = new Properties();
InputStream in = jdbcUtils.class.getClassLoader().getResourceAsStream("dbproperties.properties");
pro.load(in);
Class.forName(pro.getProperty("driver"));
} catch (Exception e) {
e.printStackTrace();
}
}
//建立与