ssh2做的一个批量操作

来源:互联网 发布:淘宝天猫优惠券antlm 编辑:程序博客网 时间:2024/06/06 05:47

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

 

今天做了一个批量删除的操作,拿来分享一下

 

自己想着做的,方法肯定不好,望各位大虾多多指点,小弟正在学习途中……..

 

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

Id

Username

password

1

aaa

Bbb

数据随便添加的

 

VO类:

publicclass User {

    privateintid;

    private Stringusername;

    private Stringpassword;

……..         //settergetter方法

 

 

User.hbm.xml:

 

<?xmlversion="1.0"?>

<!DOCTYPEhibernate-mapping PUBLIC

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

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

<hibernate-mappingpackage="vo">

    <classname="User"table="user">

       <idname="id"column="id">

           <generatorclass="native"/>

       </id>

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

       <propertyname="password"></property>

    </class>

</hibernate-mapping>

 

Action

 

Public class UserAction extends ActionSupport{

    public String[] opids; //需要批量操作的标识

    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(String[] ops);

}

 

DAOIMPL

Public class UserDAOImpl extend HibernateDaoSupport implements UserDAO{

         Public boolean batch_ops(String[] ops){

       StringBuffer sb=new StringBuffer();

       //把字符数据拆分成'1','2','3','4','5'...等这样的数据,还有最后一位后面不能再有逗号

       for(int i=0;i<ops.length;i++){

           if(i==ops.length-1){

              sb.append("'"+ops[i]+"'");

           }else{

              sb.append("'"+ops[i]+"',");

           }

       }

        int i=this.getSession().createSQLQuery("delete from users where id in("+ops+")")executeUpdate();

       //很多人都说执行sql删除要好些;

       if(i>0){

           b=true;

       }

       return b;

    }

}

 

 

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

 

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

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

    <tr>

     <tdclass="left_title_1"><spanid="check_all">全部选取</span></td>

     <tdclass="left_title_1"><spanid="unckeck_all">取消选</span></td>

     <tdclass="left_title_1"><spanid="reverse">反选</span></td>

     <tdclass="left_title_1"><spanid="del_check">删除选中</span></td>

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

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

     </tr>

          <tr>

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

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

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

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

          </tr>

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

          <s:iteratorid="user"value="list">  

          <tr>

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

            <tdclass="left_title_2"><s:propertyvalue="#user.id"/></td>

            <tdclass="left_title_2"><s:propertyvalue="#user.username"/></a></td>

            <tdclass="left_title_2"><s:propertyvalue="#user.password"/></td>

          </tr>

          </s:iterator>

        </table>

   </form>

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

<scripttype="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:

<actionname="batch"class="batch">

           <resultname="success"type="redirectAction">

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

           </result>

       </action>

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

 

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

<beanname="userdao"class="dao.imp.UserDAOImpl">

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

</bean>

<beanname="batch"class=" action.UserAction">

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

</bean>

 

OK,到些结束

 

不知道有哪些不足的地方,或者有更好的方法,希望各位大虾指点指点。

 

 

 

 

原创粉丝点击