1

私は Java に 3 つのコンボボックスを持っています。

'departurecities={city1,city2,city3} destinationcities={city1,city2,city3} date={1,2,3,4,5,6...}

どのユーザーがバスデートするかわからないため、日付の変数を定義したいので、SQLクエリ用の変数が必要です。

私はそのようにクエリしたい:

sql=select busid from buses where dep='city1'and des='city2' and datebus=(????variable????);

どのように定義できますか???

私を助けてください ..

前もって感謝します

4

3 に答える 3

1

PreparedStatement

変数を SQL ステートメントに渡したい場合は、PreparedStatement. Oracle チュートリアルを参照してください。

setInt整数setStringを渡す、文字列などを 渡すために使用できます。ここに API があります。

以下に例を示します。

String result = null;
String query = "select busid from buses where dep='city1'and des='city2' and datebus=?";
try {
    PreparedStatement preps = con.prepareStatement(query);
    preps.setInt(1, Integer.parseInt((String) date.getSelectedItem()));
    preps.execute();
    rs = preps.getResultSet();
    if (rs.next()) {
        result = rs.getString(...);
    }
} catch (SQLException ex) {
    System.out.println(ex.getMessage());
}

データベーステーブルでdatebusが整数として宣言されていると仮定します。

于 2013-01-01T00:42:06.177 に答える
0

SQL では、 to_date()関数を使用して、文字列または文字の値を SQL の内部日付形式に変換できます。

SQL の例:

to_date('29-Oct-09', 'DD-Mon-YY')
to_date('10/29/09', 'MM/DD/YY')
to_date('120109', 'MMDDYY')

したがって、Java から SQL コマンドを作成する場合は、次のようにします。

String date = "12/31/2012";
String dep = "city1";
String des = "city2";
String SQL = "INSERT INTO buses VALUES(" + dep + "," + des + ",to_date(" + date + ",'MM/DD/YYYY'));";
于 2013-01-01T01:53:41.890 に答える
0

「2012-12-31 12:00 am」のような定数に文字列型を使用するか、Java で日/日付の違いを操作する場合はDateまたはGregorianCalendarを使用できます。

于 2013-01-01T00:39:35.840 に答える