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');