-1

このプログラムでは、データベース内のフィールドごとに異なる配列変数を使用しました。データベースでは、すべてのフィールドが同じデータ型を持ち、すべてのフィールド値を 1 つの配列変数に格納したいと考えています。

import java.sql.*;
class ja1
{
    public static void main(String ar[])
    {
        try
        {
            int x,i,j,k,l;
            int a[]=new int[30];        
            int b[]=new int[30];        
            int c[]=new int[30];        
            int d[]=new int[30];        
            int count[]=new int[10];
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection c1=DriverManager.getConnection("Jdbc:Odbc:ds");
            Statement s=c1.createStatement();
            ResultSet r=s.executeQuery("select * from pro");
            i=0;
            j=0;
            k=0;
            l=0;
            x=0;
            while(r.next())
            {
                a[i]=r.getInt(2);
                i++;
                b[j]=r.getInt(3);
                j++;
                c[k]=r.getInt(4);
                k++;
                d[l]=r.getInt(5);               
                l++;
            }
            for(i=0;i<6;i++)
                System.out.println(""+a[i]);

            for(j=0;j<6;j++)
                System.out.println(""+b[j]);
            System.out.print("\n\n");
            for(k=0;k<6;k++)
                System.out.println(""+c[k]);
            System.out.print("\n\n");
            for(l=0;l<6;l++)
                System.out.println(""+d[l]);


        }
        catch(Exception e)
        {
            System.out.print(e);
        }
    }
}
4

2 に答える 2

0

はい、いくつかの方法で可能です:

1) 1 つの配列のみを使用する場合は、サイズが 120 (4X30) の配列を作成し、4 カウンターを使用してデータを範囲内に配置してください。つまり、最初の変数はインデックス 0 から 29、2 番目の変数は 30 から 69 などになります。配列を 30 の完全なサイズでバインドしているため、配列の正確なサイズがわからない場合、これは適切ではありません。

2) aPOJOを作成し、それに 4 つの配列を含めることができますList。配列の代わりに a を使用できますが、実装によって異なります。したがって、クラスを作成し、それに 4 つの配列を配置し、適切な変数名を付けて、getter/setter メソッドを介してアクセスします。わかりやすいコードになります

3) Map<Integer,Integer[]>orMap<Integer,List<Integer>>を使用して、キーと値のペアを保持する単一の変数/参照を持つことができます。

それはすべてあなた次第です。わからない場合は、なぜ配列を使用しているのですか?Collection

于 2012-06-19T02:57:52.580 に答える
0

レコードの POJO を定義し、汎用リストを使用してレコードを追加および反復します。

これを試して:

class RecordData
{
    public int First; 
    public int Second; 
    public int Third; 
    public int Fourth; 
}

class ja1
{
    public static void main(String ar[])
    {
        try
        {
           List<RecordData> list = new ArrayList<RecordData>;

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection c1=DriverManager.getConnection("Jdbc:Odbc:ds");
            Statement s=c1.createStatement();
            ResultSet r=s.executeQuery("select * from pro");
            while(r.next())
            {
                            RecordData data = new RecordData();
                            data.First = r.getInt(2);
                            data.Second = r.getInt(3);
                            data.Third = r.getInt(4);
                            data.Fourth = r.getInt(5);
                            list.add(data);
            }
                        for(RecordData data : list) {
                                System.out.println(data.First);
                                System.out.println(data.Second);
                                System.out.println(data.Third);
                                System.out.println(data.Fourth);
                        }
        }
        catch(Exception e)
        {
            System.out.print(e);
        }
    }
}
于 2012-06-19T02:58:14.540 に答える