IDEA+Tomcat+JSP+MariaDB的开发环境搭建

IDEA+Tomcat+JSP+MariaDB的开发环境搭建

四月 16, 2021

因为最近的实验是结合JSP与数据库做课程实验,而老师给的开发环境不知是什么时代的上古工具;又因为自己的平台有些特殊,配置方面遇到了一些小问题,网上也没有可靠的解决方法,故进行一次记录。

环境说明:

操作系统:Arch Linux

Tomcat版本:Tomcat9

数据库版本:MariaDB 10.5.9

数据库版本信息

数据库Java驱动版本:mariadb-java-client-2.7.2.jar

MariaDB的Java驱动下载 MySQL的Java驱动下载

由于MariaDB与MySQL是兼容的,所以你也可以使用MySQL的驱动,不过这里还是建议使用MariaDB提供的。注意这里驱动的不同会使后面导入jar包的语法有细微的差别!!!

IDEA配置Tomcat

好的,我已经默认你安装完了Tomcat9,并且能够正常工作,能够正常访问。如果这一步你还没有做完,请进行百度。

首先,让我们关闭Tomcat9:sudo systemctl stop tomcat9,因为后面开发环境使用Tomcat9时IDEA会直接执行Tomcat9的“副本”,也就是不会直接调用系统的Tomcat9,而是类似于拷贝了一份到你的工作目录下,所有的发布都在这。如果此时调用系统的systemctl命令开启Tomcat9,会使端口冲突。(Tomcat默认端口是8080)

首先新建一个JavaEE的Web项目

javaEEWeb

在IDEA中配置Tomcat服务器

点击下拉菜单,选择Edit Configurations.

配置服务器1

依次选择添加一个服务器,选择Tomcat,本地,接下来点击图中的Configure

配置服务器2

上图中第三部点进去之后填写你的服务器安装地址:Linux用户可以使用whereis tomcat9来查看Tomcat9的的安装位置。

填写服务器安装地址

测试你的服务器

确保你的服务器是关闭的,我们接下来将使用IDEA启动我们的服务器。

启动服务器

如果你是Linux用户,这里可能会遇到一个问题:权限不够,无法启动。根据IDEA的错误提示(用红色的框框进行标注的),可以看出是相关文件权限不够,IDEA无法复制Tomcat9的文件到我们的工作目录。我们可以使用Linux的chmod命令对相关文件加入其他人的可读权限即可。这是我的Tomcat9文件放行可读权限后的情况:

首先:sudo cd /usr/share/tomcat9/conf

接着:sudo chmod 644 catalina.policy catalina.properties context.xml jaspic-providers.xml jaspic-providers.xsd logging.properties server.xml tomcat-users.xml tomcat-users.xsd web.xml

放行权限

放行完成后我们就可以通过IDEA启动我们的服务器了。而且,在上面的图中,我们设置了自动更新类和资源,所以我们编辑完源文件后不必重启服务器,只需要点击浏览器图标或者刷新网页即可更新。

连接MariaDB数据库进行测试

首先保证你的数据库已经完成了安装和初始化工作,如果没有的话请进行搜索。这里只进行讨论如何连接。

首先在数据库中新建一个表

以我的数据库为例,数据库名称为:MyStudent;表的名称为:jspdb;数据库内容如下:

数据库信息

在IDEA中给工程添加数据库驱动jar包

在工程的WEB-INF目录下,新建一个名为lib的文件夹,文件夹中放入我们下载好了的mariadb的驱动jar包。

添加下载的jar文件

接着打开本工程的目录结构:

打开工程目录结构

接着添加我们的jar驱动到该工程目录下:

添加驱动jar

选择刚刚存放jar的文件,接着勾选上即可:

选择jar包

在JSP页面中测试连接

在IDEA的index.jsp页面写入以下内容:(注意区分你的表和我的表的不同之处)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>连接数据库</title>
</head>
<body>
<h3>测试连接数据库</h3>
<%@page import="java.sql.*" %>


<%
String DRIVER_PATH = "org.mariadb.jdbc.Driver"; //驱动路径
String URL = "jdbc:mysql://localhost:3306/MyStudent?serverTimezone=GMT"; //包括数据库的名称MyStudent
String USER_NAME = "knosql"; //数据库用户名
String PASSWORD = "76KLOP"; //数据库密码
Connection con = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
Class.forName(DRIVER_PATH);
con = DriverManager.getConnection(URL, USER_NAME, PASSWORD);
System.out.println(con);
// 判断数据库是否连接成功
if (con != null) {
out.println("数据库连接成功");
} else {
out.println("数据库连接失败");
}
String sql = "SELECT * FROM jspdb"; //包括数据库的表的名称

preparedStatement = con.prepareStatement(sql);
resultSet = preparedStatement.executeQuery();
} catch (Exception e) {
e.printStackTrace();
}
%>

<%
//打印获取到的数据库的内容
while (resultSet.next()) {
%>

<p>商品名称:<% out.print(resultSet.getString("goodsname"));%></p>
<p>商品价格:<%=resultSet.getString("prise")%>
</p>
<hr>
<%
}
//关闭数据库
resultSet.close();
preparedStatement.close();
%>

</body>
</html>

注意我们MariaDB的数据库驱动路径的写法是:org.mariadb.jdbc.Driver

而如果你使用的是MySQL数据库的驱动路径的写法应该是:com.mysql.jdbc.Driver

如果测试成功的话,我们点击浏览器图标就可以看到连接后的结果啦:

数据库的连接结果

使用MariaDB的一个好处就是,它与MySQL的数据库驱动是兼容的,而且官方也进行了开源,我们可以直在IDEA的jar文件处点击小三角箭头查看其源代码。