Maven が Springboot+MyBatisPlus+Renda Jincang データベースを構築

序文

私は最近、ローカリゼーションの必要性から、A 党が全国人民代表大会の金倉データベースの使用を要求したプロジェクトに取り組みました。MyBatisPlus が適応できることを早速確認したので、簡単な検証のために Springboot+MyBatisPlus+Renda Jincang データベース環境を構築する予定です。

環境

エクリプス・オキシン

JAVA1.8

スプリングブート2.6.2

MyBatis3.5.2

全国人民代表大会金倉データベース kingbase8.6.0

環境を構築する

ここでは、ダウンロード、インストール、構成については省略します。ただし、Jincang データベースは比較的馴染みがなく、他の何人かの Java 開発者はよく知っているはずです。Jincang データベースのインストールは難しくありません。公式 Web サイトからインストール パッケージをダウンロードします。個人開発者の場合は、開発版の認証ファイルをダウンロードし、インストール中に認証ファイルを選択します。個人開発版はまだ制限が多く、最大接続数は10ですが、データベース管理ツールを使って接続しているのですが、データベース移行ツールを使って接続すると接続数を超えてしまいます。

データベースの準備

Jincang データベースにデータベースを作成し、テーブルを作成し、テスト データを挿入したいと考えています。

まずデータベースを直接作成します

次に、テーブルを作成し、SQL ステートメントを実行して users テーブルを作成します。user キーワードが競合するため、テーブル名には users が使用されます。

CREATE TABLE "public".users (
    id bigint AUTO_INCREMENT NOT NULL,
    name varchar(30) NOT NULL,
    age integer NOT NULL,
    email varchar(50) NOT NULL
);

ALTER TABLE "public".users SET
TABLESPACE "sys_default";

COMMENT ON
COLUMN "public".users.id IS '主键';

COMMENT ON
COLUMN "public".users.name IS '姓名';

COMMENT ON
COLUMN "public".users.age IS '年龄';

COMMENT ON
COLUMN "public".users.email IS '邮箱';

ALTER TABLE "public".users ADD CONSTRAINT con_public_users_constraint_1 PRIMARY KEY (id) ENABLE VALIDATE;

データを挿入します:

INSERT INTO users (id, name, age, email) VALUES
(1, 'Jone', 18, '[email protected]'),
(2, 'Jack', 20, '[email protected]'),
(3, 'Tom', 28, '[email protected]'),
(4, 'Sandy', 21, '[email protected]'),
(5, 'Billie', 24, '[email protected]');

新しい Maven プロジェクトを作成する

Eclipse を使用して新しい Maven プロジェクトを作成します。

pom ファイルは次のように構成されます。

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.sadoshi</groupId>
    <artifactId>kingbase</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.2</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
        </dependency>
        <dependency>
            <groupId>com.kingbase8</groupId>
            <artifactId>kingbase8</artifactId>
            <version>8.6.0</version>
        </dependency>

    </dependencies>

    <!--插件 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

Maven 中央ウェアハウスには kingbase8 のバージョン 8.6.0 がないため、後でローカル Maven ウェアハウスにバージョン 8.6.0 を作成する必要があるため、上記でエラーが報告されます。

application.ym 内のプロジェクトで、データベース接続などを含むいくつかの構成を実行します。

server:
  port: 9999

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.kingbase8.Driver
    url: jdbc:kingbase8://127.0.0.1:54321/mybatisplus_test
    username: system
    password: 12345678
    druid:
      stat-view-servlet:
        enabled: false

driverClassName は Jincang データベースのドライバーに置き換えられることに注意してください。

kingbase8 jar をローカル Maven にインストールする

Jincang データベースのインストール ディレクトリで kingbase8-8.6.0.jar を見つけます。pom ファイルにエラーが発生しないように、ローカル Maven にインストールしたいと考えています。

コマンドラインでコマンドを実行します。

mvn install:install-file -DgroupId=com.kingbase8 -DartifactId=kingbase8 -Dversion=8.6.0 -Dpackaging=jar -Dfile=(kingbase的jar包路径)\kingbase8-8.6.0.jar

PS: 「指定した目標を実行するにはプロジェクトが必要ですが、このディレクトリに POM がありません」というエラーが報告される場合があります。すべての引数を二重引用符で囲んでみてください。

mvn install:install-file "-DgroupId=com.kingbase8" "-DartifactId=kingbase8" "-Dversion=8.6.0" "-Dpackaging=jar" "-Dfile=(kingbase的jar包路径)\kingbase8-8.6.0.jar"

コードを書く

前面准备工作都做好了,接下来要写业务代码。

创建主类App,加上@MapperScan注解扫描指定目录下的mapper:

package kingdb;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("kingdb.mapper")
public class App {

    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
        
    }
}

创建一个测试用控制类HelloController,一会测试的时候访问“/getStudent”这个路径,看控制台能否打印出学生列表:

package kingdb.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import kingdb.entity.User;
import kingdb.mapper.UserMapper;

@RestController
public class HelloController {

    @Autowired
    private UserMapper userMapper;
    
    @RequestMapping("/test")
    public String test() {
        return "test";
    }
    
    @RequestMapping("/getStudent")
    public String getStudent() {
        List<User> userList = userMapper.selectList(null);
        userList.forEach(System.out::println);
        return "getStudent";
    }
}

创建实体类User,这里使用@TableName注解指定实体类对应的数据库表名:

package kingdb.entity;

import com.baomidou.mybatisplus.annotation.TableName;

import lombok.Data;

@Data
@TableName("users")
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

创建Mapper类:

package kingdb.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import kingdb.entity.User;

public interface UserMapper extends BaseMapper<User>{

}

测试

启动App类,浏览器访问http://localhost:9999/getStudent。因为我前面application.yml设置Server端口是9999,所以访问端口是这个。

然后查看控制台:

成功打印学生信息。证明MyBatisPlus对接金仓数据库验证完成。

小结

金仓数据库有些语法与mysql不同,比如说这个users的建表语句,我是通过数据库工具建表后生成的ddl,和MyBatisPlus官网例子mysql的建表语句还是有些差别。如果想使用一些成熟的框架作为底座,又被要求使用金仓数据库,可以先用mysql建好数据库,再通过金仓数据库的数据库迁移工具迁过去。比如我使用jeecg这个框架,就是先在mysql建好表,然后通过工具迁移过去。直接改建表sql太麻烦了,而且和mysql语法出入又多。

おすすめ

転載: blog.csdn.net/sadoshi/article/details/129731360