【小白求助】idea右侧database连接mysql成功,mysql驱动加载成功,url用户名密码正确但getConnection就是进不去
工具:idea、mysql
模式:jsp+servlet+javabean
思路:index为登录页面,插入js判断跳转到用户/管理员处理页面,userLogin_result调用userDAO检验账号密码,userDAO调用ConnDB获取数据库连接
项目结构:
以下是源码
index.jsp
登录界面
图书管理系统
普通用户
管理员
script.js
functionlogin(){
if(form1.id.value===''){
alert('账号不能为空!');
returnfalse;
}
elseif(form1.password.value===''){
alert('密码不能为空!');
returnfalse;
}
else{
if(form1.type.value==='users')
form1.action="/servlet/userLogin_result";
else
form1.action="/servlet/adminLogin_result";
}
form1.submit();
}
window.onload=function(){
vari3=document.getElementsByClassName('input_3');
for(vari=0;i
userLogin_result.java
packageservlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
importjava.io.IOException;
importDAO.UserDao;
publicclassuserLogin_resultextendsHttpServlet{
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
UserDaouser=newUserDao();
StringId=request.getParameter("id");
StringPassword=request.getParameter("password");
intid=Integer.parseInt(Id);
intpassword=Integer.parseInt(Password);
try{
if(user.checkAccount(id,password)){
response.sendRedirect("../user.jsp");
}
else{
response.sendRedirect("../index.jsp");
}
}catch(Exceptione){
e.printStackTrace();
}
}
}
UserDao.java
packageDAO;
importjava.sql.*;
importcom.arvin.db.ConnDB;
publicclassUserDao{
Connectionconn=null;
ConnDBdb=newConnDB();
//检验账号密码是否相匹配
publicbooleancheckAccount(intid,intpassword)throwsException{
ConnDB.getConnection();
Stringsql="SELECTU_PASSWORDFROMUSERWHEREID=?";
PreparedStatementps=conn.prepareStatement(sql);
ps.setInt(1,id);
ResultSetrs=ps.executeQuery();
ps.close();
ConnDB.closeDb();
returnpassword==rs.getInt("u_password");
}
}
ConnDB.java
packagecom.arvin.db;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.Statement;
importjava.util.Properties;
publicclassConnDB{
//数据库的用户名和密码
publicstaticStringusername="root";
publicstaticStringpassword="1999";
//获得连接对象,statement对象和结果集
publicstaticConnectionconn=null;
publicstaticStatementstate=null;
publicstaticResultSetrs=null;
//数据库驱动,在刚开始下载的文件中
publicstaticStringdriver_class="com.mysql.cj.jdbc.Driver";
//oilServer是数据库名,其他的不变
publicstaticStringurl="jdbc:mysql://localhost:3306/booksystem?serverTimezone=GMT";
//获得数据库的连接的方法
publicstaticConnectiongetConnection(){
try{
Class.forName(driver_class);//指定连接类型
System.out.println("loaddbdriversuccess......");
Propertiesinfo=newProperties();
info.setProperty("user",username);//
info.setProperty("password",password);
conn=DriverManager.getConnection(url,info);//获取连接
System.out.println("getdbconnectionsuccess....");
}catch(Exceptione){
e.printStackTrace();
}
returnconn;
}
//执行数据库的查询操作,返回的为结果集
publicstaticResultSetexcuteQuery(Stringsql){
try{
state=conn.createStatement();
rs=state.executeQuery(sql);
returnrs;
}catch(Exceptione){
e.printStackTrace();
}
returnrs;
}
//关闭数据库
publicstaticvoidcloseDb(){
try{
if(rs!=null)
rs.close();
if(conn!=null)
conn.close();
if(state!=null)
state.close();
}catch(Exceptione){
e.printStackTrace();
}
}
}
index填写表单选择普通用户登录后显示error500
mysql数据库驱动加载成功:
但tomcat日志没有显示getdbconnectionsuccess....,说明应该是卡在了获取连接阶段
已知url用户名密码确认无误
请教各位大神这究竟是哪里出了问题?
分 -->
|