Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 >  掲示板 >  掲示板(ResultSetのrelativeについて)
閲覧数:725
掲示板(ResultSetのrelativeについて)
名前
匿名
題名 ResultSetのrelativeについて
質問内容

質問を評価する
(0ポイント)
質問です
SQLでデータベースを作成し↓

for(;i<10; i++){
                db.updateExec("insert into TESTTABLE1(TESTNO,NAME,KANA) values("+i+",'山田" +i+ "', 'スギタ" +i+ "')");


呼出↓

String[][]hai3=db.selectExec("SELECT * FROM TESTTABLE1;",6,10);
            
            for(int k=0 ; k <hai2[0].length ; k++)
            {
                System.out.print(hai3[0][k]+"     ");
                System.out.print(hai3[1][k]+"     ");
                System.out.println(hai3[2][k]);
            }
        
            System.out.println("6-10列まで表示");
        


メソッド

Statement smt;
Connection con;
ResultSet aa;

public String[][] selectExec(String sql, int fromIdx,int toIdx) throws SQLException{
        
        smt = con.createStatement();
        
        //ステートメントオブジェクト作成 SQL文を送るために作成
            
        aa=smt.executeQuery(sql);
        //SQLから要素取得
            
        ArrayList<String> TESTNO = new ArrayList<String>();
        //TESTNO用ののArrayList作成
        ArrayList<String> NAME = new ArrayList<String>();
        //AME用のArrayList作成
        ArrayList<String> KANA = new ArrayList<String>();
        //KANA用のArrayList作成
        aa.relative(fromIdx-1);
        
        while(fromIdx<=toIdx){    
            aa.next();
            TESTNO.add(aa.getString("TESTNO"));//TESTNOを格納
            NAME.add(aa.getString("NAME"));//NAMEを格納
            KANA.add(aa.getString("KANA"));//KANAを格納
            fromIdx++;
        }
        String[][]all = new String[3][TESTNO.size()];
        all[0] = (String[])TESTNO.toArray(new String[0]);//配列TSETNOに格納
        all[1] = (String[])NAME.toArray(new String[0]);//配列NAMEに格納
        all[2] = (String[])KANA.toArray(new String[0]);//配列KANAに格納
        
        
        return  all;
        }

といった形で作成しました
わかりずらくてすいません。
それでメソッドの中の
aa.relative(fromIdx-1);
のところで -1にしてあげないと
エラーが発生します
aa.relative(fromIdx);
だとなにがわるいんでしょうか?
relativeはカーソルを動かすもの
ぐらいの認識しかありません・・・・
わかりずらいですが、お願いします



質問日時 2013-03-26 16:20:00
名前
匿名
回答内容

回答を評価する
(0ポイント)
認識しかありませんって。。。
エラーになったときのfromIdxの値は?
そこに記述してる理由は何?
自分で何のために記述してるのか理解できているのかな?
回答日時 2013-03-26 17:50:12
名前
匿名
回答内容

回答を評価する
(0ポイント)
質問者です

エラーになったときの値は6だと思うんですが・・・
記述は
6−10行目の要素を取得するためにです。
わからなくてすいません
回答日時 2013-03-26 17:59:37
名前
匿名
回答内容

回答を評価する
(0ポイント)
ResultSet.next()がカーソルを1個進めるからでしょう。
回答日時 2013-03-26 20:42:09
名前
匿名
回答内容

回答を評価する
(10ポイント)
>エラーになったときの値は6だと思うんですが・・・
System.out.println()すりゃ判るようなことを、「思う」で済ま
せちゃだめだよ。
回答日時 2013-03-26 21:59:34
名前
匿名
回答内容

回答を評価する
(0ポイント)
質問者です

System.out.println()すると6でした。
 aa.relative(fromIdx-1);で5になって
5〜10の要素を表示するのではなくて
なぜエラーになるのでしょうか。
なんどもすいませんがよろしくお願いいたします。
回答日時 2013-03-27 09:33:24
名前
匿名
回答内容

回答を評価する
(0ポイント)
質問者です・・・
純粋にデータの数がたりなかったのではと・・・
何度もすいません
冷静になりました
回答日時 2013-03-27 09:47:01
名前
匿名
回答内容

回答を評価する
(0ポイント)
toIdxの値がまずかったということかな?

while文のなかでも、System.out.printlnでfromIdxとか、
追加したいデータの中身とかをみていくと良いかもです
ね。
回答日時 2013-03-27 11:28:32
名前
匿名
回答内容

回答を評価する
(0ポイント)
質問者です
ひとつひとつ確認しるのが大事ですね!!

みなさんお手数おかけしました

ありがとうございます!
回答日時 2013-03-27 13:29:44

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



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道