我在mysql表中有一个字段,我将数据类型设置为'BLOB'。如何在我的java代码中将jpg文件插入到我的表中?意思是我如何读取jpg文件并在插入表达式中使用它? 我使用以下说明来阅读jpg文件:
File fi = new File("C:\\Users\\Kamyar\\Desktop\\i.jpg");
byte[] fileContent = Files.readAllBytes(fi.toPath());
并使用以下代码插入表中:
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/Server1",
"root", "admin");
Statement stmt=con.createStatement();
stmt.execute("Insert into users values( 'Salar5' , '1234' , 'describe'
,'" + **here** + "' , 88 , 99 , '1/1/93' );");
con.close();
我不知道如何在insert表达式中使用该文件。 感谢...
答案 0 :(得分:2)
我通常使用以下简单技术来实现它,即
答案 1 :(得分:0)
您可以做的是创建PreparedStatement而不是Statement对象,并且可以根据需要将所需的值绑定到语句。
对于blob,您可以使用的一件事是二进制流。
PreparedStatement ps = con.PrepareStatement("INSERT STATEMENT");
InputStream is = new FileInputStream(fi);
ps.setBinaryStream(n, is, fileContent.length);
其中n是预准备语句中的索引,如果绑定每个值,则为3。