maven环境搭建及增删改查功能,带分页

本文介绍了一个基于SpringMVC与MyBatis框架整合的项目实践案例,包括了项目的整体架构、依赖配置、核心组件配置以及具体的数据访问层实现等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pom.xml中配置所需jar

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>AntSource</groupId>
  <artifactId>AntSource</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>AntSource Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
   <!-- 动态web项目 Servlet API -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<scope>provided</scope>
		</dependency>
		<!-- end Servlet API -->

		<!-- Spring+Spring MVC整合资源 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>4.3.11.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>4.3.11.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>4.3.11.RELEASE</version>
		</dependency>
		<!-- end spring MVC -->

		<!-- Mybatis数据相关 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>4.3.11.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.1</version>
		</dependency>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.3.1</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.38</version>
		</dependency>
		<!-- end Mybatis -->

		<!-- JSTL扩展标签资源 -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
		<!-- end JSTL -->

		<!-- JSON对象转化工具资源 -->
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
			<version>2.8.1</version>
		</dependency>
		<!-- JSON end -->

		<!-- java EE 扩展注解包 -->
		<dependency>
			<groupId>javax.annotation</groupId>
			<artifactId>javax.annotation-api</artifactId>
			<version>1.3.1</version>
		</dependency>
		<!-- end java EE -->

		<!-- 分页插件-0 必须先导入此资源 -->
		<dependency>
			<groupId>jsptags</groupId>
			<artifactId>pager-taglib</artifactId>
			<version>2.0</version>
		</dependency>
		<!-- end -->
		
		<!-- spring AOP插件,面向切面编程 -->
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>1.8.10</version>
		</dependency>
		<!-- end spring AOP -->

  </dependencies>
  <build>
    <finalName>AntSource</finalName>
  </build>
</project>

resources下新建spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context.xsd
	http://www.springframework.org/schema/mvc 
	http://www.springframework.org/schema/mvc/spring-mvc.xsd
	http://www.springframework.org/schema/aop
	http://www.springframework.org/schema/aop/spring-aop.xsd
	http://www.springframework.org/schema/tx
	http://www.springframework.org/schema/tx/spring-tx.xsd
	">

	<!-- 自动包扫描 -->
	<context:component-scan base-package="kohgylw.controller"></context:component-scan>
	<context:component-scan base-package="kohgylw.service.impl"></context:component-scan>
	<!-- end 自动包扫描 -->

	<!-- Mybatis Spring 整合配置 -->
	<bean id="dmds"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
		<property name="url"
			value="
			jdbc:mysql://127.0.0.1:3306/antsource?useUnicode=true&characterEncoding=gbk&useSSL=true
		"></property>
		<property name="username" value="root"></property>
		<property name="password" value="root"></property>
	</bean>

	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dmds" />
		<property name="configLocation" value="classpath:mybatis.xml" />
		<!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->
		<property name="mapperLocations" value="classpath:kohgylw/mapper/xml/*.xml" />
	</bean>

	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="kohgylw.mapper" />
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
	</bean>
	<!-- end MyBatis Spring -->

	<!-- spring MVC 相关配置 -->
	<mvc:annotation-driven />
	<mvc:default-servlet-handler />

	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver"
		p:prefix="/" p:suffix=".jsp" />
	<!-- end spring MVC -->

	<!-- 对于切面的注解驱动 -->
	<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
	<!-- end 切面 -->

	<!-- 关于Mybatis-spring 的事务管理 -->
	<bean id="dstm"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dmds"></property>
	</bean>
	<tx:annotation-driven transaction-manager="dstm" />
	<!-- end 事务管理 -->

</beans>

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>
  <settings>
  <!-- 这里配置mybatis的一些参数,需要啥配啥 -->
  <!-- 查看执行的sql语句和结果 -->
  	<setting name="logImpl" value="STDOUT_LOGGING"/>
  </settings>
</configuration>

generator Config.xml中配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<!-- 这个文件,是 MyBatis Generator 的配置文件,真正的黑科技,根据数据库自动生成Bean和Mapper -->
<generatorConfiguration>
	<!-- 配置驱动,写你的数据库驱动位置,maven中你的mysql的jar包所在位置 -->
	<classPathEntry
		location="E:/repo/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar" />
	<context id="context1">
		<commentGenerator>
			<property name="suppressDate" value="true" />
			<!-- 是否去除自动生成的注释 true:是 : false:否 -->
			<property name="suppressAllComments" value="true" />
		</commentGenerator>

		<!-- 在这写上你的数据库链接信息 -->
		<jdbcConnection driverClass="com.mysql.jdbc.Driver"
			connectionURL="jdbc:mysql://127.0.0.1:3306/antsource?useUnicode=true&characterEncoding=gbk&useSSL=true"
			userId="root" password="root" />
		<!-- 这写上你要把数据表映射的Bean生成在哪 -->
		<javaModelGenerator targetPackage="kohgylw.model"
			targetProject="AntSource" />
		<!-- 这写上你要把查询映射的XML生成在哪 -->
		<sqlMapGenerator targetPackage="kohgylw.mapper.xml"
			targetProject="AntSource" />
		<!-- 这写上你要把查询映射的接口生成在哪 -->
		<javaClientGenerator targetPackage="kohgylw.mapper"
			targetProject="AntSource" type="XMLMAPPER" />

		<!-- 这一部分写你要把哪张表生成Bean,参数名浅显易懂,下面可以写多个table -->
		<!-- 后面那一大串false的意思是是否生成增删改查的例子,一般来说可以生成 -->
		<!--  <table tableName="member" domainObjectName="Member"
			enableCountByExample="false" enableUpdateByExample="false"
			enableDeleteByExample="false" enableSelectByExample="false"
			selectByExampleQueryId="false"></table>

            <table tableName="auth" domainObjectName="Auth"
			enableCountByExample="false" enableUpdateByExample="false"
			enableDeleteByExample="false" enableSelectByExample="false"
			selectByExampleQueryId="false"></table>
			<table tableName="auth_group" domainObjectName="AuthGroup"
			enableCountByExample="false" enableUpdateByExample="false"
			enableDeleteByExample="false" enableSelectByExample="false"
			selectByExampleQueryId="false"></table>
			<table tableName="role" domainObjectName="Role"
			enableCountByExample="false" enableUpdateByExample="false"
			enableDeleteByExample="false" enableSelectByExample="false"
			selectByExampleQueryId="false"></table>
			
           <table tableName="member_role" domainObjectName="MemberRole"
			enableCountByExample="false" enableUpdateByExample="false"
			enableDeleteByExample="false" enableSelectByExample="false"
			selectByExampleQueryId="false"></table>
			  <table tableName="role_auth" domainObjectName="RoleAuth"
			enableCountByExample="false" enableUpdateByExample="false"
			enableDeleteByExample="false" enableSelectByExample="false"
			selectByExampleQueryId="false"></table> -->
			
			 <!--  <table tableName="department" domainObjectName="Department"
			enableCountByExample="false" enableUpdateByExample="false"
			enableDeleteByExample="false" enableSelectByExample="false"
			selectByExampleQueryId="false"></table>  -->
			   <table tableName="client" domainObjectName="Client"
			enableCountByExample="false" enableUpdateByExample="false"
			enableDeleteByExample="false" enableSelectByExample="false"
			selectByExampleQueryId="false"></table>  
           </context>
</generatorConfiguration>

Java代码

kohgylw.model下建      实体类Department.java

package kohgylw.model;

public class Department {
    private Integer departmentId;

    private String pId;

    private String departmentName;

    private String departmentTel;

    private String departmentDesc;

    private String departmentGer;

    private String departmentType;

    public Integer getDepartmentId() {
        return departmentId;
    }

    public void setDepartmentId(Integer departmentId) {
        this.departmentId = departmentId;
    }

    public String getpId() {
        return pId;
    }

    public void setpId(String pId) {
        this.pId = pId;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    public String getDepartmentTel() {
        return departmentTel;
    }

    public void setDepartmentTel(String departmentTel) {
        this.departmentTel = departmentTel;
    }

    public String getDepartmentDesc() {
        return departmentDesc;
    }

    public void setDepartmentDesc(String departmentDesc) {
        this.departmentDesc = departmentDesc;
    }

    public String getDepartmentGer() {
        return departmentGer;
    }

    public void setDepartmentGer(String departmentGer) {
        this.departmentGer = departmentGer;
    }

    public String getDepartmentType() {
        return departmentType;
    }

    public void setDepartmentType(String departmentType) {
        this.departmentType = departmentType;
    }

	
    
}

辅助分页插件DepartmentPager.java

package kohgylw.model;

import java.util.List;

//辅助生成分页插件的
 
public class DepartmentPager {
	private int total;//总页码
	private int totalRecords;//总记录数
	private List<Department> listDepartments;//分页记录集合
	
	
	public int getTotal() {
		return total;
	}
	
	public void setTotal(int total) {
		this.total = total;
	}
	
	public int getTotalRecords() {
		return totalRecords;
	}
	
	public void setTotalRecords(int totalRecords) {
		this.totalRecords = totalRecords;
	}

	public List<Department> getListDepartments() {
		return listDepartments;
	}

	public void setListDepartments(List<Department> listDepartments) {
		this.listDepartments = listDepartments;
	}

	@Override
	public String toString() {
		return "DepartmentPager [total=" + total + ", totalRecords=" + totalRecords + ", listDepartments="
				+ listDepartments + "]";
	}
	
	
}

kohgylw.mapper下建接口      DepartmentMapper.java

package kohgylw.mapper;

import java.util.List;
import java.util.Map;

import kohgylw.model.Department;

public interface DepartmentMapper {
    int deleteByPrimaryKey(Integer departmentId);

    int insert(Department record);

    int insertSelective(Department record);

    Department selectByPrimaryKey(Integer departmentId);

    int updateByPrimaryKeySelective(Department record);

    int updateByPrimaryKey(Department record);
    //求部门总记录数
	int queryDepartmentNum(Map<String, Object> totalMap);

	List<Department> querydepartmentPage(Map<String, Object> map);
   //根据部门名称查询单个信息
	Department selectByDepartmentId(Integer departmentId);

	
	
}

kohgylw.mapper.xml下建接口实现类      DepartmentMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="kohgylw.mapper.DepartmentMapper">
  <resultMap id="BaseResultMap" type="kohgylw.model.Department">
    <id column="department_id" jdbcType="INTEGER" property="departmentId" />
    <result column="p_id" jdbcType="VARCHAR" property="pId" />
    <result column="department_name" jdbcType="VARCHAR" property="departmentName" />
    <result column="department_tel" jdbcType="VARCHAR" property="departmentTel" />
    <result column="department_desc" jdbcType="VARCHAR" property="departmentDesc" />
    <result column="department_ger" jdbcType="VARCHAR" property="departmentGer" />
    <result column="department_type" jdbcType="VARCHAR" property="departmentType" />
  </resultMap>
  <sql id="Base_Column_List">
    department_id, p_id, department_name, department_tel, department_desc, department_ger, 
    department_type
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    select 
    <include refid="Base_Column_List" />
    from department
    where department_id = #{departmentId,jdbcType=INTEGER}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
    delete from department
    where department_id = #{departmentId,jdbcType=INTEGER}
  </delete>
  <insert id="insert" parameterType="kohgylw.model.Department">
    insert into department (department_id, p_id, department_name, 
      department_tel, department_desc, department_ger, 
      department_type)
    values (#{departmentId,jdbcType=INTEGER}, #{pId,jdbcType=VARCHAR}, #{departmentName,jdbcType=VARCHAR}, 
      #{departmentTel,jdbcType=VARCHAR}, #{departmentDesc,jdbcType=VARCHAR}, #{departmentGer,jdbcType=VARCHAR}, 
      #{departmentType,jdbcType=VARCHAR})
  </insert>
  <insert id="insertSelective" parameterType="kohgylw.model.Department">
    insert into department
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="departmentId != null">
        department_id,
      </if>
      <if test="pId != null">
        p_id,
      </if>
      <if test="departmentName != null">
        department_name,
      </if>
      <if test="departmentTel != null">
        department_tel,
      </if>
      <if test="departmentDesc != null">
        department_desc,
      </if>
      <if test="departmentGer != null">
        department_ger,
      </if>
      <if test="departmentType != null">
        department_type,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="departmentId != null">
        #{departmentId,jdbcType=INTEGER},
      </if>
      <if test="pId != null">
        #{pId,jdbcType=VARCHAR},
      </if>
      <if test="departmentName != null">
        #{departmentName,jdbcType=VARCHAR},
      </if>
      <if test="departmentTel != null">
        #{departmentTel,jdbcType=VARCHAR},
      </if>
      <if test="departmentDesc != null">
        #{departmentDesc,jdbcType=VARCHAR},
      </if>
      <if test="departmentGer != null">
        #{departmentGer,jdbcType=VARCHAR},
      </if>
      <if test="departmentType != null">
        #{departmentType,jdbcType=VARCHAR},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="kohgylw.model.Department">
    update department
    <set>
      <if test="pId != null">
        p_id = #{pId,jdbcType=VARCHAR},
      </if>
      <if test="departmentName != null">
        department_name = #{departmentName,jdbcType=VARCHAR},
      </if>
      <if test="departmentTel != null">
        department_tel = #{departmentTel,jdbcType=VARCHAR},
      </if>
      <if test="departmentDesc != null">
        department_desc = #{departmentDesc,jdbcType=VARCHAR},
      </if>
      <if test="departmentGer != null">
        department_ger = #{departmentGer,jdbcType=VARCHAR},
      </if>
      <if test="departmentType != null">
        department_type = #{departmentType,jdbcType=VARCHAR},
      </if>
    </set>
    where department_id = #{departmentId,jdbcType=INTEGER}
  </update>
  <update id="updateByPrimaryKey" parameterType="kohgylw.model.Department">
    update department
    set p_id = #{pId,jdbcType=VARCHAR},
      department_name = #{departmentName,jdbcType=VARCHAR},
      department_tel = #{departmentTel,jdbcType=VARCHAR},
      department_desc = #{departmentDesc,jdbcType=VARCHAR},
      department_ger = #{departmentGer,jdbcType=VARCHAR},
      department_type = #{departmentType,jdbcType=VARCHAR}
    where department_id = #{departmentId,jdbcType=INTEGER}
  </update>
  <!--根据部门名称查询单条信息  -->
   <select id="selectByDepartmentId" parameterType="java.lang.Integer" resultMap="BaseResultMap">
  
      select * from department where department_id = #{departmentId,jdbcType=INTEGER}
  
  </select>
 
  
  
       <!-- 按照部门领导和部门名称模糊查询总记录数 -->
<select id="queryDepartmentNum" resultType="java.lang.Integer"
		parameterType="java.util.Map">
		select count(*) from  department <!-- where
		<if test="departmentType != null and departmentType !=''">
			 department_type = #{departmentType,jdbcType=VARCHAR} and
		</if>
		   department_name  like  #{departmentName,jdbcType=VARCHAR}
 -->
	</select> 
	<!--获取部门分页记录  -->
	 <select id="querydepartmentPage" parameterType="java.util.Map" resultMap="BaseResultMap">
		select * from department <!--  where
		<if test="departmentType != null and departmentType != ''">
			department_type = #{departmentType,jdbcType=VARCHAR} and
		</if>
		  department_name  like #{departmentName,jdbcType=VARCHAR} -->
		  limit
		#{pno,jdbcType=VARCHAR},#{num,jdbcType=VARCHAR} 
	</select> 
</mapper>

kohgylw.service.impl下建接口      DepartmentService.java

package kohgylw.service.impl;

import kohgylw.model.Department;

public interface DepartmentService {
	//添加部门
	int insertDepartment(Department department);
	//删除部门
	int deleteMember(Department department);
	
	//实现查询所有以及默认分页
	String getDepartmentServicePage(String pageNumber, String departmentType, String departmentName);
	//	修改部门信息
	int updateDepartment(Department department);
	//根据部门名称查询单个信息
	Department selectByDepartmentId(Integer departmentId);

	

}

kohgylw.service.impl下建实现类      DepartmentServiceImpl.java

package kohgylw.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;


import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.google.gson.Gson;

import kohgylw.mapper.DepartmentMapper;
import kohgylw.model.Department;
import kohgylw.model.DepartmentPager;

//业务层(调用mapper层)
@Service
public class DepartmentServiceImpl implements DepartmentService {
	

	@Resource
	private DepartmentMapper departmentMapper;

	//添加部门
	public int insertDepartment(Department department) {
		
		return departmentMapper.insert(department);
	}
	//删除部门
	public int deleteMember(Department department) {
		
		return departmentMapper.deleteByPrimaryKey(department.getDepartmentId());
	}
	//实现查询所有以及默认分页
	public String getDepartmentServicePage(String pno, String departmentType, String departmentName) {
		System.out.println("pno"+pno);
		System.out.println("departmentType"+departmentType);
		System.out.println("departmentName"+departmentName);
		//每页记录6条数据
		int pageSize=6;
		//模糊查询赋值
				Map<String, Object> totalMap = new HashMap<String, Object>();
				totalMap.put("departmentType", "%" + departmentType + "%");
				totalMap.put("departmentName", departmentName);
				//求总记录数
				int totalRecords = departmentMapper.queryDepartmentNum(totalMap);
				System.out.println("totalRecords-----1-->"+totalRecords);
				//总页数
				int totalPage = 0;
				Gson gson = new Gson();
				//自定义类
				DepartmentPager departmentPager = new DepartmentPager();
				//给总记录数赋值
				departmentPager.setTotalRecords(totalRecords);
				//求出总页数
				if (totalRecords % pageSize > 0) {
					totalPage = totalRecords / pageSize + 1;
				} else {
					totalPage = totalRecords / pageSize;
				}
				System.out.println("totalPage -----1-->"+totalPage );
				
				departmentPager.setTotal(totalPage);
				//获取当前页
				int n = 1;
				if (pno != null && pno.length() > 0) {
					n = Integer.parseInt(pno);
				}
				
				Map<String, Object> map = new HashMap<String, Object>();
				
				map.put("pno", (n - 1) * pageSize);
				map.put("num", pageSize);
				map.put("departmentType", "%" + departmentType + "%");
				map.put("departmentName", departmentName);
				
				List<Department> listdepartments = departmentMapper.querydepartmentPage(map);
				System.out.println(totalRecords + "**********" + pageSize);
				departmentPager.setListDepartments(listdepartments);
				System.out.println("departmentJson=="+gson.toJson(departmentPager));
				return gson.toJson(departmentPager);
	}
	//修改用户信息
	public int updateDepartment(Department department) {
		
		
		return departmentMapper.updateByPrimaryKey(department);
	}
	//根据部门名称查询单个信息
	public Department selectByDepartmentId(Integer departmentId) {
		
		return departmentMapper.selectByDepartmentId(departmentId);
	}
	
	

}

kohgylw.controller下建控制器      DepartmentController.java


package kohgylw.controller;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import kohgylw.model.Department;
import kohgylw.service.impl.DepartmentService;

//控制器层(调用service业务层)
@Controller
@RequestMapping("/Department")
public class DepartmentController {
	
	@Resource
	private DepartmentService departmentService;
	
	//部门添加
	@RequestMapping("/addDepartment.ajax")
	@ResponseBody
	public String addDepartmentr(Department  department){
		  
		int rs = departmentService.insertDepartment(department);
		System.out.println("insert---->"+rs);
		if(rs>0){
			return "dpinsertOK";
		}
		
		return "dpinsertError";
			
	}
	
	//删除部门
		@RequestMapping("/deleteDepartment.ajax")
		@ResponseBody
		public String deleteDepartment(Department department) {
			int rs=departmentService.deleteMember(department);
			
			if(rs>0) {
				
				return "deleteDepartment";
			}
			
			return "deleteDeleteDepartmentError";
		}
	
		// 页面加载实现查询所有以及默认分页
		
		@RequestMapping(value="initDepartmentPage.ajax",produces="text/html;charset=utf-8")
		@ResponseBody
		public String initDepartmentPage(String pageNumber, String departmentType, String departmentName){
			System.out.println("pageNumber==>"+pageNumber);
			System.out.println("DepartmentType==>"+departmentType);
			System.out.println("DepartmentName==>"+departmentName);
			  String departmentJson = departmentService.getDepartmentServicePage(pageNumber, departmentType, departmentName);
			return departmentJson;
		}
		
		//修改部门信息
		@RequestMapping("/updateDepartment.ajax")
		@ResponseBody
		public String updateDepartment(Department department) {
			int rs=departmentService.updateDepartment(department);
			
			System.out.println("rs"+rs);
			if(rs>0) {
				return "updateD";
			}
			
			return "updateError";
		}
		
		//根据部门名称查询单个信息
		@RequestMapping("/queryDepartmentById.do")
		public String queryDepartmentById(HttpServletRequest request,Integer departmentId) {
			
			Department departments=departmentService.selectByDepartmentId(departmentId);
			
			System.out.println("department===="+departments);
			request.setAttribute("department", departments);
			
			return "view/department/department-update";
		}
	

	
}

webapp/view/department下
        department-list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<!DOCTYPE html>
<html>

<head>
<base href="<%=basePath%>">
<meta charset="UTF-8">
<title>部门管理</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport"
	content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="css/font.css">
<link rel="stylesheet" href="css/xadmin.css">
<link rel="stylesheet" href="css/kkpager_orange.css">
<script type="text/javascript"
	src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="lib/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="js/xadmin.js"></script>
<script type="text/javascript" src="js/kkpager.min.js"></script>
<!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
<!--[if lt IE 9]>
      <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
      <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>

<body>
	<div class="x-nav">
		<span class="layui-breadcrumb"> <a>人员管理</a> <a> <cite>部门管理</cite></a>
		</span> <a class="layui-btn layui-btn-small"
			style="line-height: 1.6em; margin-top: 3px; float: right"
			href="javascript:location.replace(location.href);" title="刷新"> <i
			class="layui-icon" style="line-height: 30px">ဂ</i></a>
	</div>
	<div class="x-body">
	  <div class="layui-row">
			<form class="layui-form layui-col-md12 x-so">
				<span>快速查询:</span> <input class="layui-input" placeholder="请输入部门编号"
					id="DepartmentType" name="DepartmentType" value="${department.departmentType }">
				<input type="text" id="DepartmentName" name="DepartmentName"
					placeholder="请输入部门" autocomplete="off" class="layui-input" value="${department.departmentName }">
				<button class="layui-btn" lay-submit="sreach()" lay-filter="sreach">
					<i class="layui-icon"></i>
				</button>
			</form>
		</div>
		<xblock>
		<button class="layui-btn" 
			onclick="x_admin_show('添加用户','view/department/department-add.jsp',500,500)">
			<i class="layui-icon"></i>添加
		</button>
		<span class="x-right" style="line-height: 40px">共有数据:<span id="totalRecords"></span>条</span></xblock>
		<table class="layui-table">
			<thead>
				<tr>
					<th>父级部门</th>
					<th>部门名称</th>
					<th>部门电话</th>
					<th>部门描述</th>
					<th>主管领导</th>
					<th>部门领导</th>
					<th>部门操作</th>
				     </tr>
			</thead>
			<tbody id="tbody">
				<!-- 数据示例 -->
<!-- 
								<tr>
									<td>HQ001</td>
									<td>HQ市场部</td>
									<td>HQ1000</td>
									<td>HQ市场部门描述</td>
									<td>HQ校长</td>
									<td>HQ市场部部长</td>
									
									<td>
									</a> <a title="编辑"
										onclick="x_admin_show('编辑','member-edit.html',600,400)"
										href="javascript:;"> <i class="layui-icon"></i>
									</a> <a onclick="x_admin_show('修改密码','member-password.html',600,400)"
										title="修改密码" href="javascript:;"> <i class="layui-icon"></i>
									</a> <a title="删除" onclick="department_del(this,'要删除的id')"
										href="javascript:;"> <i class="layui-icon"></i>
									</a></td>
								</tr> -->
<!-- 				end 数据示例 -->

			</tbody>
		</table>
	<!-- 分页部分 -->
		<div id="kkpager"></div>
		<!-- end 分页 -->

	</div>
	<script>
		
	//页面加载发起异步请求
		$(function(){
			//默认加载第一页
			getDepartmentPage(1);
			
		});
	
		//获取分页方法
		function getDepartmentPage(pageNumber) {
		 //获取部门领导
		 	var DepartmentType = $("#DepartmentType").val();
			//获取部门名称
			var DepartmentName = $("#DepartmentName").val();  
			$.ajax({
				type : 'POST',//提交方式
				dataType : 'text',//后台给前台传入参数
				data : {//前台给后台传入参数
					pageNumber : pageNumber,
					DepartmentType : DepartmentType,
					DepartmentName : DepartmentName 
				},
				url : 'Department/initDepartmentPage.ajax',//请求url
				success : function(result) {
					//把字符串转化为对象
					var departmentJson = eval("(" + result + ")");
					
					var listDepartments = departmentJson.listDepartments;
					
					$("#totalRecords").text(departmentJson.totalRecords);//显示总条数
				    
					showDepartmentPage(listDepartments);//生成列表
				
					initKkpager(departmentJson.total, departmentJson.totalRecords);//初始化分页插件
				},
				error : function() {
				}
			});

		};
		
		//用于生成列表的
		function showDepartmentPage(departmentinfos) {
			$("#tbody").html("");
			$.each(departmentinfos,function(n, value) {
				
								var row = "<tr id='tr_"+value.pId+"'><td>"
										+ value.pId
										+ "</td><td>"
										+ value.departmentName
										+ "</td><td>"
										+ value.departmentTel
										+ "</td><td>"
										+ value.departmentDesc
										+ "</td><td>"
										+ value.departmentGer
										+ "</td><td>"
										+ value.departmentType
										+ "</td>"
										+ "<td class='td-manage'><a onclick=\"updatedepartment('"+value.departmentId+"')\""
										+ "title='修改用户信息'> <i class='layui-icon'></i>"
										+ "</a> <a title='删除' onclick=\"department_del('"+value.departmentId+"')\""
										+ "> <i class='layui-icon'></i>"
										+ "</a></td></tr>"
									
										
								$("#tbody").append(row);
								if(value.memberStatus=="disable"){
									$("#tr_"+value.memberLoginid).css("background-color","#C0C0C0")
								}else{
									$("#tr_"+value.memberLoginid).css("background-color","#FFFFFF")
								}	
							});
		}
	
		/*初始化分页插件*/
		function initKkpager(total, totalRecords) {
			//对容器初始化
			var kkpagerSetting={
					pno : '1',
					mode : 'click', //设置为click模式
					//总页码  
					total : String(total),
					//总数据条数  
					totalRecords : String(totalRecords),
					//点击页码、页码输入框跳转、以及首页、下一页等按钮都会调用click
					//适用于不刷新页面,比如ajax
					click : function(n) {
						//这里可以做自已的处理
							getDepartmentPage(n);
						//处理完后可以手动条用selectPage进行页码选中切换
						this.selectPage(n);
					},
					//getHref是在click模式下链接算法,一般不需要配置,默认代码如下
					getHref : function(n) {
						return '#';
					}
				};
			kkpager.generPageHtml(kkpagerSetting);//使用心得json数据初始化分页插件
		}
	
	
		
	/*用户-删除*/
	function department_del(departmentId) {
		layer.confirm('确认要删除该用户吗?', function() {
			$.ajax({
				type:'POST',
				dataType:'text',
				data:{
					departmentId:departmentId
				},
				url:'Department/deleteDepartment.ajax',
				success:function(result){
					if(result=="deleteDepartment"){
						location.reload();
					}
				},
				error:function(){
					alert("服务器超时,请稍后再试!");
				}
			});
			//发异步删除数据
			layer.msg('已删除!', {
				icon : 1,
				time : 500
			});
		});
	}
	/*修改用户*/
	function updatedepartment(departmentId) {
		x_admin_show('修改用户','Department/queryDepartmentById.do?departmentId='+departmentId,500,500);		
	}
	
	</script>
</body>
</html>

department-add.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<!DOCTYPE html>
<html>

<head>
<base href="<%=basePath%>">
<meta charset="UTF-8">
<title>添加部门</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport"
	content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="css/font.css">
<link rel="stylesheet" href="css/xadmin.css">
<script type="text/javascript"
	src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="lib/layui/layui.js"
	charset="utf-8"></script>
<script type="text/javascript" src="js/xadmin.js"></script>
<!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
<!--[if lt IE 9]>
      <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
      <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>

<body>
	
				<div class="x-body">
		<form class="layui-form">
			<div class="layui-form-item">
				<label for="p_id" class="layui-form-label"> <span
					class="x-red">*</span>父级部门
				</label>
				<div class="layui-input-inline">
					<input type="text" id="p_id" autocomplete="off" class="layui-input">
				</div>
				<!-- <div class="layui-form-mid layui-word-aux">6到20个字符</div> -->
			</div>
			<div class="layui-form-item">
				<label for="d_name" class="layui-form-label"> <span
					class="x-red">*</span>部门名称
				</label>
				<div class="layui-input-inline">
					<input type="text" id="d_name" autocomplete="off"
						class="layui-input">
				</div>
				<!-- <div class="layui-form-mid layui-word-aux">6到16个字符</div> -->
			</div>
			<div class="layui-form-item">
				<label for="d_tel" class="layui-form-label"> <span
					class="x-red">*</span>部门电话
				</label>
				<div class="layui-input-inline">
					<input type="text" id="d_tel" autocomplete="off"
						class="layui-input" maxlength="11" onblur="checkMobile()">
				</div>
			</div>
			<div class="layui-form-item">
				<label for="d_desc" class="layui-form-label"> <span
					class="x-red">*</span>部门描述
				</label>
				<div class="layui-input-inline">
					<input type="text" id="d_desc" autocomplete="off"
						class="layui-input">
				</div>
				<!-- <div class="layui-form-mid layui-word-aux">输入真实姓名</div> -->
			</div>
			<div class="layui-form-item">
				<label for="d_ger" class="layui-form-label"> <span
					class="x-red">*</span>主管领导
				</label>
				<div class="layui-input-inline">
					<input type="text" id="d_ger" autocomplete="off"
						class="layui-input">
				</div>
			<!-- 	<div class="layui-form-mid layui-word-aux"></div> -->
			</div>
			<div class="layui-form-item">
				<label for="d_type" class="layui-form-label"> <span
					class="x-red">*</span>部门领导
				</label>
				<div class="layui-input-inline">
					<input type="text" id="d_type" autocomplete="off"
						class="layui-input">
				</div>
		
			<div class="layui-form-item">
				<label for="L_repass" class="layui-form-label"> </label>
				<button class="layui-btn" type="button" onclick="adddepartment()">
					增加</button>
			</div>
		</form>
	</div>

	<script>
	//手机号验证
	function checkMobile() {
		var  str =  $("#d_tel").val();
	  var re = /^1\d{10}$/;
	  if (re.test(str)) {
	    alert("正确");
	  } else {
	    alert("错误");
	    $("#d_tel").val("");
	  }
	}
	
		layui.use('laydate', function() {
			var laydate = layui.laydate;
			//执行一个laydate实例
			laydate.render({
				elem : '#L_entry' //指定元素
			});
		});
		function adddepartment(){
			layer.alert("增加成功", {
				icon : 6
			}, function() {
				/* //提交信息……
				// 获得frame索引
				var index = parent.layer.getFrameIndex(window.name);
				//关闭当前frame
				parent.layer.close(index); */
				
				//父id
				var pId = $("#p_id").val();
				//部门名称
				var departmentName = $("#d_name").val();
				//部门电话
				var departmentTel = $("#d_tel").val();
				//部门描述
				var departmentDesc = $("#d_desc").val();
				//主管领导
				var departmentGer = $("#d_ger").val();
				//部门类型
				var departmentType = $("#d_type").val();
			
			//提交信息发起异步请求。。。。。。	
				$.post("Department/addDepartment.ajax", {
					pId : pId,
					departmentName : departmentName,
					departmentTel : departmentTel,
					departmentDesc : departmentDesc,
					departmentGer : departmentGer,
					departmentType : departmentType,
				},
				 function(result){
				
					     if (result == "dpinsertOK") {
						// 获得frame索引
						var index = parent.layer
								.getFrameIndex(window.name);
						//关闭当前frame
						parent.layer.close(index);
						parent.location.reload();8
					}else{
						
						alert("插入失败!");
				
					}	
			});
		});
		}
	</script>
</body>

</html>

department-update.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<!DOCTYPE html>
<html>

<head>
<base href="<%=basePath%>"> 
<meta charset="UTF-8">
<title>部门修改</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport"
	content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="css/font.css">
<link rel="stylesheet" href="css/xadmin.css">
<script type="text/javascript"
	src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="lib/layui/layui.js"
	charset="utf-8"></script>
<script type="text/javascript" src="js/xadmin.js"></script>
<!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
<!--[if lt IE 9]>
      <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
      <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>

<body>
	
				<div class="x-body">
		<form class="layui-form">
			<div class="layui-form-item" style="display: none">
				<label for="d_id" class="layui-form-label"> 部门编号
				</label>
				<div class="layui-input-inline">
				<input type="text" id="d_id" autocomplete="off" class="layui-input"  value="${department.departmentId}">
					
				</div>
				<!-- <div class="layui-form-mid layui-word-aux">6到20个字符</div> -->
			</div>
			<div class="layui-form-item">
				<label for="p_id" class="layui-form-label"> <span
					class="x-red" >*</span>父级部门
				</label>
				<div class="layui-input-inline">
				
					<input type="text" id="p_id" autocomplete="off" class="layui-input" value="${department.pId}">
				</div>
				<!-- <div class="layui-form-mid layui-word-aux">6到20个字符</div> -->
			</div>
			<div class="layui-form-item">
				<label for="d_name" class="layui-form-label"> <span
					class="x-red">*</span>部门名称
				</label>
				<div class="layui-input-inline">
					<input type="text" id="d_name" autocomplete="off" value="${department.departmentName}"
						class="layui-input">
				</div>
				<!-- <div class="layui-form-mid layui-word-aux">6到16个字符</div> -->
			</div>
			<div class="layui-form-item">
				<label for="d_tel" class="layui-form-label"> <span
					class="x-red">*</span>部门电话
				</label>
				<div class="layui-input-inline">
					<input type="text" id="d_tel" autocomplete="off" value="${department.departmentTel}"
						class="layui-input" maxlength="11">
				</div>
			</div>
			<div class="layui-form-item">
				<label for="d_desc" class="layui-form-label"> <span
					class="x-red">*</span>部门描述
				</label>
				<div class="layui-input-inline">
					<input type="text" id="d_desc" autocomplete="off" value="${department.departmentDesc}"
						class="layui-input">
				</div>
				<!-- <div class="layui-form-mid layui-word-aux">输入真实姓名</div> -->
			</div>
			<div class="layui-form-item">
				<label for="d_ger" class="layui-form-label"> <span
					class="x-red">*</span>主管领导
				</label>
				<div class="layui-input-inline">
					<input type="text" id="d_ger" autocomplete="off" value="${department.departmentGer}"
						class="layui-input">
				</div>
			<!-- 	<div class="layui-form-mid layui-word-aux"></div> -->
			</div>
			<div class="layui-form-item">
				<label for="d_type" class="layui-form-label"> <span
					class="x-red">*</span>部门领导
				</label>
				<div class="layui-input-inline">
					<input type="text" id="d_type" autocomplete="off" value="${department.departmentType}"
						class="layui-input">
				</div>
		
			<div class="layui-form-item">
				<label for="L_repass" class="layui-form-label"> </label>
				<button class="layui-btn" type="button" onclick="updatedepartment()">
					修改</button>
			</div>
		</form>
	</div>

	<script>
		layui.use('laydate', function() {
			var laydate = layui.laydate;
			//执行一个laydate实例
			laydate.render({
				elem : '#L_entry' //指定元素
			});
		});
		function updatedepartment(){
			layer.alert("修改成功", {
				icon : 6
			}, function() {
				/* //提交信息……
				// 获得frame索引
				var index = parent.layer.getFrameIndex(window.name);
				//关闭当前frame
				parent.layer.close(index); */
				var departmentId = $("#d_id").val();
				//父id
				var pId = $("#p_id").val();
				//部门名称
				var departmentName = $("#d_name").val();
				//部门电话
				var departmentTel = $("#d_tel").val();
				//部门描述
				var departmentDesc = $("#d_desc").val();
				//主管领导
				var departmentGer = $("#d_ger").val();
				//部门类型
				var departmentType = $("#d_type").val();
			
			//提交信息发起异步请求。。。。。。	
				$.post("Department/updateDepartment.ajax", {
					departmentId:departmentId,
					pId : pId,
					departmentName : departmentName,
					departmentTel : departmentTel,
					departmentDesc : departmentDesc,
					departmentGer : departmentGer,
					departmentType : departmentType,
				},
				 function(result){
				
					     if (result == "updateD") {
						// 获得frame索引
						var index = parent.layer
								.getFrameIndex(window.name);
						//关闭当前frame
						parent.layer.close(index);
						parent.location.reload();8
					}else{
						
						alert("修改失败!");
				
					}	
			});
		});
		}
	</script>
</body>

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值