2024年最全Java 生态圈中的嵌入式数据库,哪家强?,2024最新百度、头条等公司物联网嵌入式开发面试题目

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

三、SQLite

SQLite 是 D.RichardHipp 用一个小型的C库开发的一种强有力的嵌入式关系数据库,虽然功能较 Berkeley DB(商业数据库)稍显逊色,但它简单易学、速度较快,同时提供了丰富的数据库接口,提供了对 SQL92 的大多数支持:支持多表和索引、事务、视图、触发和一系列的用户接口及驱动。

SQLite 不仅支持 Windows/Linux/Unix 等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,比起 Mysql、PostgreSQL 这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快,全部源码大致3万行C代码,文件大约 350KB,支持数据库大小至 2TB!

几乎常年占据嵌入式数据库的第一位!

3.1、SQLite安装

3.1.1、windows安装

1.访问 SQLite 下载页面https://www.sqlite.org/download.html。

2.下载sqlite-tools-win32-.zip和sqlite-dll-win32-.zip压缩文件。

3.创建文件夹C:\sqlite,并在此文件夹下解压上面两个压缩文件,将得到 sqlite3.def、sqlite3.dll和sqlite3.exe文件。

4.添加C:\sqlite到PATH环境变量。

最后在命令提示符下,输入sqlite3命令,显示如下结果表示安装成功!

C:>sqlite3

SQLite version 3.7.15.2 2013-01-09 11:53:05

Enter “.help” for instructions

Enter SQL statements terminated with a “;”

3.1.2、linux安装

目前,几乎所有版本的 Linux 操作系统都附带 SQLite。所以,只需要在命令行输入输入sqlite3,即可检查出机器上是否已经安装了 SQLite!

$ sqlite3

SQLite version 3.7.15.2 2013-01-09 11:53:05

Enter “.help” for instructions

Enter SQL statements terminated with a “;”

如果没有看到上面的结果,安装也很简单!

1.访问 SQLite 下载页面https://www.sqlite.org/download.html。

2.下载sqlite-autoconf-*.tar.gz并上传到 linux 服务器。

3.执行安装操作

例如,安装步骤示例:

$ tar xvzf sqlite-autoconf-3071502.tar.gz

$ cd sqlite-autoconf-3071502

$ ./configure --prefix=/usr/local

$ make

$ make install

3.1.3、mac安装

mac安装操作与linux类似。

3.2、项目引入

sqlite 也可以直接通过maven在pom.xml中依赖库文件,即可进行开发!

org.xerial

sqlite-jdbc

3.7.2

3.3、环境配置

String DRIVER_CLASS = “org.sqlite.JDBC”;

String JDBC_URL = “jdbc:sqlite:sqliteDB.db”;

String USER = “root”;

String PASSWORD = “root”;

说明:

org.sqlite.JDBC表示使用sqlite嵌入式数据库模式。

JDBC_URL中的sqliteDB表示创建一个名为sqliteDB的临时数据库,如果没有会自动创建。

USER、PASSWORD主要用于客户端登录使用。

3.4、单元测试应用

下面,来测试一下sqlite是否可以正常使用。

public class SQLiteTest {

/**

  • 以嵌入式(本地)连接方式连接数据库

*/

private static final String JDBC_URL = “jdbc:sqlite:sqliteDB.db”;

private static final String DRIVER_CLASS = “org.sqlite.JDBC”;

private static final String USER = “root”;

private static final String PASSWORD = “root”;

public static void main(String[] args) throws Exception {

//与数据库建立连接

Class.forName(DRIVER_CLASS);

Connection conn = DriverManager.getConnection(JDBC_URL, USER, PASSWORD);

Statement statement = conn.createStatement();

//删除表

statement.execute(“DROP TABLE IF EXISTS USER_INF”);

//创建表

statement.execute(“CREATE TABLE USER_INF(id VARCHAR(50) PRIMARY KEY, name VARCHAR(50) NOT NULL, sex VARCHAR(50) NOT NULL)”);

//插入数据

statement.executeUpdate("INSERT INTO USER_INF VALUES(‘1’, ‘程咬金’, ‘男’) ");

statement.executeUpdate("INSERT INTO USER_INF VALUES(‘2’, ‘孙尚香’, ‘女’) ");

statement.executeUpdate("INSERT INTO USER_INF VALUES(‘3’, ‘猴子’, ‘男’) ");

//查询数据

ResultSet resultSet = statement.executeQuery(“select * from USER_INF”);

while (resultSet.next()) {

System.out.println(resultSet.getInt(“id”) + ", " + resultSet.getString(“name”) + ", " + resultSet.getString(“sex”));

}

//关闭连接

statement.close();

conn.close();

}

}

输出结果:

1, 程咬金, 男

2, 孙尚香, 女

3, 猴子, 男

当程序运行完之后,也会在当前项目的根目录下生成上文自定义的一个名为sqliteDB的文件。

每次操作名为sqliteDB的数据库时候,数据会持久化到sqliteDB文件中,从而防止数据丢失。

如果想使用可视化客户端工具来访问和管理sqliteDB,可以使用navicat来连接,选择生成的sqliteDB文件,输入相应的账号、密码,便可进行管理维护!

四、H2

h2 是一款纯java编写的另一款嵌入式数据库,它本身只是一个类库,即只有一个 jar 文件,可以直接嵌入到应用项目中,同时还提供了非常友好的基于 web 的数据库管理界面。

网上有很多开发者拿它与 derby 做对比,称它与 mysql 数据库兼容性强,口碑较好。

具体是否真的如此,在后文我们会进行相应的性能测试,下面一起来看看在开发中如何使用。

4.1、项目引入

既然 h2 是纯java编写,可以直接通过maven在pom.xml中依赖库文件,即可进行开发!

com.h2database

h2

1.4.200

runtime

4.2、环境配置

String DRIVER_CLASS = “org.h2.Driver”;

String JDBC_URL = “jdbc:h2:mem:h2DB”;

String USER = “root”;

String PASSWORD = “root”;

说明:

org.h2.Driver表示使用h2嵌入式数据库模式。

JDBC_URL中的h2DB表示创建一个名为h2DB的临时数据库。

USER、PASSWORD主要用于客户端登录使用。

4.3、单元测试应用

下面,来测试一下h2是否可以正常使用。

public class H2Test {

/**

  • 以嵌入式(本地)连接方式连接H2数据库

*/

private static final String JDBC_URL = “jdbc:h2:mem:h2DB”;

private static final String DRIVER_CLASS = “org.h2.Driver”;

private static final String USER = “root”;

private static final String PASSWORD = “root”;

public static void main(String[] args) throws Exception {

//与数据库建立连接

Class.forName(DRIVER_CLASS);

Connection conn = DriverManager.getConnection(JDBC_URL, USER, PASSWORD);

Statement statement = conn.createStatement();

//删除表

statement.execute(“DROP TABLE IF EXISTS USER_INF”);

//创建表

statement.execute(“CREATE TABLE USER_INF(id VARCHAR(50) PRIMARY KEY, name VARCHAR(50) NOT NULL, sex VARCHAR(50) NOT NULL)”);

//插入数据

statement.executeUpdate("INSERT INTO USER_INF VALUES(‘1’, ‘程咬金’, ‘男’) ");

statement.executeUpdate("INSERT INTO USER_INF VALUES(‘2’, ‘孙尚香’, ‘女’) ");

statement.executeUpdate("INSERT INTO USER_INF VALUES(‘3’, ‘猴子’, ‘男’) ");

//查询数据

ResultSet resultSet = statement.executeQuery(“select * from USER_INF”);

while (resultSet.next()) {

System.out.println(resultSet.getInt(“id”) + ", " + resultSet.getString(“name”) + ", " + resultSet.getString(“sex”));

}

//关闭连接

statement.close();

conn.close();

}

}

输出结果:

1, 程咬金, 男

2, 孙尚香, 女

3, 猴子, 男

h2 作为嵌入式数据库应用可以选择两种类型的url,第一种是内存模式运行,这种模式将数据临时放到内存中,程序结束后数据表和数据立即被销毁,就不存在了;第二种是使用本地文件方式,将数据持久化到文件中,当再次连接数据库时,可以获取历史数据。

#第一种,内存模式运行

jdbc:h2:mem:testDB

#第二种,使用本地文件方式

jdbc:h2:file:./target/testDB

h2 还可以作为数据库服务器使用,单独部署在服务器上,应用程序通过远程连接进行操作,连接方式如下:

#连接语法

jdbc:h2:tcp://[:]/[ ]

#范例:

jdbc:h2:tcp://localhost:8080/~/test

如果想使用可视化客户端工具来访问和管理h2,可以通过它自带的 web 页面进行管理。

下面我们以springboot项目为例,通过配置使用h2自带的管理页面来维护。

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

,单独部署在服务器上,应用程序通过远程连接进行操作,连接方式如下:

#连接语法

jdbc:h2:tcp://[:]/[ ]

#范例:

jdbc:h2:tcp://localhost:8080/~/test

如果想使用可视化客户端工具来访问和管理h2,可以通过它自带的 web 页面进行管理。

下面我们以springboot项目为例,通过配置使用h2自带的管理页面来维护。

[外链图片转存中…(img-fWyomoh2-1715631505202)]
[外链图片转存中…(img-MHQhPR8Y-1715631505203)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

  • 11
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLite 作为一个开源的嵌入式数据库产品,具有系统开销小,检索效率高的特性,适用于手机、PDA、机顶盒设备等电器,并且作为嵌入式数据库在可下载的消费类应用程序运行的很好。这篇文章介绍嵌入式数据库产品SQLite 的技术特点,并着重讨论研究与Java语言之间的接口,并以实例说明如何使用JAVA 开发基于SQLite 的应用程序。 正文: 通常我们采用各种数据库产品来实现对数据的存储、检索等功能,例如,Oracle,SQL Server, MySQL 等等。这些产品除提供基本的查询,删除,添加等功能外,也提供了很多高级特性,如触发器,存储过程,数据备份恢复,全文检索功能等。但实际上,很多的应用,仅仅利用到了这些数据库产品的基本特性而已。而且在一些小型应用上,或者某些特殊场合的应用,比如桌面程序,这些数据库产品就明显有一些臃肿。在这些情况下,嵌入式数据库的优势就特别明显了。 嵌入式数据库无须独立运行的数据库引擎,它是由程序直接调用相应的API 去实现对数据的存取操作。更直白的讲,嵌入式数据库是一种具备了基本数据库特性的数据文件。嵌入式数据库与其它数据库产品的区别是,前者是程序驱动式, 而后者是引擎响应式。嵌入式数据库的一个很重要的特点是它们的体积非常小,编译后的产品也不过几十K。这不但对桌面程序的数据存储方案是一个很好的选择,也使得它们可以应用到一些移动设备上。同时,很多嵌入式数据库在性能上也优于其它数据库,所以在高性能的应用上也常见嵌入式数据库的身影。 下面介绍的是开放源代码的嵌入式数据库,SQLite。同时侧重研究如何应用Java 连接SQLite数据库,并开发基于SQLite 的应用程序。 ......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值