`
yao37duman
  • 浏览: 2701 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
最近访客 更多访客>>
社区版块
存档分类
最新评论

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

阅读更多

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

上次的批量操作用的是数组接收,改用的List

 

 

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

Id

Username

password

1

aaa

Bbb

数据随便添加的

 

VO类:

public class User {

    private int id;

    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接口:

public interface UserDAO {

    //批量操作

    Boolean batch_ops(List list);

}

 

DAOIMPL

public boolean 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:property value="#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接收,如有不到的地方,希望大家指出来,共同学习,谢谢。

 

 

 

 

分享到:
评论

相关推荐

    ssh中用到的批量删除

    - 这个接口定义了批量删除的功能,参数为一个List类型,通常包含需要删除的对象。 - **实现类**: ```java public void deleteAll(List list) { this.getHibernateTemplate().deleteAll(list); } ``` - ...

    自动登陆ssh,批量ip脚本操作

    例如,你可以创建一个包含所有目标IP地址的文本文件,然后在脚本中循环读取这些IP,对每个IP执行SSH操作。下面是一个简单的bash脚本示例: ```bash #!/bin/bash # 读取IP地址列表 while read -r ip; do ssh -i /...

    ssh框架集成,formFile批量上传完整版

    3. **Action类编写**:在Action类中,定义一个`List&lt;FormFile&gt;`类型的字段,与前端表单的数组字段对应。同时,编写处理文件上传的方法,这些方法通常会调用`FormFile`的`getFileName()`和`getInputstream()`等方法...

    批量实现ssh无密码登录

    - **authorized_keys文件**: 存放在每个用户家目录的`.ssh`目录下的一个文件,用于存储允许访问该用户的公钥。 #### 实现思路 为了实现在多台服务器之间建立SSH无密码登录的信任关系,我们可以通过以下两个步骤来...

    ssh整合的分页、批量删除

    在IT行业中,SSH整合是指Spring、Struts和Hibernate三个开源框架的集成,它们共同构建了一个强大的企业级应用开发平台。Spring提供了依赖注入和面向切面编程,Struts处理MVC模式,而Hibernate则是ORM(对象关系映射...

    Struts2关于批量提交数据-解决方案

    ### Struts2批量提交数据解决方案 在Web应用开发过程中,特别是在使用Struts2框架时,经常需要处理大量的数据提交操作。这些数据可能来自于用户输入或者是系统内部的数据迁移等场景。对于这种需求,本文档将详细...

    Python实现ssh批量登录并执行命令

    以下是一个使用`pexpect`实现SSH登录并执行命令的示例: ```python import pexpect def ssh_cmd(ip, passwd, cmd): ret = -1 ssh = pexpect.spawn('ssh root@{} "{}"'.format(ip, cmd)) try: i = ssh.expect(...

    Go-manssh-命令行方式轻松管理ssh连接别名配置

    2. **批量管理**: manssh支持对多个SSH连接进行批量操作,如批量更新密钥、批量连接等,提高了工作效率。 3. **配置文件**: manssh的配置存储在本地的yaml文件中,易于编辑和版本控制。 4. **命令行交互**: ...

    基于python轻松实现批量ssh工具管理多台linux服务器.docx

    ### 基于Python轻松实现批量SSH工具管理多台Linux服务器 #### 概述 本文档旨在介绍一种利用Python编写的工具——`JSSH`,该工具能够帮助用户轻松地管理多台Linux服务器,实现批量的SSH连接、命令执行以及文件上传...

    ansible批量执行脚本

    在“三人表决器”场景下,Ansible同样能发挥重要作用,实现批量执行脚本,例如在麒麟系统上进行权限管理、系统维护等任务。 1. **安装Ansible和sshpass** 安装Ansible首先要确保系统是root用户,然后在Debian或...

    基于python轻松实现批量ssh工具管理多台linux服务器.pdf

    Jssh 是一个基于 Python 语言开发的批量 SSH 工具,用于管理多台 Linux 服务器。该工具可以让用户轻松地管理 Linux 服务器,执行命令、上传下载文件等操作。Jssh 的主要功能包括连接多台服务器、执行命令、上传下载...

    批量配置linux免密登陆

    文件列表中的`serverlist`很可能是一个包含所有目标服务器IP地址或主机名的文本文件,`ssh.sh`应该是实现上述操作的脚本,它读取`serverlist`中的每一行,遍历并执行免密登录的配置。`说明.txt`则是详细的操作指南,...

    SecureCRT批量telnet连接脚本,并备份配置

    SecureCRT脚本批量执行备份交换机或者路由器配置文件测试通过。 此脚本可以根据你的需要修改,改成其他功能,希望有需要的同学扩展思路。 使用SecureCRT对所有交换机路由器批处理执行dis cu、sa命令的脚本 使用...

    pexpect_deploy_tools:批量远程操作脚本-- scp 和 ssh

    批量远程操作脚本-- scp 和 ssh 无环境依赖,解压压缩包即可使用,较原生 expect 慢,可定制性高。 使用方法: 当前目录创建 ip list: 192.168.0.100 192.168.0.101 pscp.py 拷贝本地文件到远程机器(iplist.txt)...

    shell实现批量在多台windows服务器上执行同一命令并获取返回结果

    标题中的“shell实现批量在多台windows服务器上执行同一命令并获取返回结果”是指通过Linux Shell脚本,利用网络协议(如SSH)实现对多台Windows服务器进行远程操作,执行相同的命令,并收集每台服务器的执行结果。...

    SSH框架中关于EXCEL表格导入到MySQL数据库

    在Java开发领域,SSH(Spring、Struts和Hibernate)是一个常用的Web应用开发框架组合,它为企业级应用程序提供了模型-视图-控制器(MVC)架构。在这个特定的场景中,我们要探讨如何在SSH框架下将Excel表格数据导入到...

    LinuxSSH命令大全(20210930123859).pdf

    7. `ln -s tool bac` - 创建一个名为bac的符号链接(symbolic link)指向tool目录。这相当于快捷方式。 8. `cp -a tool /home/leavex/www` - 将tool目录及其所有内容复制到/home/leavex/www目录下。`-a`参数保留...

    用python写个自动SSH登录远程服务器的小工具(实例)

    本文将详细介绍如何使用Python编写一个简单实用的工具,该工具能够实现自动化SSH登录到远程服务器的功能。这对于经常需要远程管理服务器的用户来说非常方便,它能节省大量的时间并减少重复性劳动。 #### 功能需求 ...

Global site tag (gtag.js) - Google Analytics