MySql的blob和中文编码的冲突问题
挺困惑,我在应用mysql的blob字段存储图片时,由于该表中有存储中文注释的字段需和blob字段在同一表内,现在的问题是在写jdbc连接时,如果应用
String url = "jdbc:mysql://localhost/jspdemo?user=root&password=&useUnicode=true&characterEncoding=gbk";
时blob数据会存储不上,而要使用
String url = "jdbc:mysql://localhost/jspdemo?user=root&password=";
才能把blob图片存储成功,但是这是存储中文字段又会出现乱码问题。
各位好友,有否两全其美的办法解决二者的冲突,谢谢!
完整代码:
Connection con;
try{
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url = "jdbc:mysql://localhost/jspdemo?user=root&password=&useUnicode=true&characterEncoding=gbk";
con=DriverManager.getConnection(url);
Statement stmt = con.createStatement();
stmt.close();
PreparedStatement pstmt = null;
String sql = "";
File file = new File("c:\\blog.gif");
FileInputStream photoStream = new FileInputStream(file);
sql = "INSERT INTO blobdemo(id,file) VALUES (?,?)";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, "中文");
pstmt.setBinaryStream(1, photoStream, (int) file.length());
pstmt.executeUpdate();
pstmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
throw e;
}