以下は私の PrepareStatement コードです。正しい SQL クエリを生成しません。また、最初の println ステートメントを超えることはありません。また、クエリで ** NOT SPECIFIED ** と表示されます (以下を参照してください)。
どうすればこれを修正できますか?
ps1 = con.prepareStatement(
"select stuId, name, relationsName, houseAddress, houseNumber from temp where "
+ " stuId like '?%' and "
+ " sex = '?' and "
+ " name like '?%' and "
+ " age BETWEEN ? and ? and "
+ " relationsName like '?%' "
+ " order by name asc limit 0, 150000 "
);
System.out.println("ps1 Before : " + ps1);
出力:
ps1 前: com.mysql.jdbc.JDBC4PreparedStatement@14d55de: stuId、名前、関係名、houseAddress、houseNumber を temp から選択します。and name like '?%' and age BETWEEN ** NOT SPECIFIED ** and ** NOT SPECIFIED ** and RelationsName like '?%' order by name asc limit 0, 150000
この点を超えることはありません。また、クエリでNOT SPECIFIEDと表示されます (最後まで参照してください)。
洞察をお願いします。
ps1.setString(1, stuId);
ps1.setString(2, gender);
ps1.setString(3, name);
ps1.setInt(4, startAge);
ps1.setInt(5, endAge);
ps1.setString(6, relationsName);
System.out.println("ps1 After : " + ps1);
rs = ps1.executeQuery();