Java Servlet + H2数据库之集成环境配置

news2024/9/29 3:36:08

在 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

环境配置步骤

  1. 在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。
  1. 在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>
  1. 在Eclipse中启动应用
    在项目中右键单击项目, 选择Run As > Run on Server, 添加或选择Tomcat 9 服务器,启动之后在浏览器输入: http://localhost:8080/java-web/console

在这里插入图片描述

本篇项目代码

  • https://github.com/osxm/java-web

本篇参考

  • Java使用H2数据库全方式汇总

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/96753.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DPDK源码分析之网络基础知识

字节对齐 attribute ((aligned (1))); 在设计不同CPU下的通信协议时&#xff0c;或者编写硬件驱动程序时寄存器的结构这两个地方都需要按一字节对齐。即使看起来本来就自然对齐的也要使其对齐&#xff0c;以免不同的编译器生成的代码不一样. 如果跨越了4字节边界存储&#xff…

java之JVM的位置和体系结构

JVM的概念&#xff1a; JVM 即 Java Virtual Machine&#xff0c;中文名为 Java虚拟机&#xff0c;一般情况下&#xff0c;对于C/C 程序&#xff0c;编译成二进制文件后&#xff0c;就可以直接执行了&#xff0c;但Java 需要使用 javac 编译成 .class 文件&#xff0c;还需要使…

【LSTM回归预测】基于matlab主成分分析结合BiLSTM数据回归预测【含Matlab源码 2276期】

一、LSTM和BiLSTM神经网络结构及原理介绍 长短期记忆网络(Long short-term memory, LSTM)实质上可以理解为一种特殊的RNN,主要是为了解决RNN网络在长序列训练过程中发生梯度消失和梯度爆炸的问题。相比于RNN,LSTM主要是引入了细胞形态(cell state)用于保存长期状态&#xff0c…

世界杯决赛倒计时,你最看好谁

一、期待终极决赛 C站肯定有许多看球的朋友吧。明天即将迎来2022年世界杯终极对决&#xff0c;阿根廷队对战法国。来赶个晚集&#xff0c;也来聊聊世界杯&#xff0c;下一个四年就是2026&#xff0c;会不会还有这种精神呢。先来回顾一下本轮世界杯比赛中的对阵吧。 本轮世界杯中…

Win11+RTX3060+Anconda+CUDA11.3+cuDNN8.2+Pytorch1.10一条龙服务2

Win11RTX3060AncondaCUDA11.3cuDNN8.2Pytorch1.10一条龙服务 &#xff08;1&#xff09;查看安装了哪些包 conda list&#xff08;2)查看当前存在哪些虚拟环境 conda env list &#xff08;3&#xff09;创建虚拟环境&#xff0c;你可以创建好几个虚拟环境&#xff0c;虚拟环…

Flex布局小练--博文列表item布局实现

文章目录前言元素组成实现html部分布局总结前言 今天划一个水先&#xff0c;没办法&#xff0c;作孽没写完&#xff0c;什么这不是作孽的一部分嘛&#xff1f;&#xff01;听不见&#xff0c;听不见。 来先看一下我们要做的一个效果&#xff1a; 首先是这个页面下面的&#xf…

如何基于Jetbrains IDEA DataBase从数据库表中生成对应的Java Bean

在日常的项目开发过程中&#xff0c;大部分人可能都会遇到过想从表自动生成带有注释的Java Bean&#xff0c;在Jetbrains IDEA中通过DataBase工具也是可以生成的。Jetbrains IDEA的Database借助一个名称为Generate POJOs.groovy的groovy模板文件&#xff0c;可以帮我们做代码生…

Python工程师Java之路(t)SpringBoot部署步骤 java -jar

文章目录步骤1、开发环境2、新建工程3、新建controller4、开发环境试运行和测试5、打包运行命令补充步骤 1、开发环境 WIN10IDEA2021Maven3.6.3JDK1.8 2、新建工程 选择Spring和Java版本 添加依赖 3、新建controller package com.example.demo.controller;import org.spr…

macOS Ventura 13.1 (22C65) Boot ISO 原版可引导镜像

本站下载的 macOS Ventura 软件包&#xff0c;既可以拖拽到 Applications&#xff08;应用程序&#xff09;下直接安装&#xff0c;也可以制作启动 U 盘安装&#xff0c;或者在虚拟机中启动安装。 2022 年 12 月 13 日&#xff0c;macOS Ventura 13.1 推出了“无边记”&#x…

基于python的PatchMatchStereo立体匹配算法实现

文章目录前言一、PatchMatchStereo是什么&#xff1f;1.随机初始化2.迭代传播2.1空间传播2.2视图传播2.3帧间传播2.4平面细化二、PatchMatchStereo立体匹配算法实现前言 PatchMatchStereo是Michael Bleyer等在2011年发表于British Machine Vision Conference&#xff08;BMVC&a…

机器学习 鸢尾花数据集划分 训练集和测试集

目录 一&#xff1a;加载数据 二&#xff1a;数据集整理 三&#xff1a;数据集划分 一&#xff1a;加载数据 加载数据&#xff0c;并创建一个DataFrame&#xff0c;便于数据分析 from sklearn.datasets import load_iris import pandas as pd import numpy as np from skle…

大数据:计算学生成绩

文章目录一、提出任务二、任务进行&#xff08;一&#xff09;准备数据1、在虚拟机上创建文本文件2、上传文件到HDFS指定目录&#xff08;二&#xff09;实现步骤1、创建Maven项目2、添加相关依赖3、创建日志属性文件4、创建成绩映射器类5、创建成绩驱动器类6、启动成绩驱动器类…

【JavaSE】类和对象(三)——内部类

目录 1. 何为内部类 2. 内部类的分类 2.1 静态内部类 2.1.1 如何实例化静态内部类的对象&#xff1f; 2.1.2 外部类与静态内部类如何相互访问&#xff1f; 2.2 非静态内部类/实例内部类 2.2.1 非静态内部类不能定义静态的成员变量以及方法 2.2.2 非静态内部类的实例化 2.2.…

三层-生成树-ospf-速端口思科练习实验

♥️作者&#xff1a;小刘在这里 ♥️每天分享云计算网络运维课堂笔记&#xff0c;疫情之下&#xff0c;你我素未谋面&#xff0c;但你一定要平平安安&#xff0c;一 起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的&#xff0c;绽放&#xff0c;…

Spark-SaprkStreaming(概述、架构、原理、DStream转换、案例)

文章目录SparkStreaming概述特点架构原理DStream和RDD的区别DAG如何读取数据(※)WordCount 案例实操代码解析RDD 队列用法及说明案例实操自定义数据源Kafka 数据源DStream 转换无状态转化操作Transformjoin有状态转化操作UpdateStateByKeyWindowOperationsDStream 输出优雅关闭…

pip命令安装torchnet包,超简单!

pip命令安装torchnet包&#xff0c;超简单&#xff01; torchnet是torch的框架&#xff0c;它提供了一组抽象&#xff0c;旨在鼓励代码重用以及鼓励模块化编程。 目前&#xff0c;torchnet提供了四组重要的类&#xff1a; Dataset&#xff1a;以各种方式处理和预处理数据。 …

Typora入门教程

文章目录Typora入门教程1 简要介绍2 下载安装包3 常用操作3.1 标题3.2 加粗3.3 斜体3.4 高亮3.5 分割线3.6 图片3.7 链接3.8 引用3.9 列表3.10 目录3.11 表格3.12 代码块3.13 行内代码3.14 按键效果4 自定义快捷键5 Typora PicGo 阿里云OSS搭建个人笔记5.1 注意事项5.2 准备工…

Hibernate学习总结

文章目录一、图解运行过程二、核心代码三、session方法2、session缓存3、save&#xff08;&#xff09;与persist&#xff08;&#xff09;4、get()5、update()6、delete()7、evict()8、doWork()&#xff0c;可获得connection对象四、hibernate.cfg.xml(使用数据库连接池)五、*…

java项目-第176期ssm个人交友网站系统-java毕业设计

java项目-第176期ssm个人交友网站系统-java毕业设计 【源码请到下载专栏下载】 《个人交友网站》 该项目分为2个角色&#xff0c;管理员、用户角色。 用户可以浏览前台,包含功能有&#xff1a; 首页、交友信息、线下活动、系统公告、论坛信息 管理员进行后台登录&#xff0c;包…

【KNN分类】基于matlab模拟退火优化KNN、蝗虫算法优化KNN数据分类【含Matlab源码 2275期】

⛄一、1KNN算法思想 K近邻算法&#xff08;KNN,K nearest neighbor algorithm&#xff09;是机器学习中一种基本的分类与回归方法&#xff0c;其主要原理是通过对不同测试样本之间的距离进行量测&#xff0c;而后寻找最为相近的K个样本来进行分类&#xff0c;具有简单、直观、…