Java之servlet五 连接Mysql8.0数据库

本文详细介绍在Windows环境下,如何使用JDK1.7以上版本、Mysql数据库、Tomcat服务器搭建并部署Java Web应用。从环境配置、依赖下载、代码编写到编译测试,再到数据库初始化与清理,每一步都提供了具体操作指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 环境

  •    windows系统(linux系统类似)
  •    JDK1.7以上

 依赖

 文件

  • 数据库脚本文件InitDemo.sql
  • servlet代码文件HttpServletDemo2.java
  • 编译servlet文件compileDemo.bat
  • 数据库脚本文件ClearDemo.sql

 步骤

  1. 启动Mysql服务器
  2. 进入Mysql服务器后台,运行InitDemo.sql
  3. 编写HttpServletDemo2.java文件
  4. 运行compileDemo.bat编译HttpServletDemo2.java
  5. 进入浏览器验证
  6. 清理数据库运行ClearDemo.sql

 第一步 启动Mysql服务器

// 切换到mysql的执行目录
>> cd <mysql的bin目录>
// 启动mysql服务器
>> mysqld --console

 第二步 运行InitDemo.sql

// 另外打开CMD,切换到mysql执行目录
>> cd <mysql的bin目录>
// 进入mysql后台
>> mysql -u root -p
// 运行InitDemo.sql,注意路径中\问题,使用标准路径
mysql>> source <InitDemo.sql全路径>

 InitDemo.sql文件如下:

/*
	@说明:	创建testdb库,再创建user表,插入几条记录
*/
CREATE DATABASE IF NOT EXISTS testdb;

USE testdb;

CREATE TABLE IF NOT EXISTS user(
	user_id 	INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,
	user_name 	CHAR(64) UNIQUE,
	user_mail	VARCHAR(128) DEFAULT '-',
	nick_name	VARCHAR(128) DEFAULT 'love'
);

ALTER TABLE user AUTO_INCREMENT=1000000000;

INSERT INTO user(user_name,user_mail)
	VALUES('yiqiong','111@163.com'),
	('erbai','222@163.com'),
	('sansha','333@163.com');

 第三步 编写HttpServletDemo2.java

package com.zhou.servlet;

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

import com.mysql.cj.protocol.Resultset;
import java.sql.*;

public class HttpServletDemo2 extends HttpServlet{
	public void doGet(HttpServletRequest req, HttpServletResponse res)
		throws ServletException , IOException{
		String strMysqlDriver = "com.mysql.cj.jdbc.Driver";
		String strMysqlAddr   = "jdbc:mysql://localhost:3306/";
		String strMysqlParam  = "characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
		String strDbName      = "testdb";
		String strTableName   = "user";
		String strAccount     = "root";
		String strPassword    = "123456";
		
		String strMysqlUrl    = strMysqlAddr + strDbName;
		       strMysqlUrl   += "?";
		       strMysqlUrl   += strMysqlParam;

		try{
			Class.forName(strMysqlDriver);
			Connection con = DriverManager.getConnection(strMysqlUrl,strAccount,strPassword);
			if(!con.isClosed()){
			res.getWriter().println("Succeeded connecting to the Database!");
			}
			Statement statement 	= con.createStatement();
			String 	  strSelectSql  = "select * from " + strTableName + ";";
			ResultSet selectResult  = statement.executeQuery(strSelectSql);

			while(selectResult.next()){
			res.getWriter().println(selectResult.getString(1) + "\t"+ selectResult.getString(2));
			}
			selectResult.close();
			con.close();
		}catch(ClassNotFoundException e){
			e.printStackTrace();
		}catch(SQLException e){
			e.printStackTrace();
		}catch (Exception e) {
			e.printStackTrace();
		}finally{
			 res.getWriter().println("successfull !");
		}
	}
	public void doPost(HttpServletRequest req, HttpServletResponse res)
		throws ServletException, IOException{
			doGet(req,res);
		}
}

 第四步 运行compileDemo.bat

 首先,编写compileDemo.bat,将cd后面的内容替换成存放HttpServletDemo2.java的目录,参考如下;

@echo off
cd C:\Users\ws\Desktop\javaservlet
javac -classpath ./servlet-api.jar;./mysql-connector-java-8.0.12.jar -d . HttpServletDemo2.java
pause

其次, 将编译依赖的servlet-api.jar和mysql-connector-java-8.0.12.jar放在与java文件同一目录下;

(servlet-api.jar从tomcat根目录下的lib目录中取,mysql-connector-java-8.0.12.jar从mysql官网下载)

 再次,双击compileDemo.bat文件,将生成的com目录整体放到你发布的webapp的WEB-INF的classes目录下;

 最后,配置web.xml,参考配置如下

<servlet>
    <servlet-name>HttpServletDemo2</servlet-name>
    <servlet-class>com.zhou.servlet.HttpServletDemo2</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>HttpServletDemo2</servlet-name>
    <url-pattern>/HttpServletDemo2</url-pattern>
</servlet-mapping>

 第五步 验证(此处webapp的名称为ServletTest)

 http://localhost:8080/ServletTest/HttpServletDemo2

第六步 清理

 运行ClearDemo.sql(更运行InitDemo.sql类似)

USE testdb;
-- 删除user表
DROP TABLE user;
-- 删除testdb库
DROP DATABASE testdb;

问题

 

<think>嗯,用户想要在Java 21中配置Tomcat 10.x和MySQL 8.0的集成环境。首先,我需要确定各个组件的版本兼容性。Java 21是最新的JDK版本,Tomcat 10.x应该支持它,但可能需要确认Tomcat 10的具体版本是否经过测试。MySQL 8.0的话,JDBC驱动需要适配Java 21,可能需要使用最新的Connector/J。 然后,安装步骤的话,用户可能需要先下载JDK 21,配置环境变量,然后安装Tomcat 10.x,修改相关配置,比如CATALINA_HOME或者JAVA_HOME指向JDK 21的路径。接着安装MySQL 8.0,确保服务启动,并创建数据库和用户。之后,可能需要配置Tomcat的数据源,让应用能够连接MySQL,这里涉及到context.xml和web.xml的修改,以及添加JDBC驱动到Tomcat的lib目录。 另外,用户可能遇到的问题包括版本不兼容,比如Tomcat 10是否支持Java 21的新特性,或者Connector/J的版本是否与MySQL 8.0Java 21兼容。还需要注意Java 21是否有已知的问题与Tomcat或MySQL的交互,比如SSL连接的问题,或者时区设置等。 参考引用中的内容,用户之前可能使用过Eclipse、Tomcat 9、MySQL 5.7和JDK 8,现在需要升级到更新的版本。引用里提到过使用宝塔面板或oneinstack来配置环境,但用户这次可能需要手动配置。另外,引用4中提到的docker安装MySQL 8.0可能也是一种选择,但用户可能更倾向于本地安装。 最后,需要确保步骤清晰,分步指导,包括下载链接、配置环境变量、修改配置文件、测试各组件是否正常工作,以及集成后的验证。可能还需要提醒用户检查防火墙设置,确保端口开放,以及如何处理常见错误,比如ClassNotFound或者连接拒绝等。</think>### Java 21与Tomcat 10.x及MySQL 8.0集成部署步骤 #### 1. 环境准备 - **Java 21**:从[Oracle官网](https://www.oracle.com/java/technologies/downloads/)下载JDK 21,安装后配置环境变量: ```bash # Windows示例(系统变量) JAVA_HOME=C:\Program Files\Java\jdk-21 PATH=%JAVA_HOME%\bin;%PATH% ``` Linux/Mac通过`export`命令或修改`~/.bashrc`[^1]。 - **Tomcat 10.x**:从[Apache官网](https://tomcat.apache.org/download-10.cgi)下载Tomcat 10.x,解压后设置`CATALINA_HOME`环境变量指向解压目录[^1][^2]。 - **MySQL 8.0**:从[MySQL官网](https://dev.mysql.com/downloads/mysql/)下载并安装,启动服务后通过命令行或工具(如MySQL Workbench)创建数据库和用户[^4][^5]。 --- #### 2. 配置Tomcat与Java 21集成 - **验证Java版本**:在Tomcat的`bin`目录下,编辑`setenv.bat`(Windows)或`setenv.sh`(Linux/Mac),添加: ```bash export JAVA_HOME=/path/to/jdk-21 export JRE_HOME=$JAVA_HOME ``` 通过`./catalina.sh version`检查是否显示Java 21。 - **调整内存参数**:修改`bin/catalina.sh`(或`catalina.bat`)中的JVM参数: ```bash JAVA_OPTS="-Xms512m -Xmx1024m -Dfile.encoding=UTF-8" ``` --- #### 3. 集成MySQL 8.0 - **添加JDBC驱动**:将MySQL Connector/J 8.0(如`mysql-connector-j-8.0.xx.jar`)复制到Tomcat的`lib`目录。 - **配置数据源**:在`conf/context.xml`中添加数据库连接池: ```xml <Resource name="jdbc/mydb" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://localhost:3306/mydatabase?useSSL=false&serverTimezone=UTC" username="root" password="your_password" maxTotal="50" maxIdle="10"/> ``` 在Web应用的`WEB-INF/web.xml`中引用该资源。 --- #### 4. 验证集成环境 1. **启动Tomcat**:执行`./startup.sh`(或`startup.bat`),访问`http://localhost:8080`确认Tomcat运行正常。 2. **测试数据库连接**:编写简单的JSP/Servlet,通过`DataSource`获取连接并执行查询: ```java Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/mydb"); try (Connection conn = ds.getConnection()) { System.out.println("Connection successful!"); } ``` --- #### 5. 常见问题解决 - **时区问题**:MySQL 8.0需在JDBC URL中添加`serverTimezone=UTC`[^5]。 - **驱动类加载失败**:检查`mysql-connector-j-8.0.xx.jar`是否在Tomcat的`lib`目录。 - **Java 21兼容性**:若出现反射警告,添加JVM参数`--add-opens`调整模块权限。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值