0

Java コードを使用して、Java の既存のテーブルに新しい行を追加しようとしています。テーブルは、Access .mdb データベース ファイルにあります。.mdb の作成に使用したコードを含むコード全体を次に示します。

注: Jackcess と Java メソッドでテーブルに行を追加できるようにしたいと考えています。

import com.healthmarketscience.jackcess.*;
import org.apache.commons.logging.*;
import org.apache.commons.lang.*;


import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Types;
import java.util.List;
import java.util.Map;

public class DataManagement {
    static Database db;
    static Table Users;

    public static void createNewDataBase(){
        try{
            db = Database.create(new File("test.mdb"));
            Users = new TableBuilder("Users")
                    .addColumn(new ColumnBuilder("User")
                    .setSQLType(Types.VARCHAR)
                    .toColumn())
                    .addColumn(new ColumnBuilder("Pass")
                    .setSQLType(Types.VARCHAR)
                    .toColumn())
                    .addColumn(new ColumnBuilder("Enabled")
                    .setSQLType(Types.BOOLEAN)
                    .toColumn())
                    .toTable(db);


        }
        catch(Exception ex){
        }
    }

    public static void readDatabase(){
        try{
            System.out.println(Database.open(new File(test.mdb"))
                    .getTable("Users").display());
        }
        catch(Exception e){}
    }

    public static void addUser(String name, String pass){
        try{
            Users.addRow(name, pass, true);
        }
        catch(Exception e){

        }

    }

    // This main is present for testing purposes only
    public static void main(String args[]){
        //createNewDataBase();
        //addUser("Max", "John");
        //readDatabase();

    }
}
4

2 に答える 2

1

あなたが提供したコードは機能します。出力を取得します

User    Pass    Enabled
Max     John    true

あなたのreadDatabase方法では、バランスのとれた二重引用符のペアがないことに注意してください。インポートしたライブラリとして jackcess 1.2.8、commons-lang 2.6、および commons-logger 1.1 を使用し、Java 1.6 で実行しています。

あなたが書いたコードはこれらの例と非常に一致しているので、互換性やファイル/ディレクトリへのアクセスの問題を除けば、あなたが行ったことに問題はないと思います. それでも問題が解決しない場合は、例外ブロックにデータを入力して、何が起きているかを確認してください。

于 2012-10-11T19:00:09.660 に答える