看了很多前辈们的,可能是刚学吧,感觉里面很多使用教程用不上,于是东拼西凑终于弄了一个相对完善的web和mysql连接的完整过程(基于eclipse jee 2018-09下创建web):
在mysql和tomcat安装配置好情况下:
1:引入tomcat环境:
File->Other->Server->Server->选择好自己所安装的tomcat版本->Finish
2:创建web工程:
File->Other->Web->Dynamic Web Project
3:创建java web工程的servlet:
自己所建的项目->Java Resources->右击src->new->servlet->取名(java package 和 classname)随意
4:WebContent的WEB-INF的web.xml完善:
5:mysql驱动设置,驱动最好新版不然要挂掉(mysql-connector-java-5.1.47-bin.jar):
首先:把下载好的mysql驱动拷贝到自己的tomcat目录下的lib目录里面(没有放置里面,之后的class.forname(driver)会报错异常)
其次:自己所建的项目->Java Resources->Libraries->JRE System Library->右键Build Path->Configure Build Path->在Libraries选项卡下(->单击Modulepath右侧灰字即可点击)->Add External JARs->引入mysql的连接驱动包(PS:tomcat的lib下的mysql驱动)
6:创建jsp或者HTML:
自己所建的项目->右键->new->JSP File->命名->Finish。
创建成功后在WebContent里面
7:重写doGet()或doPost()
package test;
import java.io.IOException;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mysql.jdbc.Statement;
@WebServlet("/_test")
public class _test extends HttpServlet {
private static final long serialVersionUID = 1L;
// 声明一个驱动字符串,注意大小写!
public static String drive = "com.mysql.jdbc.Driver";
// 声明与数据库连接的路径字符串,其中test是数据库名
public static String url = "jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8";
// 声明数据库使用对象的变量,当前为root对象
public static String root = "root";
// 声明数据库连接所需的密码
public static String password = "";
public _test() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 响应前台的name属性为User_Name的标签,获取其文本内容
String UserName = request.getParameter("User_Name");
// 响应前台的name属性为PassWord的标签,获取其文本内容
String PassWord = request.getParameter("PassWord");
// 响应前台的name属性为Sex的标签,获取其文本内容
String Sex = request.getParameter("Sex");
// 声明一个数据库连接变量,初始化为null
java.sql.Connection connection = null;
try {
// 实现驱动,但是必须首先将mysql的驱动拷贝到tomcat下的lib文件而且从该路径引用该mysql驱动
Class.forName(drive);
// 设置连接字符串
connection = DriverManager.getConnection(url, root, password);
// statement:声明。该声明对象被 数据库连接字符串下的创建声明所实例化,之后被声明的对象便能执行数据库操作
Statement statement = (Statement) connection.createStatement();
// 给字符串赋予插入对应表对应字段(因为有自增所以必须加对应字段)的对应内容
String select1 = "insert into T_User(U_UserName,U_PassWord,U_Sex) values('" + UserName + "','" + PassWord
+ "','" + Sex + "')";
// 声明的对象执行数据库操作
statement.execute(select1);
// forward()是request中的参数继续传递,redirect()则是重新生成request了。
// 类似ASP.NET MVC里面的view(""),而后者类似于里面的redirectview();一样
request.getRequestDispatcher("Register.html").forward(request, response);
} catch (ClassNotFoundException e) {
// 如果驱动失败,则获取异常
e.printStackTrace();
} catch (SQLException e) {
// 数据库操作异常
e.printStackTrace();
}
}
}
8:mysql数据库表设计:
9:执行结果:
10:注意:
在配置web.xml时候,如果是直接Ctrl+c和Ctrl+V过去的话,极有可能会报错,所以最好servlet和servletmapping都是直接输入进去的。
一边使用一边写的这个文档,如有不足,联系交流