日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

mysql的内存数据库,MySQL内存数据库的新选择-MariaDB4J

發(fā)布時(shí)間:2024/10/8 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql的内存数据库,MySQL内存数据库的新选择-MariaDB4J 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

H2 不香么? 為什么使用MariaDB4J ?

談到在測(cè)試中使用內(nèi)存數(shù)據(jù)庫(kù),估計(jì)首先想到的就是H2了。使用時(shí)也非常方便,只要在下述SpringBoot的配置文件里修改一下datasource即可。application.propertiesspring.datasource.url=jdbc:h2:mem:testdb

spring.datasource.driverClassName=org.h2.Driver

spring.datasource.username=sa

spring.datasource.password=

spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

然后一個(gè)名字為testdb的數(shù)據(jù)庫(kù)就就緒了。如果要導(dǎo)入數(shù)據(jù)庫(kù)表和基礎(chǔ)數(shù)據(jù)的話,也只要在src/test/resouces下面提供如下兩個(gè)文件

schema.sql – 創(chuàng)建schema和表

data.sql – 導(dǎo)入基礎(chǔ)數(shù)據(jù)

看上去是不是很方便呢?

不過(guò)隨著在項(xiàng)目中使用的深入,就發(fā)現(xiàn)了一些問(wèn)題語(yǔ)法上兼容性(如注釋)以及產(chǎn)品功能上的問(wèn)題(如多層臨時(shí)表),具體可以關(guān)注筆者之前整理的一個(gè)list。如果選擇繼續(xù)使用H2,就需要團(tuán)隊(duì)為H2去維護(hù)另外一套H2專用的schema。因此,使用MySQL的團(tuán)隊(duì)需要額外尋找一個(gè)H2的替代品,一個(gè)更兼容MySQL的內(nèi)存數(shù)據(jù)庫(kù)。

經(jīng)過(guò)一番搜索,MariaDB4J 終于走進(jìn)了團(tuán)隊(duì)的視野。https://github.com/vorburger/MariaDB4j這個(gè)開(kāi)源項(xiàng)目的目標(biāo)就是讓用戶use MariaDB (MySQL(R)) from Java without ANY installation / external dependencies

在SpringBoot項(xiàng)目中使用

來(lái)看看如何使用它。以下是一個(gè)測(cè)試專用的App基類package com.testlink4j;

import org.mybatis.spring.annotation.MapperScan;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.context.annotation.Configuration;

import ch.vorburger.mariadb4j.springframework.MariaDB4jSpringService;

@Configuration

@SpringBootApplication

// mapper 接口類掃描包配置

@MapperScan("com.testlink4j.dao")

public class TestApplication{//extends Application {

public static void main(String[] args){

SpringApplication.run(TestApplication.class,args);

}

private final MariaDB4jSpringService mariaDB4JSpringService;

@Autowired

public TestApplication (MariaDB4jSpringService mariaDB4JSpringService){

this.mariaDB4JSpringService= mariaDB4JSpringService;

}

}

通過(guò)給Spring應(yīng)用提供一個(gè)測(cè)試用的TestApplication,并提供一個(gè)帶有MariaDB4jSpringService 作為入?yún)?#xff0c;就可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)的啟動(dòng)了。. ____ _ __ _ _

/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \

( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \

\\/ ___)| |_)| | | | | || (_| | ) ) ) )

' |____| .__|_| |_|_| |_\__, | / / / /

=========|_|==============|___/=/_/_/_/

:: Spring Boot :: (v2.2.5.RELEASE)

INFO 7264 --- [ main] c.t.s.impl.TestProjectServiceImplTest : No active profile set, falling back to default profiles: default

.s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 35ms. Found 0 JPA repository interfaces.

INFO 7264 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 0 (http)

INFO 7264 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]

INFO 7264 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.31]

INFO 7264 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext

INFO 7264 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 7118 ms

INFO 7264 --- [ main] ch.vorburger.mariadb4j.DB : Installation complete.

INFO 7264 --- [ main] ch.vorburger.mariadb4j.DB : Starting up the database...

INFO 7264 --- [ main] ch.vorburger.mariadb4j.DB : Database startup complete.

INFO 7264 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...

INFO 7264 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.

INFO 7264 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 51602 (http) with context path ''

INFO 7264 --- [ main] c.t.s.impl.TestProjectServiceImplTest : Started TestProjectServiceImplTest in 21.636 seconds (JVM running for 24.737)

INFO 7264 --- [ main] c.t.s.impl.TestProjectServiceImplTest :

我們可以看到,在Spring容器啟動(dòng)初期,會(huì)安裝、啟動(dòng)一個(gè)mariadb4j并裝載schema和data。

SpringBoot中的配置

在application-test.properties文件中使用如下配置,#Location of db files. delete this directory if you need to recreate from scratch

mariaDB4j.dataDir=./data/local

#Default is 3306, so using 3307 just in case it is already running on this machine

mariaDB4j.port=3307

app.mariaDB4j.databaseName=testdb

spring.datasource.url=jdbc:mariadb://localhost:3307/

spring.datasource.username=root

spring.datasource.password=

spring.datasource.driver-class-name=org.mariadb.jdbc.Driver

spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

總結(jié)

以上是生活随笔為你收集整理的mysql的内存数据库,MySQL内存数据库的新选择-MariaDB4J的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。