2014-10-10 19 views
-1

Я новичок в разработке webapp, у меня есть этот код login.jsp и registration.jsp, эти jsps должны позволять мне регистрировать in и register, но это не так, я получаю это сообщение об ошибке, когда когда-либо пытаюсь войти или зарегистрироваться. "javax.servlet.ServletException: java.sql.SQLException: не выбрана база данных". прикрепленный к этому - мой код, пожалуйста, дайте мне знать, что делать, исправьте меня, где я ошибаюсь. Спасибо за помощь.Как я могу решить эту ошибку, javax.servlet.ServletException: java.sql.SQLException: не выбрана база данных

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"); 
    } 
%> 

ответ

2

Вы пропускаете имя базы данных в 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 + "')"); 

добавить скобки, как и выше в нем.

+0

Сан-Криш, спасибо за помощь! Я добавил имя базы данных, которое разрешено сейчас, но проблема возникает. – beto

+0

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования близких значений) ('null', 'null', 'null', 'null' 'в строке 1 – beto

+0

, учитывая возможность опроса и ответа, если она решит вашу проблему –

1

Вы должны добавить название вашей БД в URL, используемый для подключения:

drivermanager.getconnection("localhost:3306/《dbname》"); 

Надежда это было полезно!

 Смежные вопросы

  • Нет связанных вопросов^_^