序文:
プロジェクトのローカリゼーション要件に従って、MySQL データベースを kingbase データベースに移行する必要があり、バックエンド サービスは Java です。
次に、ローカルの kingbase-win バージョン サーバーを使用してプロセスとコードをテストします。
目次
3. データベース接続ドライバー ファイルをダウンロード編集
1. データベース開発管理ツール ソフトウェアを開き、ターゲット データベースに接続し、移行用のターゲット データベースを作成します。
2. データ移行ツール ソフトウェアを開き、ブラウザで http://localhost:8080 を開きます。
2. 成功後にプロジェクトを開始し、関連するすべての機能をテストします。
Q1: エラー; SQL 文法が間違っています []; ネストされた例外は com.kingbase8.util.KSQLException: エラー: リレーション「テーブル名」が存在しません
プロセス:
1.公式Webサイトからファイルをダウンロードする
Renda Jincang - データベース製品とサービスの世界有数のプロバイダーになること (kingbase.com.cn)
1. インストールパッケージをダウンロードする
2. 必要な認証ファイルをダウンロードします。
3. データベース接続ドライバー ファイルをダウンロードします。
2. インストール
ダウンロードしたライセンス ファイルを選択します
インストールが完了すると、3つのソフトウェアが表示されます
3. データベースの移行
1. データベース開発管理ツール ソフトウェアを開き、ターゲット データベースに接続し、移行用のターゲット データベースを作成します。
2. データ移行ツール ソフトウェアを開き、ブラウザでhttp://localhost:8080を開きます。
3. ソースデータベースとターゲットデータベースを作成する
4. 移行タスクを作成する
個人のニーズに応じて設定し、通常は直接保存して移行します
ページ移行結果から移行結果の詳細を確認できます。
4. コードを部分的に変更してテストする
1. ドライバー ファイルを構成ファイルに追加します。
手順 1 でダウンロードしたドライバー パッケージをドライブスルーします。
Maven コマンド ラインを開き、次のコマンドを入力します。ここで、ドライバー パッケージのアドレスとバージョンはそのまま置き換えられます。
mvn install:install-file -Dfile=D:\kingbase8-8.6.0.jar -DgroupId=com.kingbase8 -DartifactId=kingbase8 -Dversion=8.6.0 -Dpackaging=jar
インポートが成功したら、pom ファイルに移動して追加し、mysql に関連する依存関係をコメント アウトします。mysql に関連する設定をグローバルに検索して置換するのが最善です。
<dependencies>
<dependency>
<groupId>com.kingbase8</groupId>
<artifactId>kingbase8</artifactId>
<version>8.6.0</version>
</dependency>
</dependencies>
2. 成功後にプロジェクトを開始し、関連するすべての機能をテストします。
ピット修正ポイントを踏む:
Q1: エラー; SQL 文法が間違っています []; ネストされた例外は com.kingbase8.util.KSQLException: エラー: リレーション「テーブル名」が存在しません
D: アクセスするライブラリの名前と同じユーザー名を作成する必要があります。たとえば、アクセスしたいライブラリが test である場合、test という名前のユーザー アカウントを作成する必要があります
Q1: tk.mybatis を使用して SQL を記述し、エンティティ クラスの ID に @GeneratedValue アノテーションが使用されている場合、爆発して NPC Jincang () に空ではない例外が表示されます。
D: ID の注釈 @GeneratedValue は、データの挿入時に ID に null 値を自動的に割り当てます。Mysql は挿入時に id を null 値としてサポートしますが、kingbase はサポートしていないため、この注釈を削除するだけで自動的に割り当てられます。データベースが移行されるとき、主キーとして ID を設定します。このアノテーションを使用する必要はありません
データを保存するときに、保存時にこのエンティティ クラスの返された ID 値を取得する必要がある場合は、継承した insertMapper ファイル内の tk.mybatis メソッドを書き換えて、2 つの新しいアノテーション @InsertProvider と @Options を追加する必要があります。
public interface InsertDAO<T> extends Marker,
InsertMapper<T>,
InsertSelectiveMapper<T>,
MySqlMapper<T> {
@Override
@InsertProvider(type = BaseInsertProvider.class, method = "dynamicSQL")
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
int insert(T record);
@Override
@InsertProvider(type = BaseInsertProvider.class, method = "dynamicSQL")
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
int insertList(List<? extends T> recordList);
@Override
@InsertProvider(type = BaseInsertProvider.class, method = "dynamicSQL")
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
int insertSelective(T record);
}