H2嵌入式数据库使用

通常,我们在使用数据库一般都首选mysql
但是,今天我将介绍一款能够嵌入到java程序中的数据库,它能随着java工程移动而移动,不像mysql那样,在不同的机器上必须要改配置和重新导入一遍导入数据。

  • 首先,进入h2的 官网, 选择All Platforms版本进行下载
    H2嵌入式数据库使用
    在你的目录下会得到这么一个文件

H2嵌入式数据库使用
解压到当前目录,进入到h2/bin目录下
H2嵌入式数据库使用
有一个h2-*.jar,在命令行下运行java -jar h2-1.4.197.jar
它会在浏览器上自动打开一个h2数据库的管理页面
H2嵌入式数据库使用

  • 在最上方可以选择语言
  • JDBC URL:jdbc:h2:后面跟着的是数据库文件所在的本地绝对路径名, 也就是cc数据库在桌面
  • User Name: 当前数据库所属的用户名
  • Password: 用户密码
    点击Connect连接成功, 这时候,桌面会生成一个数据库文件:cc.mv.db
    H2嵌入式数据库使用
    这就是我们的h2数据库文件

在数据库管理页面上的写上建标语句, 并点击运行, 执行成功
H2嵌入式数据库使用
如果出现错误信息报错了话, 会在cc.mv.db所在的目录生成一个cc.trace.db文件, 这个文件是专门用来存放错误日志的
H2嵌入式数据库使用
打开看一下: 里面报的都是一些java错误日志
H2嵌入式数据库使用
在浏览器中对h2数据库进行数据操作的话,会没有代码提示,这非常的不方便。所以我推荐使用一个数据库可视化连接工具 -> dbeaver 这是免费且跨平台的工具,自行下载安装
打开dbeaver,在连接选项中找到h2 -> Embedded
H2嵌入式数据库使用

  • 数据库/模式:h2数据库文件的路径
  • 用户名:数据库的用户名
  • 密码:数据库的密码
    进入编辑驱动设置,我们需要添加一个驱动包,我们删除原来的jar包,将我们之前bin目录下的h2-*.jar添加进去, 点击下一步, 完成,这时候,我们已经连接成功了。
    注意,h2数据库只能拥有一个连接,不能有多个连接,所以我们在使用dbeaver连接h2数据库时,必须关掉控制台上让浏览器运行的连接。
    H2嵌入式数据库使用
    public下的users表就是我们刚刚创建的, 来插入几条数据。
    在工具栏下找到SQL编辑器
    H2嵌入式数据库使用
    选中所有数据,按ctrl+enter, 运行所有代码
    H2嵌入式数据库使用
    这时候,数据已经有了
    我们来将h2数据卡应用到java程序中,首先,关闭dbeaver的连接,当有其它进程在对当前数据库进行操作时,你是不能对它进行操作的
    将cc.mv.db复制到java工程的db文件夹下,并导入h2数据库的驱动包h2-*.jar
    H2嵌入式数据库使用
    cc.trace.db是错误日志信息,当java程序出错是,会在cc.mv.db所在的文件夹下生成
  • 使用jdbc连接
package cn.java2016.demo1; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.h2.tools.Server; public class H2DatabaseDemo { private static String driver = "org.h2.Driver"; // h2数据库驱动类 private static String url = "jdbc:h2:./db/cc"; // cc数据库所在目录及数据库名 private static String user = "root"; // 数据库用户名 private static String password = "root"; // 数据库密码 public static void main(String[] args) throws SQLException, ClassNotFoundException { Server server = Server.createTcpServer().start(); Class.forName(driver); Connection conn = DriverManager.getConnection(url, user, password); Statement stat = conn.createStatement(); ResultSet resultSet = stat.executeQuery("SELECT * FROM users;"); while (resultSet.next()) { System.out.println(resultSet.getObject(1) + " : " + resultSet.getObject(2) + " : " + resultSet.getObject(3)); } resultSet.close(); stat.close(); conn.close(); server.stop(); // 关闭h2服务 } } 

运行java程序,我们已经将数据取出来了
H2嵌入式数据库使用

原文链接:https://www.cnblogs.com/dagger9527/p/11836694.html

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/7724

(0)
上一篇 2022年9月25日
下一篇 2022年9月25日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml