SSM獲取表單數據插入數據庫並返回插入記錄的ID值


以下指示插入操作以及獲取記錄值的ID的部分操作代碼!!!

首先是簡單的表單實現

 1 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
 2 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 3 <html>
 4 <head>
 5     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 6     <title>Insert title here</title>
 7 </head>
 8 <body>
 9 <form action="${pageContext.request.contextPath}/user.do" method="POST">
10     <label for="username">
11  username: 12         <input type="text" id="username" name="username"/>
13     </label>
14     <!-- label的作用是包含相關的文本框 -->
15     <label for="password">
16  password: 17         <input type="text" id="password" name="password"/>
18     </label>
19 
20     <label for="birthday">
21  birthday: 22         <input type="text" id="birthday" name="birthday"/>
23     </label>
24 
25     <label for="gender">
26  gender: 27         <input type="text" id="gender" name="gender"/>
28     </label>
29 
30     <button>提交</button>
31 </form>
32 </body>
33 </html>

User類為:

 1 package com.example.edu.model;  2 
 3 public class User {  4     private int id;  5     private String username;  6     private String password;  7     private String birthday;  8     private String gender;  9 
10     public int getId() { 11         return id; 12  } 13 
14     public void setId(int id) { 15         this.id = id; 16  } 17 
18     public String getPassword() { 19         return password; 20  } 21 
22     public void setPassword(String password) { 23         this.password = password; 24  } 25 
26     public String getUsername() { 27         return username; 28  } 29 
30     public void setUsername(String username) { 31         this.username = username; 32  } 33 
34     public String getBirthday() { 35         return birthday; 36  } 37 
38     public void setBirthday(String birthday) { 39         this.birthday = birthday; 40  } 41 
42     public String getGender() { 43         return gender; 44  } 45 
46     public void setGender(String gender) { 47         this.gender = gender; 48  } 49 
50  @Override 51     public String toString() { 52         return "User{" +
53                 "id=" + id +
54                 ", username='" + username + '\'' +
55                 ", password='" + password + '\'' +
56                 ", birthday='" + birthday + '\'' +
57                 ", gender='" + gender + '\'' +
58                 '}'; 59  } 60 }

 

獲取表單數據的方式有:

1.直接在controller層的方法參數中寫入表單的參數(也就是表單的name?)

1  @RequestMapping(value = "signin", method = RequestMethod.POST) 2     public String loging(@RequestParam(value = "username") String username, String password) { 3         System.out.println("username:" + username); 4         System.out.println("password:" + password); 5         return "redirect:success.do"; 6     }

注意到上面使用到了  @RequestParam(value = "xxx"),這是用來解決當表單的參數和controller層方法的參數命名不一致的情況,比如表單的username的表單的name不再命名為username ,而是命名為myname,這時如果直接使用

  

 public String loging( String username, String password)

的話就會出錯,可以使用@RequestParam(value = "xxx")來解決這個問題,如下,就是說將表單上myname獲得的數據傳遞到username上來?(好吧,我不知道怎樣表達好一點!)

 public String loging(@RequestParam(value = "myname") String username, String password)

 

2.通過一個實體類(或者說bean)來接收

1  @RequestMapping(value = "user", method = RequestMethod.POST) 2     public String getUser(@ModelAttribute User users) { 3 
4         System.out.println(users);  //此時只是獲取到了表單的輸入數據,尚未將數據插入數據庫,因此得到的id默認為0
5         int id = userService.insert(users);  //插入數據庫並返回記錄的id值
6         System.out.println("The id is:" + id); 7         return "redirect:success.do"; 8     }

 

注意方法參數中的 @ModelAttribute User users 。

 

3.還有其他的方法,自己沒有實現,推薦一篇博客:https://www.cnblogs.com/yyxyqh/p/7749990.html

 

 

 

接下來就是獲取插入數據庫的記錄的id了。(關於已成功獲取數據但在插入數據庫失敗可以點這里

@Override public int insert(User user) { userMapper.insert(user); return user.getId();   //返回插入后的id值
    }

大概就是要在你具體的insert方法中,執行完后要使用getId來獲取插入記錄的id(每個人定義的接口不同,所以抱歉只放出上面的幾行代碼,不過我覺得核心是在你定義的insert方法中使用類似於 user.getId(); 來獲取id值的這個操作。)

 

作個記錄,以防自己某天忘了!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM