这是我高中计算机科学类(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/