- 締切済み
Accessで日本語を使っていると実行時にエラーになる。
Microsoft Accessでデータベースを作成した。そのデータベースを使って、JdbcOdbcDriverでMicrosoft Accessから 値を取得しようとするとテーブル名とフィールド名に日本語を使っているときに以下の部分でエラーになります。 テーブル名とフィールド名には日本語を使いたいのですがどのようにすればよいでしょうか? String sql = "SELECT * FROM 整理" ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ int no = rs.getInt("番号"); } テーブル名とフィールド名を英語にしたらエラーは消えました。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- public_sa
- ベストアンサー率52% (13/25)
Shift_JIS <-> Unicode だからだめなんじゃないでしょうか? 下記みたいな関数をひとつつくって static String encode (final String sql, final String charset) throws UnsupportedEncodingException { return sql != null ? new String(sql.getBytes(), charset) : null; } final String shiftJIS = "Shift_JIS"; String sql = encode("SELECT * FROM 整理", shiftJIS); ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ int no = rs.getInt(encode("番号"), shiftJIS); } みたいにしたらどうでしょうか。 でも日本語を使う前におなじサイト内からですが 下記も参考にしてみてください。
お礼
回答ありがとうございます。 いままでjavaプログラムの実行結果はNetBeansの出力欄で確認していました。 コマンドプロンプトで確認したら正常に動作しました。