Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

Java+Mysql5.0について

JDKはVer6u13
JREはVer5u16
IDEはNetbeans6.5.1
------
MySQLにて、auto_incrementのついている列"member_id"があります。
そこに、NetbeansよりSQL文を発行して最後に挿入したid+1の値をJavaのTextFieldに出力させたいと思っています。
現状として
---
public void nextID(){
        try{
                    //ステートメントの生成
                    stmt = con.createStatement();
                    //SQL文
                    sqlStr = "insert into t_member (member_id) values (null)";
                    //SQL文実行
                    stmt.executeUpdate(sqlStr);
                    //SQL文
                    sqlStr = "SELECT LAST_INSERT_ID() from t_member";
                    //SQL文実行
                    rs = stmt.executeQuery(sqlStr);
                    
                    jTextField1.setText("" + rs);

        }
        catch(Exception ex){
            System.out.println("Error: " + ex.toString()  + ex.getMessage());
        }
---

とやってみたものの、
com.mysql.jdbc.JDBC4ResultSet@1503a3
と表示され、@以降の数字(というか16進数?)が変化するだけとなってます。

これを、先ほど言った様に、auto_incrementのついた列idの最後に入っている値+1として出力したいのです。
申し訳ありませんが、手解きお願いいたします。




#同じような質問を
http://q.hatena.ne.jp/1190045511にて発見しました。
ですが、当方の現在の開発しているものはスタンドアロンなので、複数人アクセスすることはありません。

お手数ですが、宜しくお願いいたします。

5

回答

7412

閲覧

5件の回答

評価

0

どこから持ってきたサンプルを使ってるのか知らないけど、
ResultSetを取ってきて、そこで終わりじゃないでしょ。
続きがあるはず。
あるいは、ResultSetがなんなのか、勉強なり確認なりしましょう。

評価

0

私は初心者に近いので、
回答が見当違いでしたらすいません。

SQLのSELECT文は一度に複数の行を返し
ResultSetというオブジェクトで受け止めます。

ですので、ResultSetそのものを表示させても
「com.mysql.jdbc.JDBC4ResultSet@1503a3」
のようなものが表示されるだけです。

今回取得している物の型がわかりませんが、
Stringなら
rs.getString(1);
Floatなら
rs.getFloat(1);

のようにすると、取得したパラメタを見ることができます。

ちなみに、SELECTで複数の項目を指定した場合は
(SELECT A, B FROM TABLEのように)
Aはrs.getString(1);
Bはrs.getString(2);
で取得できます。

評価

0

不良社員さん>サンプルではないですが、ナントカ頑張ってみます。
有難うございます。

みゆさん>なるほど・・。
項目数が入るのですね。
参考になりました。
有難うございました。

評価

0

>2009-04-28 12:21
>項目数が入る
ちゃうねん。まったくもってちやうねん。
まずはデータベースとの連携を勉強しなおすべき。
ResultSetとは何か。
Queryとは何か。
そこがわかってないと絶対また同じ質問をしにやってくる。
それはまったく持って無意味な労力だ。

評価

0

>サンプルではないですが、

じゃあ、なにを頼りに勉強してるの?
APIドキュメントだけ、ってんならそれはそれで凄まじいが。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。