在运行jsp插入数据一直报错Unknown database 'testdb',Mysql是8.0的,试过其他办法都没有用。页面报500错误
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
添加图书信息
请输入图书信息
${message}<br>
<form action="addBook" method="post">
书号:<input type="text" name="isbn"/><br>
书名:<input type="text" name="title"/><br>
价格:<input type="text" name="price"/><br>
<input type="submit" value="确定"/><input type="reset" value="重置"/>
</form>
package servlet;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
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("/addBook")
public class BookServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
Connection dbconn = null;
@Override
public void init() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
dbconn = DriverManager.getConnection(
"jdbc:mysql://127.0.0.1:3306/testDB?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT&allowPublicKeyRetrieval=true",
"root", "123456");
} catch (ClassNotFoundException el) {
getServletContext().log("驱动程序类找不到");
} catch (SQLException e2) {
System.out.println(e2);
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String isbn = request.getParameter("isbn");
String title = request.getParameter("title");
float price = Float.parseFloat(request.getParameter("price"));
String message = "";
try {
String sql = "INSERT INTO books (isbn,title,price) VALUES(?,?,?)";
PreparedStatement pstmt = dbconn.prepareStatement(sql);
pstmt.setString(1, isbn);
pstmt.setString(2, title);
pstmt.setFloat(3, price);
int num = pstmt.executeUpdate();
if (num == 1) {
message = "插入记录成功";
} else {
message = "插入记录失败";
}
request.setAttribute("message", message);
request.getRequestDispatcher("jsp/add-book.jsp").forward(request, response);
} catch (SQLException e) {
message = e.getMessage();
request.setAttribute("message", message);
request.getRequestDispatcher("jsp/add-book.jsp").forward(request, response);
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
super.doGet(req, resp);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable = "true">
<Resource
name="jdbc/testDB"
type="javax.sql.DataSource"
maxActive="4"
maxIdle="2"
username="root"
password="123456"
maxwait="5000"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/testdb?useSLL=true&useUnicode=true&allowPublicKeyRetrieval=true;characterEncoding=utf-8"
/>
</Context>
``