LibreOffice BaseをJDBC接続でphpMyAdminのMySQLデータベースに接続しようとしています。
最初のステップは、選択するデータベースを選択することです。
2番目のステップは、接続を選択することです。
3番目のステップは、データベースを選択することです。
「Klasse testen」(Test Class)を押すと、「com.mysql.jdbc.driverをロードできません」というエラーが表示されます。
誰もこのエラーを回避する方法を知っていますか?
最初にJDBCコネクタをダウンロードして「登録」する必要があります。そうするには:
http://dev.mysql.com/downloads/connector/j/ に移動し、JDBCコネクタを使用してZipアーカイブをダウンロードします(「プラットフォーム非依存」)。または、MSIインストーラーをダウンロードすることもできます。この場合、jarファイルはProgram Files (x86)/MySQL/MySQL Connector J/
にあります(Win 7 64ビットシステムを想定)
ローカルPCでアーカイブを解凍する(そのコンテンツへのパスを覚えておく)か、代わりにMSIファイルをインストールします。
抽出されたフォルダー構造には、ファイル「mysql-connector-Java-5.0.8-bin.jar」があります(名前はダウンロードした正確なバージョンによって異なります)
LibreOfficeを実行します(Baseではなく、LOのみ)。
メニューを開くTools
-> Options
-> LibreOffice
-> Advanced
-> Class Path;
クリック Add Archive;
手順1〜3からjarファイルを選択して、ヒット OK。今、Class Path
dialogは次のようになります。
それでおしまい。これで、LOはMySQL JDBCドライバーを探す場所を知っています。
ところで、Mariadbの場合、他はすべて同じですが、jdbcドライバークラスは次のように変更されます。
org.mariadb.jdbc.Driver
FedoraなどのLinuxディストリビューションのようなRed Hatを使用している場合は、yumまたはdnfを使用してリポジトリからインストールできます。
Base goto Tools/Options/Javaで、Classpathをクリックし、ファイルブラウザーで/usr/share/Java/mysql-connector-Java.jarを選択します。
https://fedoraproject.org/wiki/QA:Testcase_MySQL_or_MariaDB_in_libreoffice-base
上記の指示に従い、目的のMySQLデータベースに正常に接続した後、DateTimeフィールドに0000-00-00 00:00:00を含むテーブルがエラーを生成したことを発見しました'Value 0000-00-00 00:00 :00 'はJava.sql.Timestampとしてロードできません。ソリューションが簡単だったため、「zeroDateTimeBehavior = convertToNull」への参照を見つけました。トリッキーな部分は、LibreOfficeでこれを入力する場所でした。簡単な答え:データベース名フィールドの一部として入力してください-「mydatabase」は「mydatabase?zeroDateTimeBehavior = convertToNull」になります。 localhostサーバーでLinux Mint/Ubuntuの下で実行すると、これは驚くほどうまくいきました。幸せなデータ処理!