前言
今天在使用h2时碰见一个较为玄学的问题,之前有用过h2可能是久了未用吧,一个很奇葩的问题折腾了我一个多小时,特将h2使用总结记在此处给看到的有猿人避避坑。
一、h2的安装
下载地址:https://www.h2database.com/html/download.html
选择适合自己的版本下载安装,操作很简单,省略啦
二、使用步骤
1.h2的使用
忘记安装目录就盘里搜h2吧
找到安装文件夹
打开看到一个h2.bat文件双击打开,或者点击第三个jar也可以打开
打开后就是这个样子,看不顺眼可以下拉框更改字体,url地址那里初次打开不是我这个样子,这是数据库连接的路径,可以自己自定义,随后会自动在对应目录下生成对应文件,这个不需要看懂,会怎么用就ok,第一次密码那里自己自定义点击Connect连接,之后忘了密码登不上就找自己用过的地方看看或者重新改个路径新建
这是url路径下自动给生成的,不能动
进去后就是这个样子,LABROOMS表是我自己创的,中间的白色框框就是写sql语言的地方了,可以自己建表尝试
这里给一个建表语句:
CREATE TABLE labrooms(id INT PRIMARY KEY, name VARCHAR(20), description VARCHAR(20)); INSERT INTO labrooms values(1,'D301','软件实验室1'); INSERT INTO labrooms values(2,'D302','软件实验室2'); INSERT INTO labrooms values(3,'D401','硬件实验室1'); INSERT INTO labrooms values(4,'D402','硬件实验室2');
2.h2的连接
jar包也就是文件夹里的.jar复制,在WEB-INF下面建一个lib文件夹拷贝进去
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %><%--
Created by IntelliJ IDEA.
User: 22247
Date: 2022-06-11
Time: 9:37
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
String JDBC_URL = "jdbc:h2:d:/temp/h2/teaching;FILE_LOCK=NO";//FILE_LOCK=NO避免文件锁住
String USER = "sa";
String PASSWORD = "123456";
String DRIVER_CLASS = "org.h2.Driver";
Class.forName(DRIVER_CLASS);
Connection con = DriverManager.getConnection(JDBC_URL, USER, PASSWORD);
String sql="select * from LABROOMS where 1=1 ";
Statement pstmt =con.createStatement();
ResultSet rs=pstmt.executeQuery(sql);
%>
<table>
<tr>
<th>id</th>
<th>name</th>
<th>description</th>
</tr>
<%
while (rs.next()){
%>
<tr>
<td><%=rs.getString("id")%></td>
<td><%=rs.getString("name")%></td>
<td><%=rs.getString("description")%></td>
</tr>
<%
}
rs.close();
pstmt.close();
con.close();
%>
</table>
</body>
</html>
3.与h2有关问题总结
1.table xxx not found
解决办法:打开h2界面看看是否有表在里面,最后创建好表了,退出在重新进入检查一遍,连接数据库那里没啥问题应该就可以了
ps:这是今天让我觉得玄学的地方,查了h2会自动保存,并且在我反复确认有数据有表的时候,直到重启再看的时候发现它并没有保存…
2.占用
这个就很好解决,记住只能单独使用,把这个后台退了,然后重新启动tomcat
总结
暂时总结到这里,欢迎大佬们不吝赐教。