Skip to main content

准备数据库

关系型数据库支持#

myddd-vertx在关系型数据库方面,使用的是hibernate reactive框架,而hibernate reactive框架本身是基于vert.x的MySQL Client,PostgreSQL Client等为基础。

它们都是异步数据库实现,具有较好的性能表现。

在关系型数据库方面,Vert.x当前支持以下关系型数据库

  • MySQL,以及MariaDB
  • PostgreSQL
  • DB2
  • MSSQL

因此,hibernate reactive也同样只支持上述几种数据库。这意味着其它一些数据库可能不在支持之列,比如Oralce,H2等。

myddd-vert.x使用的是hibernate reactive,因此也支持上述数据库。

note

myddd-vertx的单元测试,主要是以MYSQL及PostgreSQL两种测试为主,意味着myddd-vert.x中对它们的支持是完全没有问题的。对DB2及MSSQL的支持未有进行单元测试,但理论上是可以的

因此这也这意味着,您不能期望myddd-vert.x支持mybatis这样的需求。请您明白这一点。

非关系型数据库#

无需顾虑,Vert.x本身就完全支持mongodb以及redis这两个主流的非关系型数据库。

myddd-vertx本身未对非关系型数据库做任何封装与抽象。

您可以直接在项目中加入vert.x的相关依赖并使用它们。它们也是异步实现,具有极高的性能表现。

准备数据库#

为了保证项目能正常运作,您需要准备一个MySQL数据库,或上面提及的其它可行的。

在每一层的main或test的resources下面,都存在META-INF/persistence.xml文件,对数据库的任何配置,您只需要修改此文件

<persistence xmlns="http://java.sun.com/xml/ns/persistence"             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"             version="2.0">
    <persistence-unit name="default">        <provider>org.hibernate.reactive.provider.ReactivePersistenceProvider</provider>
        <class>org.myddd.stater.domain.Document</class>
        <properties>
            <!-- MySQL -->            <property name="javax.persistence.jdbc.url"                      value="jdbc:mysql://127.0.0.1:3306/test"/>
            <!-- Credentials -->            <property name="javax.persistence.jdbc.user"                      value="root"/>            <property name="javax.persistence.jdbc.password"                      value="admin1234"/>
            <!-- The Vert.x SQL Client connection pool size -->            <property name="hibernate.connection.pool_size"                      value="10"/>
            <!-- Automatic schema export -->            <property name="javax.persistence.schema-generation.database.action"                      value="drop-and-create"/>
            <!-- SQL statement logging -->            <property name="hibernate.show_sql" value="true" />            <property name="hibernate.format_sql" value="false"/>            <property name="hibernate.highlight_sql" value="true"/>
        </properties>
    </persistence-unit>
</persistence>

上述配置应该足够简单易懂,相信并不需要进一步去阐述其配置的含义。

关于数据库,后面会再详细阐述其使用。

caution

请根据上述你的数据库配置,在你的数据库中准备相应的DB,设置正确的用户名及密码。

表结构JPA会自动创建。不需要手动创建。

#mysql示例
create database test