新手 实在不明白哪里出了问题,一个注册页面通过Reservlet连接数据库,但是连接不上数据库,已经导入了驱动,谢谢大家帮忙看看
- Java code
package com.lyq;import java.io.IOException;import java.io.PrintWriter;import java.sql.*;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ReServlet extends HttpServlet { private Connection conn; public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); String userName=request.getParameter("userName"); String passWord=request.getParameter("passWord"); String sex=request.getParameter("sex"); String question=request.getParameter("question"); String answer=request.getParameter("answer"); String email=request.getParameter("email"); if(conn!=null){ try{ String sql="insert into tb_user(userName,passWord,sex,question,answer,email) values(userName,passWord,sex,question,answer,email)"; PreparedStatement ps=conn.prepareStatement(sql); ps.executeUpdate(); PrintWriter out=response.getWriter(); out.print(userName+"注册成功!"); } catch(Exception e){ e.printStackTrace(); } } else{ response.sendError(500, "数据库连接错误"); } } public void init() throws ServletException { // Put your code here super.init(); try{ Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/text"; conn=DriverManager.getConnection(url, "root", "knight"); } catch(Exception e){ e.printStackTrace(); } }}
然后页面显示数据库连接错误,就是conn找不到出现的情况
------解决方案--------------------------------------------------------
可不可以把连接数据库,获得连接再封装成一个类。在doPost()里面调用该类,获得连接。然后再处理请求。
------解决方案--------------------------------------------------------
将connection的定义以及初始化都放到dopost方法中,不要定义成成员变量
------解决方案--------------------------------------------------------
我感觉,还不如用一个类来专门实现数据库的连接,当需要的时候直接调用就可以了。你这样搞不太好的,不过总得有个学习的过程呀
------解决方案--------------------------------------------------------
你好,我在我的eclipse上实验了你的代码没有上述问题,希望我的结果对你有所帮助。