我想為患者資料庫系統創建一個表單。然后我會給表單的每個文本框提供一些輸入資料,這些資料將存盤在 MySQL 資料庫中。
我寫了一個JSP檔案如下
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="java.sql.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<table>
<tr><td>Pid</td><td><input type="text" name="pid" required /></td></tr>
<tr><td>Name</td><td><input type="text" name="patientname" required /></td></tr>
<tr><td>Address</td><td><input type="text" name="patientaddress" ></td></tr>
<tr><td>Phone number</td><td><input type="number" name="Ph" required /></td></tr>
<tr><td>Email</td><td><input type="email" name="email" required /></td></tr>
<tr><td>Type</td><td><input type="text" name="patienttype" ></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="register"></td></tr>
</table>
<%
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/hospitalm","root","1234");
out.println ("database successfully opened.");
String sql = "INSERT INTO patient (pid, pname, address, phone, email_id,ptype) values (?, ?, ?,?,?,?)";
PreparedStatement statement = con.prepareStatement(sql);
statement.setString(1, Pid);
statement.setString(2, Name);
statement.setString(3, "Forrest");
statement.setDouble(4, 664208158);
statement.setString(5, "[email protected]");
statement.setString(6,"G");
int row = statement.executeUpdate();
if (row > 0) {
System.out.println("One row inserted.");
}
}
catch(SQLException e) {
out.println("SQLException caught: " e.getMessage());
}
%>
</body>
</html>
這兩行拋出錯誤
statement.setString(1, Pid);
statement.setString(2, Name);
如果我輸入一些值,例如 Pid 的“p101”和 Name 的“John”,那么我可以輕松地在資料庫hospitalM 中輸入記錄。
但是如果我嘗試表的變數名 Pid 和 Name,
<tr><td>Pid</td><td><input type="text" name="pid" required /></td></tr>
<tr><td>Name</td><td><input type="text" name="patientname" required /></td></tr>
我有錯誤。
我怎么能解決這個問題?
uj5u.com熱心網友回復:
JSP 不會自動將請求引數系結到 Java 變數中,這正是您在此處嘗試執行的操作。
為了獲取引數,需要直接查詢請求物件。類似于:
statement.setString(1, request.getParameter("Pid"));
statement.setString(2, request.getParameter("Name"));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/367602.html
上一篇:好吧,我有一個關于MySql中的遞回問題,關于創建一個遞回階乘函式。它給了我錯誤1424:
下一篇:GROUPBY不顯示所有欄位
