以下のように動的に値を 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();
しかし、私は ByteArrayInputStream に変換した byteArray[] を持っています..この値は、blob である 3 番目の列の写真の fName や lName のように、上記のように動的に渡すことができません。
しかし、私が好きなら、
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 にも渡したいだけです。
誰でも私にこれを行う方法を教えてもらえますか?
ありがとう。