ユーザーが入力した値を使用してデータベースからデータを取得したいとします。値はuidという名前の配列に格納されます。コードはコンパイルされていますが、結果は印刷されません。確かに準備された文を使用したSELECTクエリとユーザーから取得した値の設定
public static void main(String[] args) {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs=null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
String sql1="SELECT * FROM user_ratings WHERE user_id = ?";
stmt = conn.prepareStatement(sql1);
for (int i:uid)
{
stmt.clearParameters();
stmt.setInt(1,uid[i]);
rs=stmt.executeQuery();
while(rs.next())
{
int id = rs.getInt("user_id");
int mid = rs.getInt("movie_id");
int first = rs.getInt("movie_rating");
int second = rs.getInt("acting");
int third = rs.getInt("visuals");
System.out.print("User ID: " +id);
System.out.print(", Movie ID: " +mid);
System.out.print(", First: " +first);
System.out.println(", Second: " +second);
System.out.println(", Third:" +third);
}
}
}
あなたは本当にuidに値がありますか? uidの長さを確認してください。 – antorqs
コードをデバッグしましたか?クエリ結果はありますか? – Breeze
uidの値は次のとおりです。 uid = {3,4,12,13,14,17,19,20,21,24}; – Aparna