2

私はMS AccessとMySQLを使用しています。アクセスでこの単語を入力してください

  • کوردستان ی عیراق (ユニコードを使用したクルド語です)

私のコードは:

try{
      String path ="src\\Database.accdb";
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
      Connection c = DriverManager.getConnection(""
              + "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ="+path);
      Statement s = c.createStatement();
      ResultSet rs = s.executeQuery("select * from mytable");
      rs.next();
      jTextArea1.setText(rs.getString(1));

  }catch(Exception ex){
    JOptionPane.showMessageDialog(null, ex.getMessage());

  } 

アクセスすると、出力は ??????????????

しかし、MYSQL を使用すると、出力は次のようになります。

どうして ??ありがとう

4

3 に答える 3

1

MS Accessデータベースからデータを取得しようとしているだけで、複雑なクエリを実行する必要がない場合は、 MSAccessファイルを開くためのネイティブのクロスプラットフォームJavaAPIであるJackcessプロジェクトを確認することをお勧めします。現在、SQLクエリの実行はサポートされていませんが(不安定な)jdbc-odbcブリッジを経由せずにすべてのデータにアクセスできます。また、(IndexCursorを介して)インデックスを使用してデータを検索することもサポートしています。

(免責事項、私は第一著者です)。

于 2013-03-07T15:30:28.543 に答える
1

接続を確立しようとするときは、プロパティに適切な文字セットを設定する必要があります。

java.util.Properties prop = new java.util.Properties();
prop.put("charSet", "UTF8"); // Not tested..
Connection c = DriverManager.getConnection(
           "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ="+path, prop);

詳細については、 JDBC-ODBC ブリッジのドキュメントを参照してください。

于 2013-03-05T16:35:51.473 に答える
0

マイクロソフト フォーラムから:

If your connection character set is utf8, then you should run this query right 
after connecting to DB:

SET NAMES 'utf8'; 

Also your DB and tables and columns should have utf8_general_ci or other type of 
utf8 collation.

お役に立てれば

于 2013-03-05T16:31:35.140 に答える