如何在postgresql中插入iod照片?!我在服务器中有这些照片,我无法在PostgreSQL DB中使用 lo_import 插入它。
private static void insertPhoto(String nom,int pos) throws SQLException {
Statement stmt = connection.createStatement();
String path = "http://10.0.0.84/stade_photo/"+pos+".jpg";
System.out.println(path);
String sql = "UPDATE stadephenologique SET photo= "
+ "lo_import('"+path+"') WHERE nom='"+nom.replaceAll("'", "''")+"'";
stmt.executeUpdate(sql);
stmt.close();
connection.commit();
System.out.println(nom );
}
这是例外:
成功打开数据库 http://10.0.0.84/stade_photo/1.jpg 线程"主" org.postgresql.util.psqlexception中的异常:错误:无法打开服务器文件" http://10.0.0.84/stade_photo/1.jpg":没有这样的文件或目录
我已将照片的类型更改为bytea,并且使用此功能对我有用
private static void insertPhoto(String nom,int pos) throws SQLException, FileNotFoundException {
String path = "stade_photo/"+pos+".jpg";
System.out.println(path+" nom="+nom);
PreparedStatement pstmt = connection.prepareStatement("UPDATE stadephenologique SET photo = ? WHERE nom = ?");
File file = new File(path);
FileInputStream in = new FileInputStream(file);
try
{
pstmt.setBinaryStream(1, in, (int) file.length());
pstmt.setString(2, nom);
pstmt.executeUpdate();
connection.commit();
}
catch (Exception ee)
{
System.out.println("Exception is:- " + ee);
}
}