既有适合小白学习的零基础资料,也有适合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自带的管理页面来维护。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
,单独部署在服务器上,应用程序通过远程连接进行操作,连接方式如下:
#连接语法
jdbc:h2:tcp://[:]/[ ]
#范例:
jdbc:h2:tcp://localhost:8080/~/test
如果想使用可视化客户端工具来访问和管理h2,可以通过它自带的 web 页面进行管理。
下面我们以springboot项目为例,通过配置使用h2自带的管理页面来维护。
[外链图片转存中…(img-fWyomoh2-1715631505202)]
[外链图片转存中…(img-MHQhPR8Y-1715631505203)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新