在 Eclipse+Maven+Tomcat 集成开发环境配置 搭建了一个Servlet的开发环境,整合Tomcat 作为Web容器。如何要加入数据库开发要怎么处理呢?
在实际开发中,一般会选择MySQL,Oracle 等数据库, 但是如果只是学习和演示, 使用H2更为简便和轻量,因为H2 可以免安装。
在 H2 数据库简介 一篇中介绍了通过 java -jar h2-2.1.214.jar
的方式启动H2数据库,在Spring Boot项目中也可以很容易整合H2数据库, 参见: Spring Boot整合H2内存数据库配置及常见问题处理 。那么,对于基本的Java Web项目要如何配置和启动H2数据库呢?
下面以 Eclipse+Maven+Tomcat 集成开发环境配置 搭建的项目为例, 整合H2数据库。
本篇环境
- Eclipse 2022-09 (4.25.0)
- JDK 1.8
- Maven 3.8
- H2 2.1.214
- Tomcat 9
- 项目名称: java-web
环境配置步骤
- 在pom.xml 引入H2 和 servlet-api 。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.osxm</groupId>
<artifactId>java-web</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<description>Java Web Demo</description>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.1.214</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
- Tomcat 本身包含servlet-api的依赖包, 但是在开发的时候需要导入servlet-api的类, 所以项目需要导入这个依赖包,但是在打包的时候又不需要,所以讲 scope 设置为provided。
- 在web.xml配置监听器,在应用启动的时候启动H2服务器, 另外,配置控制台Servlet ,可以在浏览器连接数据库进行管理。
配置的web.xml 如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0" metadata-complete="true">
<display-name>Java Web Demo</display-name>
<listener>
<listener-class>org.h2.server.web.DbStarter</listener-class>
</listener>
<servlet>
<servlet-name>H2Console</servlet-name>
<servlet-class>org.h2.server.web.WebServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>H2Console</servlet-name>
<url-pattern>/console/*</url-pattern>
</servlet-mapping>
</web-app>
- 在Eclipse中启动应用
在项目中右键单击项目, 选择Run As > Run on Server, 添加或选择Tomcat 9 服务器,启动之后在浏览器输入: http://localhost:8080/java-web/console
本篇项目代码
- https://github.com/osxm/java-web
本篇参考
- Java使用H2数据库全方式汇总