zoukankan      html  css  js  c++  java
  • H2嵌入式数据库使用

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

    • 首先,进入h2的 官网, 选择All Platforms版本进行下载

      在你的目录下会得到这么一个文件


    解压到当前目录,进入到h2/bin目录下

    有一个h2-*.jar,在命令行下运行java -jar h2-1.4.197.jar
    它会在浏览器上自动打开一个h2数据库的管理页面

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

      这就是我们的h2数据库文件

    在数据库管理页面上的写上建标语句, 并点击运行, 执行成功

    如果出现错误信息报错了话, 会在cc.mv.db所在的目录生成一个cc.trace.db文件, 这个文件是专门用来存放错误日志的

    打开看一下: 里面报的都是一些java错误日志

    在浏览器中对h2数据库进行数据操作的话,会没有代码提示,这非常的不方便。所以我推荐使用一个数据库可视化连接工具 -> dbeaver 这是免费且跨平台的工具,自行下载安装
    打开dbeaver,在连接选项中找到h2 -> Embedded

    • 数据库/模式:h2数据库文件的路径
    • 用户名:数据库的用户名
    • 密码:数据库的密码
      进入编辑驱动设置,我们需要添加一个驱动包,我们删除原来的jar包,将我们之前bin目录下的h2-*.jar添加进去, 点击下一步, 完成,这时候,我们已经连接成功了。
      注意,h2数据库只能拥有一个连接,不能有多个连接,所以我们在使用dbeaver连接h2数据库时,必须关掉控制台上让浏览器运行的连接。

      public下的users表就是我们刚刚创建的, 来插入几条数据。
      在工具栏下找到SQL编辑器

      选中所有数据,按ctrl+enter, 运行所有代码

      这时候,数据已经有了
      我们来将h2数据卡应用到java程序中,首先,关闭dbeaver的连接,当有其它进程在对当前数据库进行操作时,你是不能对它进行操作的
      将cc.mv.db复制到java工程的db文件夹下,并导入h2数据库的驱动包h2-*.jar

      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程序,我们已经将数据取出来了

  • 相关阅读:
    Go map 切片
    Go map 增删改查和遍历
    Go map 基本使用
    Go 二维数组
    Go 切片
    Go 数组
    Go 错误处理 defer recover panic
    Go time模块
    5分钟入门MP4文件格式
    写盘工具
  • 原文地址:https://www.cnblogs.com/dagger9527/p/11836694.html
Copyright © 2011-2022 走看看