2014-10-19 3 views
0

Я пытаюсь подключить базу данных MySQL с Java (Eclipse) вот мой кодjava.sql.SQLException: Не найдено подходящего драйвера для url + dbName, UserId =? & Password =?

Controller.java 

package classes; 



import java.sql.Connection; 
import java.sql.PreparedStatement; 

import java.sql.ResultSet; 
import java.sql.DriverManager; 

import java.sql.SQLException; 


public class Controller{ 

    public static boolean validate(String userId, String Pass){ 
     boolean status = false; 
     Connection con = null; 
     PreparedStatement pst = null; 
     ResultSet rs = null; 
     String url = "jdbc:mysql://localhost/"; 
     String dbName = "meeting_planner"; 
     String driver = "com.mysql.jdbc.Driver"; 
     String UserId = "123"; 
     String password = "hhh"; 
     try { 
      Class.forName(driver).newInstance(); 
      con = DriverManager.getConnection("url+dbName,UserId=?&password=?"); 
      pst = con.prepareStatement("select * from administrator where AId=? and Password=?"); 
      pst.setString(1,userId); 
      pst.setString(2, Pass); 
      rs = pst.executeQuery(); 
      status = rs.next(); 
     } 
     catch(Exception e){ 
      System.out.println(e); 
     } finally { 
      if(con!=null){ 
       try { 
        con.close(); 
       } 
       catch (SQLException e){ 
        e.printStackTrace(); 
       } 
      } 
      if(pst!=null){ 
       try { 
        pst.close(); 
       } 
       catch(SQLException e){ 
        e.printStackTrace(); 
       } 
      } 

     } 
     return status; 
    } 
} 

И administrator.java является

package classes; 

import java.io.IOException; 

import java.io.PrintWriter; 

import javax.servlet.RequestDispatcher; 

import javax.servlet.ServletException; 

import javax.servlet.http.HttpServlet; 

import javax.servlet.http.HttpServletRequest; 

import javax.servlet.http.HttpServletResponse; 

import javax.servlet.http.HttpSession; 

public class administrator extends HttpServlet { 

    private static final long serialVersionUID = 1L; 
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    { 
     response.setContentType("text/html"); 
     PrintWriter out = response.getWriter(); 
     String i = request.getParameter("Userid"); 
     String p = request.getParameter("userpassword"); 
     HttpSession session = request.getSession(false); 
     if(session!=null) 
      session.setAttribute("Administrator Id",i); 
     if(Controller.validate(i,p)){ 
      RequestDispatcher rd = request.getRequestDispatcher("creat_date.jsp"); 
      rd.forward(request, response); 
     } 
     else { 
      out.print("<p style=\"color:red\">Sorry User id or Password error!</p>"); 
      RequestDispatcher rd = request.getRequestDispatcher("index.jsp"); 
      rd.include(request, response); 
     } 


    } 
} 

имя базы данных MySQL является meeting_planner имя таблицы: администратор и имя атрибута: AId, Password, Name, Email index.jsp - это страница входа в систему, в которой он получает значения атрибутов AId и Password и аутентифицирует данные из базы данных, а в дальнейшем элемент управления - creat_date.jsp

ответ

1

Вы не используете конкатенацию строк. Попробуйте изменить от:

con = DriverManager.getConnection("url+dbName,UserId=?&password=?"); 

To:

con = DriverManager.getConnection(url + dbName, UserId, password); 
+0

В текущем коде OP нет даже конкатенации строк, это простая строка, которая выглядит как неправильная конкатенация строк. –

+0

спасибо, что я просто отредактировал свой код ... но теперь он дал еще одну ошибку, которая является «java.sql.SQLException: доступ запрещен для пользователя 123 '@' localhost '(с использованием пароля: YES)« –

2

Изменить

con = DriverManager.getConnection("url+dbName,UserId=?&password=?"); 

в

con = DriverManager.getConnection(url+dbName, UserId, password); 

Вы должны использовать верблюжьего называть переменные. http://en.wikipedia.org/wiki/CamelCase

+0

спасибо, я просто редактирую свой код ... но теперь это дало еще одну ошибку: «java.sql.SQLException: Доступ запрещен для пользователя 123 '@' localhost '(с использованием пароля: YES)" –

+0

Это означает, что 'hhh' не является правильным паролем для пользователя' 123'. Убедитесь, что пользователь и/или пароль верны. – dazito

+0

Я просто изменил userId = "123" на 111 и пароль = "hhh" на садию, так как в базе данных есть только одна запись, которая является AId = 111 и Password = sadia, но теперь она выдала сообщение об ошибке «Внутренняя ошибка произошел во время: «Запуск клиента». java.lang.NullPointerException », а в консоли он дал ошибку« java.sql.SQLException: доступ запрещен для пользователя '111' @ 'localhost' (с использованием пароля: YES) " –

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