学java的朋友,有没有接触过MariaDB4J呢?

举报
小博测试成长之路 发表于 2022/05/16 23:40:01 2022/05/16
【摘要】 先来聊聊以前接触过的数据库     以前对数据库的认知,从大学的时候在学校学过SqlServer数据库,到学java的时候学过Oracle数据库,到参加工作的时候接触Mysql、TIDB数据库,到现在换工作之后接触了MongoDB数据库,还有各种其他的数据库~~ 品类真多,这里就不一一列...

先来聊聊以前接触过的数据库

    以前对数据库的认知,从大学的时候在学校学过SqlServer数据库,到学java的时候学过Oracle数据库,到参加工作的时候接触Mysql、TIDB数据库,到现在换工作之后接触了MongoDB数据库,还有各种其他的数据库~~ 品类真多,这里就不一一列举了。

MariaDB,这一款你有了解过吗?

     今天,我们首先来看一款新的数据库:MariaDB。

MariaDB可以说是Mysql的一个替代品,是目前更新的比较快的一个MySQL分支版本,在某些方面比MySql更好用。当然,咋也不是专业人士,具体有多好,还是留给大家自己去探索,今天的主题主要是来介绍MariaDB4J。

何为MariaDB4J?

 为什么今天要在这里介绍MariaDB4J呢?那是因为在《阿里测试之道》一书中,有介绍通过MariaDB4J的本地数据库的方案去解决在单测或者代码扫描过程中,被测代码对远程数据库的依赖问题。于是乎去网上查资料对MariaDB4J做了一个简单的了解。

众所周知,一般我们要在本地使用数据库的话,很多的数据库都需要我们在本地去自己搭建一个数据库的服务才能够进行操作。当然,也有极少数是不需要搭建的。

MariaDB4j是一个MariaDB的 Java 启动器,一个与MySQL兼容、可直接替换MySQL的数据库。使得在Java应用中使用MariaDB时不需要任何安装或外部依赖。再次强调:使用MariaDB4j后,你不需要在你的系统上安装MariaDB!

其特点类似于在python中使用pickle库一样,直接在本地去存储数据,或者像sqllite一样。

Python中使用pickle库进行数据的序列化存储

总结:MariaDB4j在java代码中一启动之后,就会自动在本地生成一个本地的数据库,无需额外的去安装数据库服务。

MariaDB4J的功能简单演示

接下来我们用一个简单的demo,去演示一下如何通过java代码在本地去启动这样的一个数据库,并且测试一下启动之后用Navicat工具是否可以连接该数据库。

操作步骤如下:

以java的maven工程为例,新建一个maven工程,主要是为了方便对jar包的依赖管理。

MariaDB4j的使用需要引入一个对应的jar包,对应的jar包的pom依赖如下:


   
  1. <dependency>
  2. <groupId>ch.vorburger.mariaDB4j</groupId>
  3. <artifactId>mariaDB4j</artifactId>
  4. <version>2.5.3</version>
  5. </dependency>

然后复制下面的java代码运行一下,就会在本地启动一个数据库:


   
  1. import ch.vorburger.exec.ManagedProcessException;
  2. import ch.vorburger.mariadb4j.DB;
  3. import ch.vorburger.mariadb4j.DBConfiguration;
  4. import ch.vorburger.mariadb4j.DBConfigurationBuilder;
  5. import java.sql.SQLException;
  6. public class MariaDB4jTest {
  7. public static void main(String[] args) throws ManagedProcessException, SQLException {
  8. DBConfiguration dbConfiguration = DBConfigurationBuilder.newBuilder()
  9. .setPort(3307).setDataDir("dblocal")
  10. .addArg("--user=root")
  11. .build();
  12. DB db = DB.newEmbeddedDB(dbConfiguration);
  13. db.start();
  14. db.createDB("testdb");
  15. db.run("use testdb; CREATE TABLE `sys_user2` (\n" +
  16. " `user_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID',\n" +
  17. " `dept_id` bigint(20) DEFAULT NULL COMMENT '部门ID',\n" +
  18. " PRIMARY KEY (`user_id`)\n" +
  19. ") ENGINE=InnoDB AUTO_INCREMENT=240 DEFAULT CHARSET=utf8 COMMENT='用户信息表';");
  20. }
  21. }

其中,上述代码     db.start();会启动数据库,运行代码后,用navicat工具连接数据库如下:

1517c112c490c27a81bd2c6c5d007df7.png

3de5616267977f24fbb591dfbce5dc9f.png

在代码中指定了一个本地存放数据的目录:

6189f50833a00df3e8d70e76d51ff0a3.png

写在最后

MariaDB4j的使用呢,就暂时先介绍到这,接下来要是对这个的使用感兴趣的,可以自己去尝试操作一下。我觉得有以下几个场景,大家可以站在测试人员的角度去进行验证一下:

1、把本地的数据库文件拷贝给其他人后,直接启动代码,是不是也能加载出文件里面的数据?

2、对于新手小白而言,是否可以直接用这段代码去启动一个本地mysql的数据库,就不用再去使用一系列负责的操作去安装mysql了。

提供几个学习该数据库的demo地址:

https://www.tabnine.com/code/java/classes/ch.vorburger.mariadb4j.DB

文章来源: xiaobotester.blog.csdn.net,作者:小博测试成长之路,版权归原作者所有,如需转载,请联系作者。

原文链接:xiaobotester.blog.csdn.net/article/details/124777442

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。