【发布时间】:2016-01-16 16:22:15
【问题描述】:
我正在尝试连接到 Java Servlet 中的数据库,但无法连接。我在谷歌上搜索,每个网站都显示不同的方式,我不知道为什么。
这是我尝试连接的代码,但没有任何(数据)进入 MySQL 数据库行。
public class DBConnection{
private static final long serialVersionUID = 1L;
private final Connection connection;
private final String dbURL = "jdbc:mysql://localhost:3306/Servlet";
private final String user = "root";
private final String pwd = "";
public DBConnection() throws ClassNotFoundException, SQLException{
Class.forName("com.mysql.jdbc.Driver");
this.connection = DriverManager.getConnection(dbURL, user, pwd);
}
public Connection gC(){
return this.connection;
}
}
这是我试图在数据库中插入数据(但数据没有添加到数据库)。
public class ReServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
try{
String uName=req.getParameter("uName");
String uEmail=req.getParameter("uEmail");
String uPass=req.getParameter("uPass");
DBConnection conn=new DBConnection();
PreparedStatement ps;
ps = conn.gC().prepareStatement("insert into users(name,email,password) values (?,?,?)");
ps.setString(1, uName);
ps.setString(2, uEmail);
ps.setString(3, uPass);
ps.execute();
}catch(SQLException | ClassNotFoundException se){
se.printStackTrace();
}finally{
}
}
}
我也请求大家,请给我简单易用的数据库连接示例,关于每个网站都显示完整注册或任何其他系统。但我只想在我的代码中尝试简单的数据库连接示例。
已编辑
通过将se.printStackTrace(); 替换为throw new RuntimeException(se);,我得到了这个异常java.lang.RuntimeException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
【问题讨论】:
-
为什么
DBConection扩展HTTPServlet?你有什么例外吗? -
@Jens 对不起,我尝试了不同的方式,忘记删除它。我在哪里可以看到异常?编译期间什么都没有。
-
您可以在服务器的日志文件中看到它
-
@Jens 抱歉,我是 Servlet 的新手,我正在使用 netbeans 和 GlassFish,在哪里可以看到?在哪个文件夹中?
-
仅用于调试,您可能需要考虑将
se.printStackTrace()替换为throw new RuntimeException(se),以便在浏览器中显示异常。顺便说一句,最可能的原因是您的密码为空。
标签: java mysql database servlets jdbc