我正在尝试将值动态传递给 PreparedStatement 并在 DB 中插入记录,如下所示,我能够做到这一点。
String fName="AA"; // this value changes
String lName="BB" //this value changes
String query="insert into person(first_name,last_name) values ('"+fName+"','"+lName+"')"
PreparedStatement ps= null;
ps== connection.prepareStatement(query);
ps.executeUpdate();
但是我有 byteArray[] ,我将其转换为 ByteArrayInputStream ..这个值我不能像 fName 和 lName 那样动态地传递给我的第三张柱照片,即 Blob。
但如果我喜欢
byte[] b =somebytesss...
ByteArrayInputStream bin=new ByteArrayInputStream(b);
String query="insert into person(first_name,last_name,photo) values (?,?,?)"
PreparedStatement ps= null;
ps.setString(1,"AA");
ps.setString(2,"BB");
ps.setBinaryStream(3,bin,bin.available());
ps== connection.prepareStatement(query);
ps.executeUpdate();
这也有效。
但我想避免这种手动设置值。我只想像我的第一个案例一样将动态查询传递给 bytearray[] 的preparestatement。
谁能让我知道我该怎么做?
谢谢。