3

私はミニアプリケーションに取り組んでおり、USER_ID を取得してテーブルに保存する必要があります。

それはこのように動作します; ユーザーの電子メール アドレスを入力すると、ステートメントで USER_ID を取得してテーブルに保存する必要があります。

SQL Like ステートメントに問題があります。メールアドレスの最初の部分だけを挿入する必要があるだけです。たとえば、「thomas@yahoo.com」です。「トーマス」のみを挿入します。残りの部分ではありません。

Java コンソールに表示されるステートメントと結果のメッセージのサンプルを次に示します。

コード:

String ea = txt_email.getText();
String lid = "SELECT USER_ID FROM user WHERE email_address Like  '"+ea+"%' ";

エラーメッセージ:

エラー: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] クエリ式の構文エラー (演算子がありません) ''SELECT USER_ID FROM user WHERE email_address Like 'thomas%''.

4

2 に答える 2

3

*の代わりに使ってみてください%。MS ACCESS はステートメント*の代わりに%for を使用します。LIKE

お役に立てれば

于 2012-11-05T05:54:08.833 に答える
0

PreparedStatementを使用する

PreparedStatement _query = con.prepareStatement(
        "SELECT USER_ID FROM user WHERE email_address Like ?");
_query.setString(1, ea + "*");  // <== use *
_query.executeQuery();

conアクティブな接続オブジェクトはどこにありますか。

使用する利点の1つPreparedStatementは、SQL Injection

于 2012-11-05T05:53:15.980 に答える