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

版权声明: https://blog.csdn.net/dadan1314/article/details/84843362

 环境

  •    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','[email protected]'),
	('erbai','[email protected]'),
	('sansha','[email protected]');

 第三步 编写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;

问题

猜你喜欢

转载自blog.csdn.net/dadan1314/article/details/84843362
今日推荐