2

プログラムを複数回実行できるようにしようとしています。つまり、プログラムに何かを入力してからシャットダウンした場合、バックアップを開始すると、MySQL の助けを借りてその情報がまだそこにあるということです。私は Java と MySQL にかなり慣れていませんが、これは非常に重要です。私のプログラムは完璧に動作しますが、MySQL に配列リストを保持させる方法がわかりません。必要なものがすべて揃ったデータベースがすでにセットアップされています。これはこれまでの私のMySQLブリッジです:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class SQL {
    Class.forName("com.mysql.jdbc.Driver");
    Connection con = DriverManager.getConnection("jdbc:mysql://instance23389.db.xeround.com:15296/Inventory","user","password");
    PreparedStatement Statement = con.prepareStatement("Select * from name");
    ResultSet result = Statement.executeQuery();
    {
        while(result.next())
        {

        }
    }
}

そしてこの行:

    Class.forName("com.mysql.jdbc.Driver");
throws "Syntax error on token ""com.mysql.jdbc.Driver"", delete this token"

ブリッジ用の正しいファイルを既にインポートしています。

次のコードも試しました。エラーなしで実行されますが、データベースから情報をインポートしていません。そこからどこへ行けばいいですか?

public static void main(String[] args) throws SQLException
    {
         Connection con = DriverManager.getConnection("jdbc:mysql://instance23389.db.xeround.com:15296/Inventory","user","password");
        PreparedStatement Statement = con.prepareStatement("Select * from inventory");
        ResultSet result = Statement.executeQuery();
        while(result.next()) {
            // do something with the row
        }



    @SuppressWarnings("resource")
    Scanner input = new Scanner(System.in);
    int x=0;
    int choice;
    do{
        do
        {
            System.out.println("Please select what you would like to do:\n1 = Add New\n2 = Update Inventory\n3 = Lookup Inventory\n4 = Make Changes\n5 = Totals");
            choice=input.nextInt();
            if(choice<1 || choice>5)
            {
                System.out.println("Please enter a number 1-5.");
            }
            else
            {

            }
        }while(choice<1 || choice>5);
        if(choice==1)
        {
            Product_Chart.newInv();
        }
        else if(choice==2)
        {
            Product_Chart.updateInv();
        }
        else if(choice==3)
        {

            Product_Chart.lookupInv();
        }
        else if(choice==4)
        {
            Product_Chart.MakeChanges();
        }
        else if(choice==5)
        {
            Product_Chart.Totals();// TODO does not call Product_Chart.Totals();
        }
        else
        {
            System.out.println("Error 101");
        }
    }while(x==0);
}
}
4

2 に答える 2

3

コードをメソッド内に配置する必要があります。これを試してから、クラスを「実行」してください。

public class SQL {

    public static void main(String[] args) throws SQLException {
        Connection con = DriverManager.getConnection("jdbc:mysql://instance23389.db.xeround.com:15296/Inventory","user","password");
        PreparedStatement Statement = con.prepareStatement("Select * from name");
        ResultSet result = Statement.executeQuery();
        while(result.next()) {
            // do something with the row
        }
    }
}

このようなメインメソッド(リターンタイプとパラメーターを使用)をコーディングするstaticと、クラスを「実行」できます。voidString[]

行に注意してください

Class.forName("com.mysql.jdbc.Driver");

完全に不要です。接続を開こうとすると、ドライバーがロードされます。

于 2012-08-05T19:10:44.990 に答える
3

この文:

Class.forName("com.mysql.jdbc.Driver");

クラスのトップレベルにあります - 通常、変数宣言、メソッド、またはコンストラクターがある場所です。静的初期化子に入れたい場合があります。

static {
    Class.forName(...);
}

...このステップはかなり長い間不要だと思っていましたが。(基本的に、ドライバーの検出プロセスは改善されています。)

MySQL で「ArrayList を保持」するようにするには、データと一致するようにデータベースの内容を挿入、更新、または削除する必要があります。単一の回答でカバーするにはトピックが広すぎますが、データを選択するだけでなく、データを変更する方法についてのチュートリアルを読む必要があります。

于 2012-08-05T19:06:16.257 に答える