struts2.2.3 + spring3.1.0 + mybatis3.1.0集成简单demo

项目下载地址:http://download.csdn.net/detail/afgasdg/4171359

主要实现用户的增删改查操作

1、导入相应的jar包

2、配置web.xml主要是配置struts2和spring

web.xml文件内容如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  5. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  6. <welcome-file-list>
  7. <welcome-file>index.jsp</welcome-file>
  8. </welcome-file-list>
  9.  
  10. <!-- 加载spring的配置文件 -->
  11. <listener>
  12. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  13. </listener>
  14. <!-- 配置spring配置文件加载的位置 -->
  15. <context-param>
  16. <param-name>contextConfigLocation</param-name>
  17. <param-value>classpath:beans.xml</param-value>
  18. </context-param>
  19.  
  20. <!-- 配置struts2 -->
  21. <filter>
  22. <filter-name>struts2</filter-name>
  23. <filter-class>
  24. org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  25. </filter>
  26. <filter-mapping>
  27. <filter-name>struts2</filter-name>
  28. <url-pattern>/*</url-pattern>
  29. </filter-mapping>

  30. </web-app>

3、配置spring配置文件,主要包括配置数据源、事务、mybaits等

beans.xml配置文件详细如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:aop="http://www.springframework.org/schema/aop"
  6. xmlns:tx="http://www.springframework.org/schema/tx"
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  9. http://www.springframework.org/schema/aop
  10. http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
  11. http://www.springframework.org/schema/tx
  12. http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
  13. http://www.springframework.org/schema/context
  14. http://www.springframework.org/schema/context/spring-context-3.0.xsd">
  15.  
  16. <!-- 采用注释的方式配置bean -->
  17. <context:annotation-config />
  18. <!-- 配置要扫描的包 -->
  19. <context:component-scan base-package="com.pdsu.edu"></context:component-scan>
  20.  
  21. <!--proxy-target-class="true"强制使用cglib代理 如果为false则spring会自动选择-->
  22. <aop:aspectj-autoproxy proxy-target-class="true"/>
  23.  
  24. <!-- 数据库配置文件位置 -->
  25. <context:property-placeholder location="classpath:jdbc.properties" />
  26.  
  27. <!-- 配置dbcp数据源 -->
  28. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  29. <property name="driverClassName" value="${jdbc.driverClassName}" />
  30. <property name="url" value="${jdbc.url}" />
  31. <property name="username" value="${jdbc.username}" />
  32. <property name="password" value="${jdbc.password}" />
  33. <!-- 队列中的最小等待数 -->
  34. <property name="minIdle" value="${jdbc.minIdle}"></property>
  35. <!-- 队列中的最大等待数 -->
  36. <property name="maxIdle" value="${jdbc.maxIdle}"></property>
  37. <!-- 最长等待时间,单位毫秒 -->
  38. <property name="maxWait" value="${jdbc.maxWait}"></property>
  39. <!-- 最大活跃数 -->
  40. <property name="maxActive" value="${jdbc.maxActive}"></property>
  41. <property name="initialSize" value="${jdbc.initialSize}"></property>
  42. </bean>
  43.  
  44. <!-- 配置mybitasSqlSessionFactoryBean -->
  45. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  46. <property name="dataSource" ref="dataSource" />
  47. <property name="configLocation" value="classpath:mybatis.xml"></property>
  48. </bean>
  49.  
  50. <!-- 配置SqlSessionTemplate -->
  51. <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
  52. <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" />
  53. </bean>
  54.  
  55. <!-- 事务配置 -->
  56. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  57. <property name="dataSource" ref="dataSource" />
  58. </bean>
  59.  
  60. <!-- 使用annotation注解方式配置事务 -->
  61. <tx:annotation-driven transaction-manager="transactionManager"/>
  62.  
  63. </beans>

4.JDBC配置文件详细

  1. jdbc.driverClassName=com.mysql.jdbc.Driver
  2. jdbc.url=jdbc:mysql://localhost:3306/operationLog
  3. jdbc.username=root
  4. jdbc.password=
  5. jdbc.maxActive = 2
  6. jdbc.maxIdle =5
  7. jdbc.minIdle=1
  8. jdbc.initialSize =3
  9. jdbc.maxWait =3000

5、配置mybatis主配置文件:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
  3. <configuration>
  4. <typeAliases>
  5. <typeAlias alias="user" type="com.pdsu.edu.domain.User"/>
  6. </typeAliases>
  7. <mappers>
  8. <mapper resource="com/pdsu/edu/domain/sqlMappers/user.xml" />
  9. </mappers>
  10. </configuration>

6、配置user.xml文件

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <mapper namespace="com.pdsu.edu.domain.User">
  5.  
  6. <resultMap type="com.pdsu.edu.domain.User" id="userResult">
  7. <result property="id" column="id" jdbcType="INTEGER" javaType="java.lang.Integer" />
  8. <result property="username" column="username" />
  9. <result property="password" column="password" />
  10. </resultMap>
  11. <select id="userLogin" parameterType="user" resultMap="userResult">
  12. select * from user
  13. where
  14. username=#{username} and password=#{password}
  15. </select>
  16.  
  17. <select id="selectAllUser" resultMap="userResult">
  18. select * from user
  19. </select>
  20.  
  21. <select id="findUserById" parameterType="int" resultMap="userResult">
  22. select *
  23. from user where id=#{id}
  24. </select>
  25.  
  26. <insert id="insertUser" parameterType="user">
  27. <![CDATA[
  28. insert into
  29. user(username,password) values(#{username},#{password})
  30. ]]>
  31. </insert>
  32.  
  33. <update id="updateUser" parameterType="user">
  34. update user set
  35. username=#{username},password=#{password} where id=#{id}
  36. </update>
  37.  
  38. <delete id="deleteUser" parameterType="int">
  39. delete from user where
  40. id=#{id}
  41. </delete>
  42.  
  43. </mapper>

7、User实体的写法

  1. public class User implements Serializable {
  2. private static final long serialVersionUID = -4415990281535582814L;
  3. private Integer id;
  4. private String username;
  5. private String password;
  6.  
  7. public Integer getId() {
  8. return id;
  9. }
  10.  
  11. public void setId(Integer id) {
  12. this.id = id;
  13. }
  14.  
  15. public String getUsername() {
  16. return username;
  17. }
  18.  
  19. public void setUsername(String username) {
  20. this.username = username;
  21. }
  22.  
  23. public String getPassword() {
  24. return password;
  25. }
  26.  
  27. public void setPassword(String password) {
  28. this.password = password;
  29. }
  30.  
  31. @Override
  32. public String toString() {
  33. return "User [id=" + id + ", password=" + password + ", username=" + username + "]";
  34. }
  35.  
  36. @Override
  37. public int hashCode() {
  38. final int prime = 31;
  39. int result = 1;
  40. result = prime * result + ((id == null) ? 0 : id.hashCode());
  41. return result;
  42. }
  43.  
  44. @Override
  45. public boolean equals(Object obj) {
  46. if (this == obj)
  47. return true;
  48. if (obj == null)
  49. return false;
  50. if (getClass() != obj.getClass())
  51. return false;
  52. User other = (User) obj;
  53. if (id == null) {
  54. if (other.id != null)
  55. return false;
  56. } else if (!id.equals(other.id))
  57. return false;
  58. return true;
  59. }
  60. }

8、UserDao的写法

  1. public interface UserDao {
  2.  
  3. public abstract void insertUser(User user);
  4.  
  5. public abstract void updateUser(User user);
  6.  
  7. public abstract void deleteUser(Integer userId);
  8.  
  9. public abstract User findUserByid(Integer userId);
  10.  
  11. public abstract List<User> findAll();
  12.  
  13. public abstract User userLogin(User user);
  14.  
  15. }

9、UserDao的实现

  1. @Repository
  2. public class UserDaoImpl implements UserDao {
  3. private final String INSERT_USER = "insertUser";
  4. private final String UPDATE_USER = "updateUser";
  5. private final String DELETE_USER = "deleteUser";
  6. private final String FIND_USER_BYID = "findUserById";
  7. private final String SELECT_ALL_USER = "selectAllUser";
  8. private final String USER_LOGIN = "userLogin";
  9. @Autowired
  10. private SqlSessionTemplate sqlSessionTemplate;
  11.  
  12. public void insertUser(User user) {
  13. sqlSessionTemplate.insert(INSERT_USER, user);
  14. }
  15.  
  16. public void updateUser(User user) {
  17. sqlSessionTemplate.update(UPDATE_USER, user);
  18. }
  19.  
  20. public void deleteUser(Integer userId) {
  21. sqlSessionTemplate.delete(DELETE_USER, userId);
  22. }
  23.  
  24. public User findUserByid(Integer userId) {
  25. return sqlSessionTemplate.selectOne(FIND_USER_BYID, userId);
  26. }
  27.  
  28. public List<User> findAll() {
  29. return sqlSessionTemplate.selectList(SELECT_ALL_USER);
  30. }
  31.  
  32. public User userLogin(User user) {
  33. return sqlSessionTemplate.selectOne(USER_LOGIN, user);
  34. }
  35. }

10、UserService接口

  1. public interface UserService {
  2.  
  3. // 添加用户
  4. public abstract void addUser(User user);
  5.  
  6. public abstract void updateUser(User user);
  7.  
  8. public abstract void deleteUser(Integer userId);
  9.  
  10. public abstract User findUserById(Integer userId);
  11.  
  12. public abstract List<User> findAllUser();
  13.  
  14. public abstract User login(User user);
  15.  
  16. }

11、UserService接口的实现

  1. @Service
  2. @Transactional
  3. public class UserServiceImpl implements UserService {
  4.  
  5. @Autowired
  6. private UserDao userDao;
  7.  
  8. // 添加用户
  9. public void addUser(User user) {
  10. userDao.insertUser(user);
  11. }
  12.  
  13. // 更新用户
  14. public void updateUser(User user) {
  15. userDao.updateUser(user);
  16. }
  17.  
  18. public void deleteUser(Integer userId) {
  19. userDao.deleteUser(userId);
  20. }
  21.  
  22. public User findUserById(Integer userId) {
  23. return userDao.findUserByid(userId);
  24. }
  25.  
  26. public List<User> findAllUser() {
  27. return userDao.findAll();
  28. }
  29.  
  30. public User login(User user) {
  31. return userDao.userLogin(user);
  32. }
  33. }

12、配置Struts2

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
  3. <struts>
  4. <constant name="struts.i18n.encoding" value="UTF-8"/>
  5. <!-- 指定默认编码集 ,作用于HttpServletRequest的setCharacterEncoding()和freemarker,vilocity的输出 -->
  6. <constant name="struts.configuration.xmlreload" value="true"/>
  7. <!-- 当struts配置文件修改时是否自动加载 -->
  8. <constant name="struts.devMode" value="true"/>
  9. <!-- 开发模式下打印详细的错误信息 -->
  10. <constant name="struts.ui.theme" value="xhtml"/>
  11.  
  12. <package name="user" namespace="/user" extends="struts-default">
  13. <action name="user_*" class="userAction" method="{1}">
  14. <result name="success" type="redirectAction">user_queryAllUser.action</result>
  15. <result name="input">/index.jsp</result>
  16. <result name="userList">/userList.jsp</result>
  17. <result name="addUser">/userAdd.jsp</result>
  18. <result name="updateUser">/userUpdate.jsp</result>
  19. </action>
  20. </package>
  21. </struts>

13、UserAction具体实现

  1. @Controller
  2. @Scope("prototype")
  3. public class UserAction extends ActionSupport {
  4. @Autowired
  5. private UserService userService;
  6. private User user;
  7. private List<User> userList;
  8.  
  9. public String execute() throws Exception {
  10. return null;
  11. }
  12.  
  13. public String login() {
  14. if (user != null) {
  15. User user2 = userService.login(user);
  16. if (user2 != null) {
  17. return SUCCESS;
  18. }
  19. }
  20. this.addFieldError("user.username", "用户名或密码错误!");
  21. return INPUT;
  22. }
  23.  
  24. public String addUI() {
  25. return "addUser";
  26. }
  27.  
  28. public String updateUI() {
  29. user = userService.findUserById(user.getId());
  30. return "updateUser";
  31. }
  32.  
  33. public String add() {
  34. userService.addUser(user);
  35. return SUCCESS;
  36. }
  37.  
  38. public String delete() {
  39. userService.deleteUser(user.getId());
  40. return SUCCESS;
  41. }
  42.  
  43. public String update() {
  44. userService.updateUser(user);
  45. return SUCCESS;
  46. }
  47.  
  48. public User getUser() {
  49. return user;
  50. }
  51.  
  52. public void setUser(User user) {
  53. this.user = user;
  54. }
  55.  
  56. public String queryAllUser() {
  57. userList = userService.findAllUser();
  58. return "userList";
  59. }
  60.  
  61. public List<User> getUserList() {
  62. return userList;
  63. }
  64.  
  65. public void setUserList(List<User> userList) {
  66. this.userList = userList;
  67. }
  68.  
  69. }

14、登录页面的实现

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%@ taglib prefix="s" uri="/struts-tags"%>
  3. <%
  4. String path = request.getContextPath();
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  6. %>
  7.  
  8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  9. <html>
  10. <head>
  11. <base href="<%=basePath%>">
  12.  
  13. <title>用户登录</title>
  14. <meta http-equiv="pragma" content="no-cache">
  15. <meta http-equiv="cache-control" content="no-cache">
  16. <meta http-equiv="expires" content="0">
  17. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  18. <meta http-equiv="description" content="This is my page">
  19. <!--
  20. <link rel="stylesheet" type="text/css" href="styles.css">
  21. -->
  22. <s:head/>
  23. </head>
  24.  
  25. <body>
  26. <center>
  27. <h1>用户登录</h1>
  28. <s:a action="user_addUI" namespace="/user">添加新用户</s:a>
  29. <s:form action="user_login" namespace="/user" method="post">
  30. <s:textfield label="用户名" name="user.username"></s:textfield>
  31. <s:password label="密码" name="user.password"></s:password>
  32. <s:submit value="登录"></s:submit>
  33. </s:form>
  34. </center>
  35. </body>
  36. </html>

15、添加页面

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%@ taglib prefix="s" uri="/struts-tags"%>
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  4. <html>
  5. <head>
  6.  
  7. <title>添加新用户</title>
  8.  
  9. <meta http-equiv="pragma" content="no-cache">
  10. <meta http-equiv="cache-control" content="no-cache">
  11. <meta http-equiv="expires" content="0">
  12.  
  13. </head>
  14.  
  15. <body>
  16. <center>
  17. <h1>添加新用户</h1>
  18. <s:form action="user_add" namespace="/user" method="post">
  19. <s:textfield label="用户名" name="user.username"></s:textfield>
  20. <s:password label="密码" name="user.password"></s:password>
  21. <s:submit value="提交"></s:submit>
  22. </s:form>
  23. </center>
  24. </body>
  25. </html>

16、修改页面

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%@ taglib prefix="s" uri="/struts-tags"%>
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  4. <html>
  5. <head>
  6.  
  7. <title>修改用户</title>
  8.  
  9. <meta http-equiv="pragma" content="no-cache">
  10. <meta http-equiv="cache-control" content="no-cache">
  11. <meta http-equiv="expires" content="0">
  12.  
  13. </head>
  14.  
  15. <body>
  16. <center>
  17. <h1>修改用户</h1>
  18. <s:form action="user_update" namespace="/user" method="post">
  19. <s:hidden name="user.id"></s:hidden>
  20. <s:textfield label="用户名" name="user.username"></s:textfield>
  21. <s:password label="密码" name="user.password"></s:password>
  22. <s:submit value="提交"></s:submit>
  23. </s:form>
  24. </center>
  25. </body>
  26. </html>

17、列表页面

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%@ taglib prefix="s" uri="/struts-tags"%>
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  4. <html>
  5. <head>
  6.  
  7. <title>用户列表</title>
  8.  
  9. <meta http-equiv="pragma" content="no-cache">
  10. <meta http-equiv="cache-control" content="no-cache">
  11. <meta http-equiv="expires" content="0">
  12.  
  13. </head>
  14.  
  15. <body>
  16. <center>
  17. <h2>用户列表</h2>
  18. <h3><s:a action="user_addUI" namespace="/user">添加新用户</s:a> </h3>
  19. <table width="90%" border="1">
  20. <tr>
  21. <th>用户id</th>
  22. <th>用户名称</th>
  23. <th>用户密码</th>
  24. <th>操作</th>
  25. </tr>
  26. <s:iterator value="userList">
  27. <tr>
  28. <td><s:property value="id"/> </td>
  29. <td><s:property value="username"/> </td>
  30. <td><s:property value="password"/> </td>
  31. <td><s:a action="user_updateUI" namespace="/user"><s:param name="user.id">${id}</s:param>修改</s:a>
  32. <s:a action="user_delete" namespace="/user"><s:param name="user.id">${id}</s:param>删除</s:a></td>
  33. </tr>
  34. </s:iterator>
  35. </table>
  36. </center>
  37. </body>
  38. </html>

项目下载地址:http://download.csdn.net/detail/afgasdg/4171359

本文转自:http://www.cnblogs.com/fucktom/p/3747891.html

spring+struts2+mybatis的更多相关文章

  1. 手动配置三大框架整合:Spring+Struts2+mybatis

    如今主流的项目框架中,数据库持久层有可能不是hibernate,而是mybatis或者ibatis,事实上它们都是一样的,以下我来把环境搭建一下: [导入相关jar包]新建web项目projectms ...

  2. 整合Spring+Struts2+Mybatis加spring单元测试等

    前言 自己是在CentOS7的IntelliJ IDEA里开发的,里面中文输入法有问题经常用不了,所以这里用了很多chinglish,希望不要介意: 一:pom依赖 <?xml version= ...

  3. Spring+Struts2+Mybatis框架搭建时的常见典型问题

    搭建SSM框架时,总是遇到这样那样的问题,有的一眼就能看出来,有的需要经验的积累.现将自己搭建SSM框架时遇到的典型问题总结如下: 一.Struts2框架下的action中无法使用@Autowired ...

  4. 6、Spring+Struts2+MyBatis(mybatis有代理)整合增删改查

    1.创建如下的oracle脚本 create table userinfo (id ), name ), password telephone ), isadmin )); --4.2 用户表序列 c ...

  5. 5、Spring+Struts2+MyBatis+分页(mybatis无代理)增删改查

    1.创建如下项目结构 2.在src下的com.entity包下创建Dept.java package com.entity; /** * 部门表 * @author Holly老师 * */ publ ...

  6. 整合第二次(SSM第一次)------------>spring+struts2+mybatis

    今天我们来讲解一下SSM整合,感觉整合这个比上一篇整合更费时,原因在于自己不太熟悉MyBatis了,下午的时候恶补了一下,看了一下相关的文档和PDF电子书,知识真的是你不用就会忘记的,以后还是不能懈怠 ...

  7. Spring+Struts2+Mybatis整合

    1. 创建项目 2. 添加Spring能力 使用MyEclipse自动加载Struts2和Spring的jar包和配置文件,并在web.xml文件中添加上下文和监听器 web.xml文件如下: < ...

  8. spring+struts2+mybatis框架依赖pom.xml

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  9. mybatis+spring+struts2框架整合

     近期公司要开发新的项目,要用struts2+mybatis+spring框架,所以学习了下,来自己的博客发表下,希望能给大家带来帮助!下边我把我的myschool开发的源代码以及数据库贴出来!  开 ...

随机推荐

  1. Convert Sorted Array to Binary Search Tree With Minimal Height

    Given a sorted (increasing order) array, Convert it to create a binary tree with minimal height. Exa ...

  2. sc 与net命令的区别

    windows服务操作命令有sc和net 两个命令; sc stop serviceName  sc start serviceName net stop serviceName  net start ...

  3. swift 中delegate的使用

    今天写了delegate,遇到以下问题: 这里protocol的写法有问题,如果delegate指向一个实现了某个协议对象的引用,在oc里是这样写delegate的类型 id<protocol& ...

  4. Heap:左式堆的应用例(任意序列变单调性最小价值)

    首先来说一下什么是左式堆: A:左式堆是专门用来解优先队列合并的麻烦(任意二叉堆的合并都必须重新合并,O(N)的时间). 左式堆的性质: 1.定义零路经长:节点从没有两个两个儿子节点的路经长,把NUL ...

  5. ios学习总结(2) -- UIButton的使用

    原文地址 UIButton的类是一个UIControl子类,它实现了在触摸屏上的按钮.触摸一个按钮拦截事件和动作消息发送到目标对象时,它的挖掘.设定的目标和行动方法都继承自UIControl.这个类提 ...

  6. C++调用Object-C界面

    在C++代码中想调用显示一个IOS界面,使用NSNotificationCenter 1.在界面中注册消息 [[NSNotificationCenter defaultCenter]  addObse ...

  7. [Android Pro] sqlite数据库的char,varchar,text,nchar,nvarchar,ntext的区别

    reference : http://blog.csdn.net/xingfeng0501/article/details/7817121 1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索 ...

  8. cocos2dx实现象棋之运动

    1.头文件 void moveStone(int moveid, int killid, int x, int y); void moveComplete(CCNode*, void*); bool ...

  9. Nginx开启Gzip压缩大幅提高页面加载速度

    [root@12 conf]# vi nginx.conf gzip on;#开启GZIP gzip_min_length 1k; #不压缩临界值,大于1K的才压缩,一般不用改 gzip_buffer ...

  10. linux中的解压,压缩命令

    tar命令 解包:tar zxvf FileName.tar 打包:tar czvf FileName.tar DirName gz命令 解压1:gunzip FileName.gz 解压2:gzip ...