2013-09-30 2 views
0

Я новичок в sql, и я использую netbeans и mysql.servlet netbeans mysql connect

Я пытаюсь сделать сервлет, который будет проверять данные для входа в базу данных.

Я нашел код oline, но он не взаимодействует с базой данных. Также каждый пример, который я нахожу, тоже не работает. Что я делаю не так.

Вот некоторые из кода

package login; 

import java.io.*; 

import javax.servlet.*; 
import javax.servlet.http.*; 
import java.sql.*; 

/** 
* 
* @author john 
*/ 
public class LoginServlet extends HttpServlet { 



    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 

     String userName = request.getParameter("userName"); 


     if (Validate.CheckUser(userName)) { 
      RequestDispatcher rs = request.getRequestDispatcher("Welcome"); 
      rs.forward(request, 
      response   
      ); 
     } 
else 
{ 
      RequestDispatcher rs = request.getRequestDispatcher("index.html"); 
      rs.include(request , response); 
     } 
} 
} 

И

package login; 

import java.sql.*; 

/** 
* 
* @author john 
*/ 
public class Validate { 

    public static boolean CheckUser(String userName) { 
     boolean st = false; 

     try { 
      Class.forName("com.mysql.jdbc.jdbc2.optional.MysqlDataSource"); 

      Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mynewdatabase?zeroDateTimeBehavior=convertToNull", "root", "admin"); 

      PreparedStatement ps = con.prepareStatement("SELECT userName FROM userData where userName=?"); 
      ps.setString(1, userName); 
      ResultSet rs = ps.executeQuery(); 
      st = rs.next(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return st; 
    } 
} 

Какие дополнительные шаги мне нужно предпринять, чтобы получить это для подключения к базе данных. Я использую последнюю версию netbeans.

Я уже поместил файл 5.1.26-bin.jar в библиотеку. Mynewdatabase работает очень хорошо (я подключался с использованием пула соединений JSP до этого в другом приложении).

Это приложение не будет подключаться к базе данных. Я не использую пул соединений здесь.

Любая помощь будет отличной.

+0

Что именно ваша проблема? –

+0

Убедитесь, что вы указали правильное имя драйвера и имя базы данных. –

ответ

2

Подключение к базе данных не имеет ничего общего с NetBeans или сервлеты. Я бы посоветовал вам использовать класс базы данных, прежде чем добавлять ненужные осложнения.

Это поможет, если вы разместите ошибку. «Не работает» не помогает.

Класс драйвера для MySQL не подходит для меня. Должно быть com.mysql.jdbc.Driver.

Но в коде есть много неправильного кода.

Ваш запрос возвращает имя пользователя. Нет пароля? Не полезно.

Приложение не должно обращаться к базе данных с использованием пароля администратора root. Создайте идентификатор для приложения и только GRANT достаточно для выполнения своих задач.

Вы не закрываете ресурсы в своем методе. У вас будут проблемы, если вы когда-нибудь запустите это.

Вернитесь, если вы получите его на работу вообще.

+0

Ни одно приложение не должно обращаться к базе данных, используя пароль администратора root. Создайте идентификатор для приложения и только GRANT достаточно для выполнения своих задач. Как мне это сделать? Учебники NetBeans, которые я сделал, используют корень как пользователь для доступа к базам данных. –

+0

Прекратите полагаться на NetBeans и плохо сделанные обучающие программы: http://dev.mysql.com/doc/refman/5.0/en/create-user.html – duffymo

0

Чтобы извлечь из базы данных, вы должны использовать этот способ

while(rs.next()) 
{ 
String coulm1=rs.getString(1); 
String column2=rs.getString(2); 
} 
0

Код должен выглядеть так:

Class.forName("com.mysql.jdbc.Driver"); 

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mynewdatabase", "root", "admin"); 

Вам также нужно добавить MySQL драйвер банку файл в путь к классам. Сначала попробуйте подключиться к базе данных с простыми параметрами в базе данных url, а затем перейдите к сложным, когда вы будете полностью готовы!