H2作为一个嵌入型的数据库,它最大的好处就是可以嵌入到我们的Web应用中,和我们的Web应用绑定在一起,成为我们Web应用的一部分,本次培训的目的是前后端分离,在后端中采用H2存储数据,H2数据库有三种连接方式:嵌入式、内存模式及远程模式。
一、数据库连接
1.嵌入式连接H2
1)首先在本地下载H2客户端,然后打开h2.bat文件
2)在IDEA中打开View-Tool Window-DataBase,选择h2
3) 在build.gradle中添加依赖后刷新依赖
4) 在代码中访问数据库 JDBC_URL = "jdbc:h2:~/test";
2. 内存模式访问
代码中添加一下,mem代表内存的意思
3. 远程模式连接
jdbc:h2:tcp://<server>[:<port>]/[<path>]<databaseName>
jdbc:h2:tcp://localhost/~/test 使用用户主目录
jdbc:h2:tcp://localhost//data/test 使用绝对路径
二、数据库访问
//如果存在USER_INFO表就先删除USER_INFO表 stmt.execute("DROP TABLE IF EXISTS USER_INFO"); //创建USER_INFO表 stmt.execute("CREATE TABLE USER_INFO(id VARCHAR(36) PRIMARY KEY,name VARCHAR(100),sex VARCHAR(4))"); //新增 stmt.executeUpdate("INSERT INTO USER_INFO VALUES('" + UUID.randomUUID()+ "','大日如来','男')"); stmt.executeUpdate("INSERT INTO USER_INFO VALUES('" + UUID.randomUUID()+ "','青龙','男')"); stmt.executeUpdate("INSERT INTO USER_INFO VALUES('" + UUID.randomUUID()+ "','白虎','男')"); stmt.executeUpdate("INSERT INTO USER_INFO VALUES('" + UUID.randomUUID()+ "','朱雀','女')"); stmt.executeUpdate("INSERT INTO USER_INFO VALUES('" + UUID.randomUUID()+ "','玄武','男')"); stmt.executeUpdate("INSERT INTO USER_INFO VALUES('" + UUID.randomUUID()+ "','苍狼','男')");
//删除 stmt.executeUpdate("DELETE FROM USER_INFO WHERE name='大日如来'"); //修改 stmt.executeUpdate("UPDATE USER_INFO SET name='孤傲苍狼' WHERE name='苍狼'"); //查询 ResultSet rs = stmt.executeQuery("SELECT * FROM USER_INFO"); //遍历结果集 while (rs.next()) { System.out.println(rs.getString("id") + "," + rs.getString("name")+ "," + rs.getString("sex")); } //释放资源 stmt.close();