h2database之单元测试 笔记

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

1.使用准备数据库

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

在idea上还能够直接建立本地数据库,直接进行关于数据库的增删改查等操做,注意内存模式是不能直接用图形界面进行建立表结构等操做,要用执行sql语句的方式来进行操做maven

2.jdbc连通测试ide

链接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脚本例子:url

create table nametable
(
  name      varchar(3)   not null,
  primary key (name)
);
insert into nametable values ('xiaoming');
insert into nametable values ('xiaohong');
相关文章
相关标签/搜索