java - 如何从 JSP 文件中的 HTML 表单获取用户输入的数据,并使用 java 类将其输入到 mysql 数据库中?

标签 java mysql database jsp

这是我高中计算机科学类(class)的一个项目,我现在的目标是制作一个注册页面,将其数据存储在 mysql 服务器内。到目前为止,我已经能够从 java 连接到数据库并将数据存储到其中,但前提是它被我硬编码了。

我在互联网上搜索了解决方案,到目前为止我已经得到了这段代码。

这是jsp文件中的主要代码。

<form action="NewAccount.jsp">
        <div class = "inputBox"> <p id = "inputFName">First Name</p>  <input type="text" name="FName"/> </div>
        <div class = "inputBox"> <p id = "inputLName">Last Name</p>  <input type="text" name="LName"/> </div>
        <div class = "inputBox"> <p id = "inputEmail">Email</p>  <input type="text" name="Email"/> </div>
        <div class = "inputBox"> <p id = "inputUser">Username</p>  <input type="text" name="User"/> </div>

        <div class = "inputBox"> <p id = "inputPass1">Password</p>  <input type="password" name="Pass1"/> </div> 
        <div class = "inputBox"> <p id = "inputPass2">Retype Password</p>  <input type="password" name="Pass2"/> </div>            

        <br/>

        <div id="inputButton"> <input type="submit" value="submit" name = "submit"/> </div>     
    </form>

    <%
        if (request.getParameter("submit") != null) {

            CreateUser c = new CreateUser();

            String FName = request.getParameter("FName");
            String LName = request.getParameter("LName");
            String Email = request.getParameter("Email");
            String User = request.getParameter("User");
            String Pass = request.getParameter("Pass1");

            c.createUser(FName, LName, Email, User, Pass);
        }
    %>

这是 Java 类文件中的代码。

private static PreparedStatement pst;

public void createUser(String FName, String LName, String Email, String User, String Pass) throws SQLException {
    SQLCon.Connect();

    pst = SQLCon.getMyConn().prepareStatement("insert into User_Info (FirstName,LastName,Email,Username,Password) values(?,?,?,?,?)");

    pst.setString(1, FName);
    pst.setString(2, LName);
    pst.setString(3, Email);
    pst.setString(4, User);
    pst.setString(5, Pass);
}

SQLCon.Connect() 方法如下。

public static void Connect() throws SQLException {
    String url = "jdbc:mysql://localhost:3306/IA Schema";
    String user = "root";
    String pass = "bruhbruh";

    try {
    //Connect to database
    myConn = DriverManager.getConnection(url, user, pass);
    } catch (Exception exc) {
        System.out.println("failed");
    }
}

我的项目运行良好,但是当我输入数据并单击 Enter 时,glassfish 控制台显示 this .

非常感谢有关如何成功将数据输入数据库的任何帮助,但请记住,这一切都是从互联网(除了java)自学的,我可能在某个地方犯了一个愚蠢的错误。谢谢。

整个 SQLCon 类。

package JavaClasses;

import java.sql.*;

public class SQLCon {

    private static Connection myConn;

    public static Connection getMyConn() {
        return myConn;
    }

    public static void Connect() throws SQLException {
        String url = "jdbc:mysql://localhost:3306/IA Schema";
        String user = "root";
        String pass = "bruhbruh";

        try {
            //Connect to database
            myConn = DriverManager.getConnection(url, user, pass);
        } catch (Exception exc) {
            System.out.println("failed");
        }
    }
}

最佳答案

jsp 文件中的 LName 名称错误。

    <div class = "inputBox"> <p id = "inputLName">Last Name</p>  <input type="text" name=":Name"/> </div>

LName,而不是:Name。

也在 SQLCon 类中尝试以下更改。

   public static Connection getMyConn() {
       if(myConn!=null){
           return myConn;
       }else{
           SQLCon.Connect();
           return myConn;
       }
   }

关于java - 如何从 JSP 文件中的 HTML 表单获取用户输入的数据,并使用 java 类将其输入到 mysql 数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60557302/

相关文章:

java - 使用 JPA 关系映射的 EJB 3 持久性

java - 如何将 Mock 设置为具有默认行为并可以在某些测试中覆盖它

mysql - 如何聚合由标志列指示的事件的前一天、当天和后一天的列?

mysql - 实现大学小组学习的数据库方案

database - 在 Enterprise Architect 中的表之间复制列

java - Travis 上的 Sonar : ERROR You must define the following mandatory properties for 'Unknown'

java - 将 Playbuzz 嵌入脚本加载到 Android 中的 WebView 中

php - codeigniter 多表中的总数量

mysql - Magento 1.8.1 中哪个表保存原价和促销价?

android - 数据库未存储在 Android 手机设备上