以下指示插入操作以及获取记录值的ID的部分操作代码!!!
首先是简单的表单实现
1
2
3
4
5
6
Insert title here7
8
9
10
11 username:12
13
14
15
16 password:17
18
19
20
21 birthday:22
23
24
25
26 gender:27
28
29
30 提交
31
32
33
User类为:
1 packagecom.example.edu.model;2
3 public classUser {4 private intid;5 privateString username;6 privateString password;7 privateString birthday;8 privateString gender;9
10 public intgetId() {11 returnid;12 }13
14 public void setId(intid) {15 this.id =id;16 }17
18 publicString getPassword() {19 returnpassword;20 }21
22 public voidsetPassword(String password) {23 this.password =password;24 }25
26 publicString getUsername() {27 returnusername;28 }29
30 public voidsetUsername(String username) {31 this.username =username;32 }33
34 publicString getBirthday() {35 returnbirthday;36 }37
38 public voidsetBirthday(String birthday) {39 this.birthday =birthday;40 }41
42 publicString getGender() {43 returngender;44 }45
46 public voidsetGender(String gender) {47 this.gender =gender;48 }49
50 @Override51 publicString 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 publicString 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 。
接下来就是获取插入数据库的记录的id了。(关于已成功获取数据但在插入数据库失败可以点这里)
@Overridepublic intinsert(User user) {
userMapper.insert(user);return user.getId(); //返回插入后的id值
}
大概就是要在你具体的insert方法中,执行完后要使用getId来获取插入记录的id(每个人定义的接口不同,所以抱歉只放出上面的几行代码,不过我觉得核心是在你定义的insert方法中使用类似于 user.getId(); 来获取id值的这个操作。)
作个记录,以防自己某天忘了!