Как взять введенные пользователем данные из форм HTML в файле JSP и ввести их в базу данных mysql с использованием класса java? - PullRequest
0 голосов
/ 06 марта 2020

Итак, это проект для моего школьного класса по информатике, и сейчас моя цель - создать страницу регистрации, которая хранит свои данные на сервере mysql. До сих пор я мог подключаться к базе данных с java, а также сохранять в нее данные, но только тогда, когда я жестко запрограммировал ее.

Я искал в inte rnet решения и до сих пор получил этот код.

Это основной код в файле 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");
    }
}

Мой проект работает нормально, но когда я ввожу данные о вещах и нажимаю ввод, консоль glassfi sh говорит это .

Любая помощь в том, как успешно ввести данные в базу данных, очень ценится, но, пожалуйста, имейте в виду, что все это самоучка из inte rnet (кроме 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");
        }
    }
}

1 Ответ

0 голосов
/ 06 марта 2020

У вас неправильное имя LName в файле jsp.

    <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;
       }
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...