JDBC подключение MySQL к HTML - PullRequest
1 голос
/ 02 марта 2012

Привет у меня есть следующий файл для подключения базы данных MySQL к файлам HTML. Но у меня проблемы с подключением. Может кто-нибудь сказать мне, где я нахожу места. Что я должен заменить "jdbc: mysql: // localhost / zulfiqar", чтобы он работал на моем компьютере? где я могу найти это? И есть ли что-то еще, что я должен изменить, чтобы это работало на моем компьютере? это был фрагмент кода, который я нашел в интернете и который я пытаюсь заставить работать, чтобы я мог понять, как это сделать, но я изо всех сил. Заранее спасибо!

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

public class ServletUserEnquiryForm extends HttpServlet{
public void init(ServletConfig config) throws ServletException{
super.init(config);
}
/**Process the HTTP Get request*/
public void doPost(HttpServletRequest req, 
HttpServletResponse res) throws ServletException,
IOException{
String connectionURL = "C:\Program Files(x86)\MySQL Server 5.0\bin\mysql.exe";
Connection connection=null;
ResultSet rs;
res.setContentType("text/html");
PrintWriter out = res.getWriter();
//get the variables entered in the form
String uId = req.getParameter("userId");
String fname = req.getParameter("firstname");
String sname = req.getParameter("surname");
String address1 = req.getParameter("address1");
String address2 = req.getParameter("address2");
String town = req.getParameter("town");
String county = req.getParameter("country");
String zipcode = req.getParameter("zipcode"); 
try {
// Load the database driver
Class.forName("org.gjt.mm.mysql.Driver");
// Get a Connection to the database
connection = DriverManager.getConnection
(connectionURL, "root", "admin"); 
//Add the data into the database
String sql = 
"insert into emp_details values (?,?,?,?,?,?,?,?)";
PreparedStatement pst = 
connection.prepareStatement(sql);
pst.setString(1, uId);
pst.setString(2, fname);
pst.setString(3, sname);
pst.setString(4, address1);
pst.setString(5, address2);
pst.setString(6, town);
pst.setString(7, county);
pst.setString(8, zipcode);
int numRowsChanged = pst.executeUpdate();
// show that the new account has been created
out.println(" Hello : ");
out.println(" '"+fname+"'");
pst.close();
}
catch(ClassNotFoundException e){
out.println("Couldn't load database driver: " 
+ e.getMessage());
}
catch(SQLException e){
out.println("SQLException caught: " 
+ e.getMessage());
}
catch (Exception e){
out.println(e);
}
finally {
// Always close the database connection.
try {
if (connection != null) connection.close();
}
catch (SQLException ignored){
out.println(ignored);
}
}

Ответы [ 2 ]

0 голосов
/ 08 марта 2012

Что я должен заменить "jdbc: mysql: // localhost / zulfiqar" на

Ответ: Это URL-адрес соединения.Это означает, что ваша база данных MySQL работает на локальном сервере (с портом по умолчанию), и вы подключаетесь к базе данных zulfiqar.Итак, первая строка в doPost () должна быть:

String connectionURL = "jdbc:mysql://localhost/zulfiqar";

Далее вы используете драйвер org.gjt.mm.mysql.Driver для соединения JDBC.Первоначально он был разработан любителем.Это позже пожертвовано MySQL, где они переименовали пакет / имя класса.Старое имя класса сохраняется из соображений обратной совместимости, но вы должны обновить его до com.mysql.jdbc.Driver и добавить mysql-connector-java - * - bin.jar в вашем WEB-INF / lib folder.

Следующая вещь, которую вы используете:

connection = DriverManager.getConnection(connectionURL, "root", "admin");

Итак, вы загружаете соединение из connectionURL и получаете к нему доступ с помощью root пользователя и admin пароля.Убедитесь, что они верны в вашем случае.

Последнее, что вы вставляете в emp_details таблицу.Убедитесь, что эта таблица уже создана в базе данных zulfiqar со всеми необходимыми столбцами.И число "?"отметки в строке sql должны соответствовать количеству выполненных вами действий pst.setString(index, data), в противном случае вы получите неверный индекс параметра ошибка.

0 голосов
/ 02 марта 2012

Может быть полезна дополнительная информация о том, как это происходит.

1) Не удается установить сокет (подразумевается, что ваша служба не работает), или 2) Не удалось инициализировать драйвер? Я не знаком с тем, кого вы перечислили. Более распространенной альтернативой является "sun.jdbc.odbc.JdbcOdbcDriver". 3) Вы подключились и просто не прошли проверку подлинности с пользователем «root» и паролем «admin»?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...