数据更新+加载列表+删除数据

此项目实例为springMVCDB

一、数据检索更新

分析:要实现的效果是在第一个页面文本框中输入一个数值,点击检索,然后在第二个页面的文本框中显示。然后在这个文本框中输入新数据,点击更新按钮,数据库中的文件及文本框中的数据被改写。需要注意的是此操作是检索的userid,而要更新的则是它对应的username的值。

功能实现思路:

  1. 先实现数据更新,即在控制中用searchUser的方法实例化一个存放结果集的bean。然后是进行数据改写,就是实例化一个update的方法,将结果给bean。并用一个if语句判断数据是否更新,在第三个页面中显示是否成功。

HelloWorldController.java

@RequestMapping(value = "/init", method = RequestMethod.POST)
 public String initLogin(UserBean userBean, Model model) {   
  UserBean result = helloWorldService.searchUser(userBean);    
  model.addAttribute("userBean", result);        return "login";

@RequestMapping(value = "/update", method = RequestMethod.POST)
 public String initUpdate(UserBean userBean, Model model) {    
 int result=helloWorldService.update(userBean);         
 if(result!=1)     {    
                          model.addAttribute("message", "NO");         
  }else{     
                           model.addAttribute("message", "OK");    
 }         return "result";    }

 

2.然后在service页面中设置frm的一个变量,来取bean中的值,然后在更新

HelloWorldService.java

public UserBean searchUser(UserBean frm) {
frm = queryDao.executeForObject("User.selectUser", frm, UserBean.class);
return frm; }

public int update(UserBean frm) {
return updateDao.execute("User.updateUser", frm); }

 

3.用SQL语句查询数据库中的数据,然后更新数据库中对应ID的username

UserSqlMap.xml

<select id="selectUser"
parameterClass="cn.training.bean.UserBean"
resultClass="cn.training.bean.UserBean">
SELECT

userid as userId,userName
FROM user 
WHERE
userid = #userId#
</select> 

update语句更新数据(******更新设置user表中的#userName#在id为#userId#处更新******

<update id="updateUser" parameterClass="cn.training.bean.UserBean">
update user set userName=#userName#

WHERE userid = #userId#
</update>

 二、加载列表

分析:实现效果就是查询数据库中的数据,将数据库中的数据以列表形式显示出来

1.用查询语句查询表中的所有数据

UserSqlMap.xml

<select id="selectUser"
parameterClass="cn.training.bean.UserBean"
resultClass="cn.training.bean.UserBean">
SELECT userid as userId,userName
FROM user

2.查询的结果放在一个泛型为bean的列表集中

HelloWorldController.java

@RequestMapping(value = "/init", method = RequestMethod.POST)public String initLogin(UserBean userBean, Model model) {
List<UserBean> result = helloWorldService.searchUser(userBean);    
model.addAttribute("list", result);      return "login";}

3.写一个列表的方法将bean中存放的数据取出来,给这个列表集,取的为整个列表数据

HelloWorldService.java

public List<UserBean> searchUser(UserBean frm) {
List<UserBean> result=queryDao.executeForObjectList("User.selectUser", frm);         //此方法为取列表中所有数据,list为接口类型的
return result;    }

4.在跳转页面显示用一个c:forEach 语句进行遍历取值

login.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>                                        //此句为导入C标签
 <body>
 <c:forEach items="${list}"  var="user" varStatus="status">
${userBean.userId}
${userBean.userName}
</c:forEach>
</body>

三、.删除列表中数据

分析:效果就是,检索出数据库里的值以列表显示,然后删除数据库中的id的同时也删除ID对应的username的值。最后数据库中的数据也会更新,页面被删除的数据数据库中也被删除。

1.检索出所有的数据,然后写一个SQL的delete删除语句

UserSqlMap.xml

<select id="selectUser"		
parameterClass="cn.training.bean.UserBean"	
resultClass="cn.training.bean.UserBean">	
SELECT		
userid as userId,userName		
FROM		
user	
</select>		
<delete id="deleteUser"  parameterClass="cn.training.bean.UserBean">
	delete  from user	where userid=#userId#	
</delete>

2.在控制页面实例化一个删除

 HelloWorldController.java

@RequestMapping(value = "/init", method = RequestMethod.POST)public String initLogin(UserBean userBean, Model model) {
List<UserBean> result = helloWorldService.searchUser(userBean);    
	model.addAttribute("list", result);return "login";
}@RequestMapping(value = "/delete", method = RequestMethod.GET)
public String (UserBean userBean, Model model) {      
  	int result = helloWorldService.(userBean);       
  	return "login";  }

 

3.写一个删除的方法,删除frm为检索条件的值然后更新数据

HelloWorldService.java

public List<UserBean> searchUser(UserBean frm) {		
List<UserBean> result=queryDao.executeForObjectList("User.selectUser", frm);	
	return result;	}		
public int delete(UserBean frm) {		
	return updateDao.execute("User.deleteUser", frm);
		}

 4.使用forEach语句遍历列表,用一个table表存放读出来的数据,然后将第一列ID的值设为一个可以进行删除的路径,即链接一个可以delete指定ID的路径,然后删除ID,同时删除username。

login.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 <body>
 <c:forEach items="${list}"  var="user" varStatus="status">
 <table>
 <tr>
 <td>
 <a href="delete?userId=${user.userId}">${user.userId}</td>
 <td>${user.userName}</td>
 </tr>
 </table>
</c:forEach>

你可能感兴趣的:(list,delete,foreach,select,updata)