当前位置: 代码迷 >> Java Web开发 >> 新手问JSP连接MYSQL有关问题
  详细解决方案

新手问JSP连接MYSQL有关问题

热度:5434   发布时间:2013-02-25 21:17:57.0
新手问JSP连接MYSQL问题
新手 实在不明白哪里出了问题,一个注册页面通过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上实验了你的代码没有上述问题,希望我的结果对你有所帮助。
  相关解决方案