【问题标题】:jdbc connection of mysql to htmlmysql到html的jdbc连接
【发布时间】:2012-03-20 08:42:48
【问题描述】:

您好,我有以下文件将 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);
}
}

【问题讨论】:

    标签: mysql html jdbc


    【解决方案1】:

    一些关于它如何失败的附加信息可能很有用。

    1) 是否无法建立套接字连接(意味着您的服务没有运行),或者 2) 是否初始化驱动失败?我不熟悉你列出的那个。更常见的替代方法是“sun.jdbc.odbc.JdbcOdbcDriver”。 3) 您是否连接并使用用户“root”和密码“admin”进行身份验证失败?

    【讨论】:

    • 我不太确定它是否正在建立连接。 tbh 我对此真的很陌生,并且对如何设置整个事情感到困惑。
    • org.gjt.mm.mysql.Driver 和 com.mysql.jdbc.Driver 是一样的。看这里stackoverflow.com/a/5808184/778687
    【解决方案2】:

    我应该用什么替换“jdbc:mysql://localhost/zulfiqar”

    Ans: 就是连接url。这确实意味着您的 MySQL 数据库正在 localhost 服务器(使用默认端口)上运行,并且您正在连接到“zulfiqar”数据库。所以 doPost() 下的第一行应该是:

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

    接下来,您将使用 org.gjt.mm.mysql.Driver 驱动程序进行 JDBC 连接。它最初是由一个爱好者开发的。它后来被捐赠给 MySQL,在那里他们重命名了包/类名。保留旧的类名是出于向后兼容性的原因,但您应该将其更新为 com.mysql.jdbc.Driver 并在您的 WEB-INF/libmysql-connector-java-*-bin.jar /strong> 文件夹。

    你正在使用的下一件事:

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

    因此,您正在从connectionURL 加载连接并使用root 用户和admin 密码访问它。确保这些在您的情况下是正确的。

    最后一点是,您正在插入emp_details 表。确保您已经在 zulfiqar 数据库中创建了此表,其中包含所有必需的列。和“?”的数量sql 字符串中的标记应与您执行 pst.setString(index, data) 的次数相匹配,否则会出现Invalid parameter index错误。

    【讨论】:

      猜你喜欢
      • 2011-02-17
      • 1970-01-01
      • 2011-05-07
      • 1970-01-01
      • 2016-11-08
      • 1970-01-01
      • 2015-04-01
      • 1970-01-01
      • 2023-04-07
      相关资源
      最近更新 更多