SSH2做的一个批量操作用--List

3 篇文章 0 订阅
3 篇文章 0 订阅

一个批量删除的操作,其它的批量操作可以类似方法做。

上次的批量操作的修改,用的List

 

 

用户数据库结构:(用户表users

Id

Username

password

1

aaa

Bbb

数据随便添加的

 

VO类:

publicclass User {

    privateintid;

    private String username;

    private String password;

……..         //settergetter方法

 

 

User.hbm.xml:

 

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="vo">

    <class name="User" table="user">

       <id name="id" column="id">

           <generator class="native"/>

       </id>

       <property name="username" unique="true" not-null="true" length="16"></property>

       <property name="password"></property>

    </class>

</hibernate-mapping>

 

Action

 

Public class UserAction extends ActionSupport{

    public List opids; //需要批量操作的标识,jsp页面传递过来的数据库主键标识

    public User user;  //User的引用

    public UserDAO userdaoimp;   // 接口统一操作,可以只有setter方法,spring注入

         ….. //setter  getter方法

    public String execute() throws Exception {

       userdaoimpl.batch_op(opids);

       return success;

    }

}

 

DAO接口:

publicinterface UserDAO {

    //批量操作

    Boolean batch_ops(List list);

}

 

DAOIMPL

publicboolean batch_food(List opids,String op) {

       String sql=null;

       Boolean b=false;

       //因为传递过来的ID以字符串的形式封装的,而我的数据库主键是int类型,所以转类型

       List list=new ArrayList();

       Iterator it=opids.iterator();

       while(it.hasNext()){

           int i = Integer.parseInt((String)it.next());

           list.add(i);

       }

       if(op.equals("delete")){

           sql="delete from User where id in :opids";

       }else{

           //其它操作都行

}

       int i = this.getSession().createQuery(sql).setParameterList("opids", list).executeUpdate();

       if(i>0)

           b=true;

       return b;  }

 

前台用户列表页面代码:只放出重要的代码哈。。。

 

<form action="batch.action" id="form1">

 <table id="tb" width="100%" border="0" cellspacing="0" cellpadding="0">

    <tr>

     <td class="left_title_1"><span id="check_all">全部选取</span></td>

     <td class="left_title_1"><span id="unckeck_all">取消选</span></td>

     <td class="left_title_1"><span id="reverse">反选</span></td>

     <td class="left_title_1"><span id="del_check">删除选中</span></td>

     <td class="left_title_1">&nbsp;</td>

     <td class="left_title_1">&nbsp;</td>

     </tr>

          <tr>

             <td class="left_title_1">选择项</td>

            <td class="left_title_1">ID</td>

            <td class="left_title_1">用户名</td>

            <td class="left_title_1">密码</td>

          </tr>

<!- 下面的提取数据是从另外一个action跳转过来的,可以直接提取。。。 -à

          <s:iterator id="user" value="list">  

          <tr>

             <td class="left_title_2"><input type="checkbox" name="opids" value='<s:propertyvalue="#user.id"/>'/></td>

            <td class="left_title_2"><s:property value="#user.id"/></td>

            <td class="left_title_2"><s:property value="#user.username"/></a></td>

            <td class="left_title_2"><s:property value="#user.password"/></td>

          </tr>

          </s:iterator>

        </table>

   </form>

该页面用jquery 来实现选取功能:

<script type="text/javascript">

$(function(){

    $("#check_all").click(function(){

        //"#shops :checked"之间必须有空格checked是设置选中状态。如果为true则是选中fo否则false为不选中

       $(":checkbox").attr("checked",true);

    });

    $("#unckeck_all").click(function(){

       $(":checkbox").attr("checked",false);

    });

    //理解用迭代原理eachfunction(){}

    $("#reverse").click(function(){

        $(":checkbox").each(function(){

           $(this).attr("checked",!$(this).attr("checked"));

       });

    });

    $("#del_check").click(function(){

       $("#form1").submit();

    });

})

</script>

 

接下来就是Struts.xml:

<action name="batch" class="batch">

           <result name="success" type="redirectAction">

              <param name="actionName">list_user</param>

           </result>

       </action>

List_user就是另外一个可以查询用户的action

 

那么接下来就是spring里面的了

<bean name="userdao" class="dao.imp.UserDAOImpl">

    <property name="sessionFactory" ref="sf"></property>

</bean>

<bean name="batch" class=" action.UserAction">

    <property name="userdaoimpl" ref="userdao"></property>

</bean>

 

OK,到些结束

其它跟上次的差不多,上次用的是数据接收,这次用的是list接收,如有不到的地方,希望大家指出来,共同学习,谢谢。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值