我正在開發一個 TODO 串列,例如添加資料并在表格中顯示,但是當我登錄其他帳戶時,我得到了與其他帳戶相同的內容,如何將頁面與其自己的內容分開。
請檢查下面的圖片:


我的代碼是:
道.java
public class Dao {
private final static String url = "jdbc:mysql://localhost:3306/todolist";
private final static String user = "root";
private final static String password = "";
private final static String dbloader = "com.mysql.jdbc.Driver";
private final static String ADD = "INSERT INTO `todo`(`TODO`) VALUES (?)";
public static void Driver(String dbloader) {
try {
Class.forName(dbloader);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
Connection con = null;
try {
con = DriverManager.getConnection(url, user, password);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
public static int ADDTODO(Model mod) {
int i = 0;
try {
Driver(dbloader);
Connection con = getConnection();
PreparedStatement pst = con.prepareStatement(ADD);
pst.setString(1, mod.getTODO());
i = pst.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return i;
}
}
**Addtodo**
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String todo = request.getParameter("todo");
Model mod = new Model();
mod.setTODO(todo);
Dao dao = new Dao();
int i = dao.ADDTODO(mod);
if (i > 0) {
response.sendRedirect("Userpage.jsp");
}
}
模型.java
public class Model {
private int ID;
private String TODO;
public Model() {
super();
// TODO Auto-generated constructor stub
}
public Model(int iD, String tODO) {
super();
ID = iD;
TODO = tODO;
}
public Model(String tODO) {
super();
TODO = tODO;
}
public int getID() {
return ID;
}
public void setID(int iD) {
ID = iD;
}
public String getTODO() {
return TODO;
}
public void setTODO(String tODO) {
TODO = tODO;
}
}
用戶頁面.jsp
<form action="Addtodo" method="post">
<div class="add-items d-flex"> <input tenter code hereype="text" class="form-control todo-list-input" name="todo" placeholder="What do you need to do today?"> <button type="submit" class="btn btn-success btn-lg btn-block" value="add" >Add</button></div>
</form>
uj5u.com熱心網友回復:
您必須在每個 Todo 專案中存盤用戶的 ID/名稱,否則您無法區分哪個 To Do 專案屬于哪個用戶/與哪個用戶相關。你必須修改你的模型類TODO,添加一個int userId或string userName模型類。并且當用戶創建一個新的待辦事項時,您需要將其值設定為登錄用戶的 ID 或名稱。
uj5u.com熱心網友回復:
現在,您只有一張表 - 待辦事項 - 用于存盤待辦事項。但是由于表中沒有特定于用戶的資料,因此您必然會為所有用戶獲取相同的資料。
目前,您的表中沒有任何可以區分用戶的內容。
您的資料庫中需要有 2 個表。
- 去做
- ID
- 去做
- 用戶身份
- 用戶
- ID
- 姓名
- ..(其他相關領域)
表中的userid欄位是表中的欄位。它充當兩個表之間的鏈接。Todoforeign keyidUser
因此,現在要獲取特定用戶的待辦事項串列,您將運行類似的查詢
SELECT * from todo where userid = user.id,user.id當前用戶的 ID 在哪里。
- SQL 外鍵
- 您可以按照本教程進行操作 - 它的功能與您正在做的類似。1、2。_ _
uj5u.com熱心網友回復:
嘿,您可能想看看HttpSession您可以創建一個會話并用您的特定用戶 ID 填充它,它將解決您的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/494035.html
上一篇:NpgsqlBatchCommand.ExecuteReader()&NpgsqlBatchCommand.Connection不見了?
