1 Mysql表结构

2 写入数据到mysql中的photo的mediumblob字段中
(注意:由于是演示代码,里面的异常处理,和关闭资源都做了最简单的方式,开发中需要进行相应处理。)
(1)连接数据库代码
public static Connection getConnection() throws Exception {
Connection conn = null;
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");
Properties properties = new Properties();
properties.load(is);
String user = properties.getProperty("user");
String password = properties.getProperty("password");
String url = properties.getProperty("url");
String driver = properties.getProperty("driverClass");
Class.forName(driver);
conn= DriverManager.getConnection(url,user,password);
return conn;
}
由于是读取的属性文件的配置信息

(2)这个测试方法可以通过main()主方法也可以通过junit进行测试运行
把资源文件写入到数据库Blob中
public void test8()throws Exception{//写入数据,包含Blob类型
String sql="insert into customer(cus_name,cus_email,cus_birth,photo)values(?,?,?,?)";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date=sdf.parse("2019-12-22");
Connection conn=JDBCUtils.getConnection();
PreparedStatement pstm=conn.prepareStatement(sql);
pstm.setObject(1,"zhang");
pstm.setObject(2,"aassdd@qq.com");
pstm.setDate(3,new java.sql.Date(date.getTime()));
InputStream is=new FileInputStream("2019年12月17日.jpg");
pstm.setBlob(4,is);
pstm.executeUpdate();
}
写入到数据库中了


下面这个是从数据库Blob中读取二进制文件到本地
public void test9() throws Exception {//查询数据,包括Blob二进制。
String sql = "select cus_id,cus_name,cus_email,cus_birth,photo from customer where cus_id=?";
Connection conn = JDBCUtils.getConnection();
PreparedStatement pstm = conn.prepareStatement(sql);
pstm.setInt(1, 5);
InputStream fis = null;
ResultSet rs = pstm.executeQuery();
if (rs.next()) {
System.out.print(rs.getInt("cus_id") + "\t");
System.out.print(rs.getString("cus_name") + "\t");
System.out.print(rs.getString("cus_email") + "\t");
Blob b = rs.getBlob("photo");
fis = b.getBinaryStream();
}
FileOutputStream fos = new FileOutputStream("zzhangg.jpg");
byte[] buff = new byte[1024];
int len;
while ((len = fis.read(buff)) != -1) {
fos.write(buff, 0, len);
}
fos.flush();
fos.close();
}
相信懂得一些IO和JDBC操作的猿猴,使用以上代码不会有任何问题的。



545

被折叠的 条评论
为什么被折叠?



