人事管理系统hrm的总结

人事管理系统

配置环境

  • spring-mvc.xml

     <!--    组件扫描,扫描controller中的@Controller-->
        <context:component-scan base-package="com.ssp.**.controller"/>
    
        <!--    注解驱动-->
        <mvc:annotation-driven/>
    
        <!--    处理静态资源-->
        <mvc:default-servlet-handler/>
    
  • spring-service.xml

    		<!--组件扫描器-->
       <context:component-scan base-package="com.ssp.**.service"/>
    
  • spring-mybatis.xml

    <bean id="SqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="myDataSource"/>
            <property name="configLocation" value="classpath:mybatis.xml"/>
        </bean>
      
    <!--    生成dao的代理对象-->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.ssp.**.dao"/>
            <property name="sqlSessionFactoryBeanName" value="SqlSessionFactoryBean"/>
        </bean>
    
  • spring-db.xml

    <context:property-placeholder location="classpath:jdbc.properties"/>
    
    <bean id="myDataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>
    
  • mybatis.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    
    
        <typeAliases>
            <package name="com.ssp.common.beans"/>
        </typeAliases>
    
    
    <!--    注册映射文件-->
        <mappers>
            <package name="com.ssp.**.dao"/>
        </mappers>
    </configuration>
    
  • jdbc.properties

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql:///hrm
    jdbc.username=root
    jdbc.password=root
    
  • spring-tx.xml

    <!--    注册平台事务管理器-->
    
        <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="myDataSource"/>
        </bean>
    
    <!--    注册事务通知-->
        <tx:advice id="txAdvice" transaction-manager="txManager">
    
    <!--        指定连接点-->
            <tx:attributes>
                <tx:method name="add*" propagation="REQUIRED" isolation="DEFAULT"/>
                <tx:method name="remove*" propagation="REQUIRED" isolation="DEFAULT"/>
                <tx:method name="modify*" propagation="REQUIRED" isolation="DEFAULT"/>
                <tx:method name="find*" propagation="REQUIRED" isolation="DEFAULT" read-only="true"/>
            </tx:attributes>
        </tx:advice>
    
    <!--    AOP配置-->
        <aop:config>
            <aop:advisor advice-ref="txAdvice" pointcut="execution(* *..service.*.*(..))"/>
        </aop:config>
    
  • pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>com.ssp</groupId>
      <artifactId>hrm</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>war</packaging>
    
      <name>hrm Maven Webapp</name>
      <!-- FIXME change it to the project's website -->
      <url>http://www.example.com</url>
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
      </properties>
    
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.11</version>
          <scope>test</scope>
        </dependency>
    
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>5.2.9.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-beans</artifactId>
          <version>5.2.9.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-core</artifactId>
          <version>5.2.9.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-expression</artifactId>
          <version>5.2.9.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
        <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>jstl</artifactId>
          <version>1.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-jcl</artifactId>
          <version>5.2.9.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-jdbc</artifactId>
          <version>5.2.9.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>5.2.9.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-web</artifactId>
          <version>5.2.9.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context-support</artifactId>
          <version>5.2.9.RELEASE</version>
        </dependency>
    
        <!-- 事务 -->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-tx</artifactId>
          <version>5.2.9.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-aop</artifactId>
          <version>5.2.9.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-aspects</artifactId>
          <version>5.2.9.RELEASE</version>
        </dependency>
        <!--aspectj-->
        <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
        <dependency>
          <groupId>org.aspectj</groupId>
          <artifactId>aspectjweaver</artifactId>
          <version>1.9.5</version>
          <scope>runtime</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/aopalliance/aopalliance -->
        <dependency>
          <groupId>aopalliance</groupId>
          <artifactId>aopalliance</artifactId>
          <version>1.0</version>
        </dependency>
    
        <!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-servlet-api -->
        <dependency>
          <groupId>org.apache.tomcat</groupId>
          <artifactId>tomcat-servlet-api</artifactId>
          <version>8.5.13</version>
        </dependency>
    
        <!-- mybatis -->
        <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
          <version>3.4.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis-spring</artifactId>
          <version>2.0.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.49</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
        <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>druid</artifactId>
          <version>1.1.22</version>
        </dependency>
        <dependency>
          <groupId>javax.servlet.jsp</groupId>
          <artifactId>jsp-api</artifactId>
          <version>2.2.1-b03</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
        <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-databind</artifactId>
          <version>2.12.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
        <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-core</artifactId>
          <version>2.12.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
        <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-annotations</artifactId>
          <version>2.12.2</version>
        </dependency>
          <dependency>
              <groupId>org.projectlombok</groupId>
              <artifactId>lombok</artifactId>
              <version>1.18.16</version>
              <scope>compile</scope>
          </dependency>
        <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>1.18.16</version>
          <scope>compile</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
        <dependency>
          <groupId>commons-fileupload</groupId>
          <artifactId>commons-fileupload</artifactId>
          <version>1.3.1</version>
        </dependency>
    
    
      </dependencies>
    
      <build>
        <finalName>hrm</finalName>
        <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
          <plugins>
            <plugin>
              <artifactId>maven-clean-plugin</artifactId>
              <version>3.1.0</version>
            </plugin>
            <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
            <plugin>
              <artifactId>maven-resources-plugin</artifactId>
              <version>3.0.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.8.0</version>
            </plugin>
            <plugin>
              <artifactId>maven-surefire-plugin</artifactId>
              <version>2.22.1</version>
            </plugin>
            <plugin>
              <artifactId>maven-war-plugin</artifactId>
              <version>3.2.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-install-plugin</artifactId>
              <version>2.5.2</version>
            </plugin>
            <plugin>
              <artifactId>maven-deploy-plugin</artifactId>
              <version>2.8.2</version>
            </plugin>
          </plugins>
        </pluginManagement>
        <resources>
          <resource>
            <directory>src/main/java</directory>
            <includes>
              <include>**/*.xml</include>
              <include>**/*.properties</include>
            </includes>
          </resource>
        </resources>
      </build>
    </project>
    

自定义标签的使用

  • 自定义标签的使用
    • 首先应该定义一个自定义标签的Java类(PageTag),继承SimpleTagSupport(简单标签)和传统标签,

    • 编写标签库描述符(tld)文件(应该放在web下)

    • 引入自定义标签

      <%@taglib uri="" prefix=""%/>
      

User

User中可能存在的问题

  • 用户登录:

    首先进入登录页面,获取登录信息,判断登录信息是否能被查到(是否为空),不为空,就把信息放在session中,session.setAttribute(“login_user”,login_user)

  • 为了防止不登录直接进入,需要添加Filter过滤器。

    • 1.创建一个接口实现Filter类的方法。

    • 2.定义需要放行的页面,样式,接口。

    • 3.强制类型转换获取request和response

  • 4.获取本次请求的URI

    • 5.用for循环判断后缀名是否和URI一致。一致就用**filterChain.doFilter(request,response)**放行

    • 6.判断当前用户是否登录。

    • 7.登录也需要在web.xml中配置

      • <!-- 登录的过滤器-->
         <filter>
           <filter-name>loginFilter</filter-name>
           <filter-class>com.ssp.Filter.LoginFilter</filter-class>
         </filter>
         <filter-mapping>
           <filter-name>loginFilter</filter-name>
           <url-pattern>/*</url-pattern>
         </filter-mapping>
        
  • 用户退出。session.removeAttribute(“login_user”);

  • 删除用户的时候不能把当前用户删除,不能删除存在外键的用户,否则会报DataIntegrityViolationException错误,将异常抛出就可以。

  • 判断添加用户信息是否重复。

  • findUser

     @RequestMapping("/findUser")
        public String findUser(@RequestParam(defaultValue = "1") int pageIndex, User user,Model model){
            //定义page变量,用于分页
            Page page=new Page();
            //获取页面的起始索引,并放在page中
            page.setPageIndex(pageIndex);
            //查询用户的数量,传入user,是为了按条件查询时的使用
            int recordCount=userService.findUserCount(user);
            //将用户数放在page中
            page.setRecordCount(recordCount);
            //查询数据库中的用户信息
            List<User> users = userService.findUser(user,page);
            //传给前台,用户数据的显示
            model.addAttribute("users",users);
            //用于查询数据回显
            model.addAttribute("user",user);
            //用于分页使用
            model.addAttribute("page",page);
            return "/jsp/user/user.jsp";
        }
    
    <select id="findUserLogin" resultType="User">
            select * from user_inf where
            loginname=#{loginname} and password=#{password}
    </select>
    <select id="findUser" resultType="User">
            select * from user_inf
            <where>
                <if test="user.username != null and user.username!=''">
                    username like "%" #{user.username} "%"
                </if>
                <if test="user.status != null and user.status!=''">
                    and status = #{user.status}
                </if>
            </where>
            limit #{page.firstLimitParam},#{page.pageSize}
    </select>
    <select id="findUserCount" resultType="int">
            select count(*) from user_inf
            <where>
                <if test="username != null and username!=''">
                    username like "%" #{username} "%"
                </if>
                <if test="status != null and status!=''">
                    and status = #{status}
                </if>
            </where>
    </select>
    
  • updateUser

    @RequestMapping("/updateUser")
        public String updateUser(int pageIndex,User user,Model model,String flag) {
            //flag为空的时候进行查询信息
            if (flag == null) {
                //获取要查询的用户信息
                User user1 = userService.findUserById(user.getId());
                //传给前台页面,用于显示
                model.addAttribute("user1", user1);
                //传pageIndex的值是为了再更改之后跳到更改的那一页,pageIndex还需要放在前台的隐藏域中
                model.addAttribute("pageIndex",pageIndex);
                return "/jsp/user/showUpdateUser.jsp";
            }else {
                //用rows判断是否插入成功
                int rows=userService.updateUser(user);
                if (rows>0) {
                    //成功就返回页面+pageIndex用于查询所有用户
                    return "redirect:/user/findUser?pageIndex="+pageIndex;
                }else {
                    model.addAttribute("fail","用户信息修改失败!");
                    return "/jsp/fail.jsp";
                }
            }
        }
    
    <update id="updateUser">
            update user_inf set
            loginname=#{loginname},username=#{username},status=#{status},password=#{password}
            where id=#{id}
    </update>
    
    
  • addUser

    @RequestMapping("/addUser")
        public String addUser(User user,Model model){
            int rows=userService.addUser(user);
            if(rows>0){
             //为了跳转到最新添加的一页
                //得到记录总数
                int recordCount = userService.findUserCount(null);
                Page page = new Page();
                //放进recordCount中
                page.setRecordCount(recordCount);
                //getTotalSize中有计算方法
                int totalSize = page.getTotalSize();
                return "redirect:/user/findUser?pageIndex="+totalSize;
            }else {
                model.addAttribute("fail","用户信息添加失败!");
                return "/jsp/fail.jsp";
            }
        }
    
    <insert id="addUser">
            insert into user_inf (loginname,password,status,username) values (
            #{loginname},#{password},#{status},#{username}
            )
    </insert>
    
  • removeUser

    @RequestMapping("removeUser")
        public String remove(Integer [] ids, Model model,HttpSession session){
    
            //用于判断是否删除当前用户
                //因为user放在了session域中
            User user = (User) session.getAttribute("login_user");
               //当前登录id和循环中id是否一样
            for (Integer id:ids){
                if (user.getId()==id){
                    model.addAttribute("fail","不能删除当前登录用户!");
                    return "/jsp/fail.jsp";
                }
            }
            //因为存在外键,所以不能删除存在外键的用户,所以会有异常,所以try
            try {
                int rows = userService.removeUser(ids);
                //因为是要删除所选中的所有用户,所以rows==ids.length
                if(rows==ids.length){
                    return "/user/findUser";
                }else {
                    model.addAttribute("fail","用户信息删除失败!");
                    return "/jsp/fail.jsp";
                }
            }catch (DataIntegrityViolationException e){
                model.addAttribute("fail","不能删除当前用户,因为存在公告信息和文档");
                return "/jsp/fail.jsp";
            }
        }
    
    <delete id="removeUser">
            delete from user_inf where id in
      <!--传入数组时,用array,传入字符数组类型时,用list接收,或者在dao层方法的参数中加@Param注解-->  
            <foreach collection="array" item="id" open="(" close=")" separator=",">
                #{id}
            </foreach>
    </delete>
    
  • checkLoginname

    function checkLoginname() {
    		/**获取登录的名字,判断是否和数据库中的信息一致。loginname="+$("#loginname").val()用于获取输入的登录名*/
    		$.get("${pageContext.request.contextPath}/user/checkLoginname?loginname="+$("#loginname").val(),
    
    				function (data) {
    					if (data == "EXIST"){
    						alert("登录名已存在,请重新输入!")
    
    						/**
    						 * 设置登录名输入框的值为空*/
    						$("#loginname").val("")
    					}
    				})
    	}
    		
    

Dept

和上边的一致,不用考虑User中的问题

Job

和上边的一致,不用考虑User中的问题

Employee

  • 这个应该考虑下拉框的问题。下拉框信息的显示

  • findEmployee

    • 前台接受显示

          职位:
      <select name="job_id" style="width:143px;">
           <option value="">--请选择职位--</option>
      <c:forEach items="${requestScope.jobs }" var="job">
      <option value="${job.id }" 
                    <c:if test="${job.id==employee.job.id}">selected</c:if>>${job.name }</option>
      </c:forEach>
      </select>
      
     @RequestMapping("/findEmployee")
        public String findEmployee(@RequestParam(defaultValue = "1") int pageIndex, Integer job_id,Integer dept_id,Employee employee, Model model) {
    
            //点击查询时,job和dept传不到后台 
            //将job_id和dept_id传入employee中的job对象和dept对象,这样就不用当做条件传入
            if(job_id!=null){
                Job job = new Job();
                job.setId(job_id);
                employee.setJob(job);
            }
            if(dept_id!=null){
                Dept dept = new Dept();
                dept.setId(dept_id);
                employee.setDept(dept);
            }
            //System.out.println(employee);
    
            //查出所有的信息并传给前台,用于数据在下拉框的显示
            List<Job> jobs = employeeService.findAllJob();
            List<Dept> depts = employeeService.findAllDept();
            model.addAttribute("jobs",jobs);
            model.addAttribute("depts",depts);
    
    
            int recordCount = employeeService.findEmployeeCount(employee);
            Page page = new Page();
            page.setPageIndex(pageIndex);
    
            page.setPageSize(2);
            page.setRecordCount(recordCount);
            List<Employee> employees = employeeService.findEmployee(employee,page);
            model.addAttribute("employees",employees);
            model.addAttribute("page",page);
    
    
            model.addAttribute("employee",employee);
    
    //        for (Employee employee1:employees)
    //            System.out.println(employee1);
            return "/jsp/employee/employee.jsp";
        }
    

Notice

  • //因为添加的时候需要获取添加人的信息
    User login_user = (User)session.getAttribute("login_user");
    notice.setUser(login_user);
    

Ducument

文件上传需要满足的条件文件上传

  • 前台:

    • 有文件上传的输入框
    • form表单的请求方式必须是post
    • form表单的enctype=“multipart/form-data
  • 后台:

    • 需要文件上传的jar包

      <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
      <dependency>
          <groupId>commons-fileupload</groupId>
          <artifactId>commons-fileupload</artifactId>
          <version>1.3.1</version>
      </dependency>
      
    • 接受文件的类型必须是MultipartFile

    • 配置Multipart解析器(在spring-mvc中配置)

      <!--    Multipart解析器-->
          <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
      
          </bean>
      
  • findDocument

    @RequestMapping("/findDocument")
        public String findDocument(String title,@RequestParam(defaultValue = "1") int pageIndex,Model model){
    
            Page page = new Page();
            page.setPageIndex(pageIndex);
    
            int recordCount = documentService.findDocumentCount(title);
            page.setRecordCount(recordCount);
    
            model.addAttribute("page",page);
            List<Document> documents = documentService.findDocument(title,page);
            model.addAttribute("documents",documents);
            model.addAttribute("title",title);
            return "/jsp/document/document.jsp";
        }
    

    因为牵扯到外键所以用resultMap

    <select id="findUserById" resultType="User">
            select * from user_inf where id=#{user_id}
        </select>
        <resultMap id="DocumentMap" type="Document">
            <id column="id" property="id"/>
    
            <association property="user"
                         javaType="User"
                         select="findUserById"
                         column="user_id"/>
        </resultMap>
        <select id="findDocument" resultMap="DocumentMap">
            select * from document_inf
            <where>
                <if test="title != null and title != ''">
                    title like '%' #{title} '%'
                </if>
            </where>
            limit #{page.firstLimitParam},#{page.pageSize}
        </select>
    
  • updateDocument

    需要考虑更改信息后删除原始文件

    @RequestMapping("/updateDocument")
        public String updateDocument(Document document,String flag,Model model,int pageIndex) throws IOException {
            if (flag == null){
                Document document1 = documentService.findDocumentById(document);
                model.addAttribute("document1",document1);
                model.addAttribute("pageIndex",pageIndex);
                return "/jsp/document/showUpdateDocument.jsp";
            }else {
        //更改文件可能存在的问题
                //2. 判断更改文件时有没有上传新的文档
                if(!document.getFile().isEmpty()) {
                    // 1.更改信息后文件没有被删除
                    //String path = "A:\\upload";
                    //获取原始文件信息
                    Document document1 = documentService.findDocumentById(document);
                    //判断原始文件是否存在
                    File targetFile = new File(path, document1.getFilename());
    
                    //如果原始文件存在就删除原始文件
                    if (targetFile.exists()) {
                        targetFile.delete();
                    }
                    //获取文件的原始名字
                    String filename = UUID.randomUUID() + document.getFile().getOriginalFilename();
    
                    //
                    document.getFile().transferTo(new File(path, filename));
    
                    document.setFilename(filename);
                }
    
                int rows = documentService.updateDocument(document);
                if (rows>0){
                    return "redirect:/document/findDocument?pageIndex="+pageIndex;
                }else {
                    model.addAttribute("fail","文档修改失败!");
                    return "/jsp/fail.jsp";
                }
            }
        
    
  • addDocument

    上传文件时,可能有的问题

    • 目录不存在
    • 文件名重复
@RequestMapping("/addDocument")
   public String addDocument(Document document, HttpSession session,Model model) throws IOException {

           //上传文件时,可能有的问题
               //1.目录不存在
               //2.文件名重复
       
     //1.保存上传文件到服务器
     //  String path = "A:\\upload";

       //判断目录存在不
       File file = new File(path);
       if (!file.exists()){
           file.mkdirs();
       }

           //获取原始文件的名称
       String filename = UUID.randomUUID()+document.getFile().getOriginalFilename();
           //定义保存的文件就是把MultipartFile转换为File,保存到服务器对应地址
       document.getFile().transferTo(new File(path,filename));
       //2.数据库中插入数据,给document的filename赋值
       document.setFilename(filename);
           //获取当前登录用户
       User login_user = (User) session.getAttribute("login_user");
       document.setUser(login_user);

       int rows = documentService.addDocument(document);
       if (rows>0){
           int recordCount = documentService.findDocumentCount(null);
           Page page = new Page();
           page.setRecordCount(recordCount);
           int totalSize = page.getTotalSize();
           return "redirect:/document/findDocument?pageIndex="+totalSize;
       }else {
           model.addAttribute("fail","用户信息添加失败!");
           return "/jsp/fail.jsp";
       }
   }
  • removeDocument

    @RequestMapping("/removeDocument")
        public String removeDocument(Integer [] ids,Model model){
         //   String path = "A:\\upload";
            int rows = 0;
            for (Integer id:ids) {
                Document document = documentService.findDocumentById1(id);
                File targetFile = new File(path,document.getFilename());
                if (targetFile.exists()){
                    targetFile.delete();
                }
                //定义for循环一个一个按id删除
                    int i = documentService.removeDocument(id);
                //计算删除的总数
                if (i>0){
                    rows++;
                }
            }
            if (rows==ids.length){
                return "/document/findDocument";
            }else {
                model.addAttribute("fail","文档删除失败!");
                return "/jsp/fail.jsp";
            }
        }
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值