zoukankan      html  css  js  c++  java
  • h2database之单元测试内存模式 笔记

    h2是一个轻量级的数据库,添加一个jar包就能使用,和sqllite有点像,它的内存模式更是单元测试神器,他还支持模拟各种类型的数据库,功能很强大

    1.使用准备

    maven:
    <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2</artifactId>
                <version>1.4.197</version>
                <scope>test</scope>
            </dependency>

    2.jdbc连通测试

    连接h2和其他的数据库差别不大,注意的是h2的url,除了指定连接外,url还可以实现h2的许多特性功能,以下是jdbc链接h2例子

        @Test
        @DisplayName("h2模拟sqlser内存模式链接测试")
        public void connectH2DatabaseWithJdbc() throws Exception {
            final String JDBC_URL = "jdbc:h2:mem:default;MODE=MSSQLServer;INIT=RUNSCRIPT FROM 'classpath:sql/createtable.sql'";
            //连接数据库时使用的用户
            final String USER = "";
            //连接数据库时使用的密码
            final String PASSWORD = "";
            //连接H2数据库时使用的驱动类,org.h2.Driver这个类是由H2数据库自己提供的,在H2数据库的jar包中可以找到
            final String DRIVER_CLASS = "org.h2.Driver";
            // 加载H2数据库驱动
            Class.forName(DRIVER_CLASS);
            // 根据连接URL,用户名,密码获取数据库连接
            Connection conn = DriverManager.getConnection(JDBC_URL, USER, PASSWORD);
            Statement stmt = conn.createStatement();
            //查询
            ResultSet rs = stmt.executeQuery("SELECT top 200 * FROM nametable");
            //遍历结果集
            while (rs.next()) {
                System.out.println(rs.getString("name") );
            }
            //释放资源
            stmt.close();
            //关闭连接
            conn.close();
        }

    在url中,第一部分是内存模式的h2连接,第二部分是模拟sql server ,它可以模拟大部分主流数据库,模拟之后就可以在查询时使用那些数据库特定的语法,最后的部分是执行sql脚本,由于内存模式的特性是即用即毁,所以必须要先插入数据才有效

     sql脚本例子:

    create table nametable
    (
      name      varchar(3)   not null,
      primary key (name)
    );
    insert into nametable values ('xiaoming');
    insert into nametable values ('xiaohong');
  • 相关阅读:
    学习使用资源文件[4] 用资源中的图片做背景、使用 LoadFromResourceID
    WinAPI: ShellExecute 打开外部程序或文件
    学习使用资源文件[8] 关于 HInstance
    学习使用资源文件[3] 用 Image 显示资源中的图片
    薛定谔之猫_百度百科
    美国创业公司招聘工程师
    Two star programming
    vector 自定义排序
    Data Structures, Algorithms, & Applications in Java Suffix Trees
    Three Star Programmer
  • 原文地址:https://www.cnblogs.com/funkboy/p/11243849.html
Copyright © 2011-2022 走看看