servlet远程访问mysql数据库并部署到阿里云服务器

我的环境:

  • 本地:windows10 + tomcat8.5 + jdk1.8 + eclipse(J2EE)
  • 服务器:ubuntu16.04 + tomcat8.5 + jdk1.8 + mysql5.7
  • 驱动:mysql-connector-java-8.0.16 ,属于平台独立的 jdbc 驱动包,向下兼容,在 windows 系统和 linux 系统下都可以使用。
    下载连接:https://pan.baidu.com/s/1bYo45Wf_ibosAoZ36RlJfQ
    提取码:1j4b

通常我们的项目都是在本地编写调试成功后才会部署到服务器,但大部分情况下本地和服务器的环境还是不同的,为了方便部署项目,我这里采用了远程访问 mysql 数据库的方法,并且 jdbc 驱动也采用了平台独立驱动,由于我这里采用远程访问数据库,也可以直接使用对应服务器平台的 jdbc 驱动包。

下面结合一个 demo 来实现本地远程访问数据库,并通过 eclipse 生成 war 文件部署到服务器运行。

  1. 新建 Dynamic web project,名为 DB,并创建一个 servlet,名为 Test,并在你服务器数据库中建好表。
  2. 为你的项目导入 jdbc 驱动:
    将下载好的驱动拖入 WebConten–>WEB-INF–>lib 文件夹中即可。
  3. 编写 servlet 代码 Test.java 代码如下:
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Test")
public class Test extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	private String id;
	private String name;
       
    public Test() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	      try {
	      	  //下面11.111.111.111部分是你的ip
			  String url = "jdbc:mysql://11.111.111.111:3306/my?serverTimezone=UTC";
			  String usr = "root";
			  String password = "123456";
			  //因为使用的是8.0驱动,注册驱动会不一样
			  System.out.println("加载驱动...");
			  Class.forName("com.mysql.cj.jdbc.Driver");
			  System.out.println("加载驱动成功");
			  
			  Connection conn = DriverManager.getConnection(url,usr,password);
			  Statement stmt = conn.createStatement();
			  ResultSet rs =  stmt.executeQuery("select * from s");
			  
			  rs.next();
			  id = rs.getString(1);
			  name = rs.getString(2);  
			  
		  } catch (Exception e) {
			  System.out.println("加载驱动失败");
			  e.printStackTrace();
		  }
	 
	      //输出到网页
	      response.setContentType("text/html;charset=utf-8");
	      PrintWriter out = response.getWriter();
	      out.println("<h1>" + "学号 "+ id + "</h1>");
	      out.println("<h1>" + "姓名 "+ name + "</h1>");
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

使用 jdbc8.0 驱动注意事项:

  • String url = “jdbc:mysql://11.111.111.111:3306/my?serverTimezone=UTC”;
    一定要加上 ?serverTimezone=UTC ,不然会出现错误。
    11.111.111.111部分填写你服务器 ip 。
    如何开启数据库的远程访问权限,请访问:https://blog.csdn.net/weixin_43851639/article/details/94143641
  • Class.forName(“com.mysql.cj.jdbc.Driver”);
    加载驱动方式不同。

3.在 WebContent——>WEB-INF——> web.xml 中,编辑 web.xml 文件。(点击左下方的 Source)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>DB</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
    <servlet-name>Test</servlet-name>
    <servlet-class>Test</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Test</servlet-name>
    <url-pattern>/Test</url-pattern>
  </servlet-mapping>
</web-app>

4.本地编译运行,出现下图则说明成功了。
在这里插入图片描述
5.生成 war 文件,把项目部署到服务器。tomcat 会自动解压 war 文件。
右键项目名——>Export——>WAR file,选择文件夹,生成 war 文件。

  • 如果部署到本地,则将该 war 文件放在你本地 tomcat 中 webapps 目录下

  • 如果部署到服务器, war 文件你可以指定文件夹,我这里部署到服务器,直接将 war 文件放在桌面上,然后通过 xftp 将 war 文件上传到服务器 tomcat 中 webapps 目录下。

6 部署成功后,在本地浏览器输入:ip + :8080/DB/Test,出现结果和本地浏览效果一致则说明成功了。
在这里插入图片描述

发布了38 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43851639/article/details/94155786