Jsp 如何解决此错误,javax.servlet.ServletException:java.sql.SQLException:未选择数据库
我是webapp开发的新手,我有这个代码login.jsp和registration.jsp这些jsp应该允许我登录和注册,但事实并非如此,我每次尝试登录或注册时都会收到这个错误消息。javax.servlet.ServletException:java.sql.SQLException:未选择任何数据库。这是我的代码,请让我知道该怎么做,纠正我哪里错了。谢谢你的帮助Jsp 如何解决此错误,javax.servlet.ServletException:java.sql.SQLException:未选择数据库,jsp,Jsp,我是webapp开发的新手,我有这个代码login.jsp和registration.jsp这些jsp应该允许我登录和注册,但事实并非如此,我每次尝试登录或注册时都会收到这个错误消息。javax.servlet.ServletException:java.sql.SQLException:未选择任何数据库。这是我的代码,请让我知道该怎么做,纠正我哪里错了。谢谢你的帮助 CREATE TABLE `members` ( `id` int(10) unsigned NOT NULL auto_i
CREATE TABLE `members` (
`id` int(10) unsigned NOT NULL auto_increment,
`email` varchar(45) NOT NULL,
`uname` varchar(45) NOT NULL,
`password` varchar(45) NOT NULL,
`passwordsignup_confirm` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
login.jsp
<%@ page import ="java.sql.*" %>
<%
String userid = request.getParameter("uname");
String email = request.getParameter("emailsignup");
String password = request.getParameter("password");
Class.forName("com.mysql.jdbc.Driver");
Connection con =
DriverManager.getConnection("jdbc:mysql://localhost:3306","root","shaddy");
Statement st = con.createStatement();
ResultSet rs;
rs = st.executeQuery("select * from members WHERE uname='" + userid + "','" + email + "' and password='" + password + "'");
if (rs.next()) {
session.setAttribute("userid", userid);
out.println("welcome " + userid);
out.println("<a href='logout.jsp'>Log out</a>");
response.sendRedirect("success.jsp");
} else {
out.println("Invalid password <a href='index.jsp'>try again</a>");
}
%>
Registration.jsp
<%@ page import ="java.sql.*" %>
<%
String username = request.getParameter("uname");
String email = request.getParameter("emailsignup");
String password = request.getParameter("password");
String passwordsignup_confirm = request.getParameter(" passwordsignup_confirm ");
String usernamesignup = request.getParameter("usernamesignup");
String passwordsignup = request.getParameter("passwordsignup");
Class.forName("com.mysql.jdbc.Driver");
Connection con =
DriverManager.getConnection("jdbc:mysql://localhost:3306","root","shaddy");
Statement st = con.createStatement();
//ResultSet rs;
int i = st.executeUpdate("insert into members(uname, email, password,) values ('" + username + "','" + email + "','" +password + "','" + passwordsignup_confirm + "'");
if (i > 0) {
session.setAttribute("userid", username);
response.sendRedirect("welcome.jsp");
out.print("Registration Successfull!"+"<a href='index.jsp'>Go to Login</a>");
} else {
response.sendRedirect("index.jsp");
}
%>
URL中缺少数据库名称
DriverManager.getConnection("jdbc:mysql://localhost:3306","root","shaddy");
应该是这样的,
"jdbc:mysql://localhost:3306/test","root","shaddy"
其中test是您的数据库名称
更新:
还有这个疑问,
int i = st.executeUpdate("insert into members(uname, email, password,) values ('" + username + "','" + email + "','" +password + "','" + passwordsignup_confirm + "')");
在其中添加如上所述的大括号。您必须在用于连接的URL中添加数据库的名称:
drivermanager.getconnection("localhost:3306/《dbname》");
希望这是有用的 圣克里斯,谢谢你的帮助!我已经添加了现在解决的数据库名称,但问题是弹出了upcom.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解在第1行@San Krish处使用接近'values'null','null','null','null','null'的正确语法,非常感谢我遵循了您的更新答案,现在一切都很好。欢迎您:。如果它对你有所帮助,请考虑接受答案。