ThreeDay 分页与部门管理

传统分页

(1)改造export_web_manager工程中的CompanyController的list方法

 /**
     * 分页显示数据
     *
     *  需要:
     *    页数
     *    每页显示条数
     * @param request
     * @return
     */
    @RequestMapping("/list")
    public String list(HttpServletRequest request, @RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "10") int size){
        PageResult pr = companyService.findPage(page,size);
        request.setAttribute("page",pr);
        return "company/company-list";
    }

(2)在export_service_system工程的CompanyService中添加新的编辑方法

//分页查询
	public PageResult findPage(int page, int size) {
		//1.查询总记录数
		long total = companyDao.findCount();
		//2.查询分页的数据列表
		/**
		 * sql : select * from table limit  0,5
		 */
		List list = companyDao.findPage((page-1)*size,size);
		//3.构造返回值
		return new PageResult(total,list,page,size);
	}

(3)在export_dao工程中的CompanyDao接口和dao映射文件添加分页方法

//查询总记录数
	long findCount();

//分页查询
    List<Company> findPage(@Param("beg") int beg,@Param("end") int size);

映射文件

   <!--查询总记录数-->
    <select id="findCount" resultType="long">
        select count(*) from ss_company
    </select>

    <!--分页查询数据列表-->
    <select id="findPage" resultMap="BaseResultMap"  parameterType="map">
        select * from ss_company limit #{beg},#{end}
    </select>

PageHelper实现分页查询

1.引入坐标

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>最新版本</version>
</dependency>

2.配置mybatis和插件的整合(dao层spring整合mybatis配置文件)

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
    <!--配置pagehelper分页插件-->
    <property name="plugins">
        <list>
            <bean class="com.github.pagehelper.PageInterceptor">
                <property name="properties">
                    <value>
                        helperDialect=mysql
                    </value>
                </property>
            </bean>
        </list>
    </property>
</bean>

3.在service层使用查询完成分页查询

(1)改造export_web_manager工程中的CompanyController的list方法

 @RequestMapping("/list")
    public String list(HttpServletRequest request, @RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "10") int size){
        //PageResult pr = companyService.findPage(page,size);
        PageInfo pi = companyService.findPageHelper(page,size);
        request.setAttribute("page",pi);
        return "company/company-list";
    }

(2)在export_service_system工程的CompanyService中添加新的编辑方法

/**
     * 使用pageHepler分页
     * @param page
     * @param size
     * @return
     */
    @Override
    public PageInfo findPageHelper(int page, int size) {
        //调用静态方法,设置分页参数
        PageHelper.startPage(page,size);
        //查询全部:会自动对第一个查询语句进行分页
        List<Company> list = companyDao.findAll();
        return new PageInfo<>(list);
    }

部门管理

(1)在export_web_manager工程中的cn.itcast.web.controller.system包下创建部门管理控制器类DeptController

@Controller
@RequestMapping("/system/dept")
public class DeptController {

    @Autowired
    private DeptService deptService;

    @RequestMapping("/list")
    public String list(@RequestParam(defaultValue = "1")int page,@RequestParam(defaultValue = "10") int size, HttpServletRequest request){
        //调用service层查询数据
        String companyId = "1";
        PageInfo info = deptService.findAll(page, size, companyId);
        //将数据放到request域中
        request.setAttribute("page",info);
        return "system/dept/dept-list";
    }

}

(2)在export_service_system工程的cn.itcast.service.system包下添加DeptService接口DeptServiceImpl实现类并添加保存方法

public interface DeptService {
    /**
     * 查询全部
     * 参数:page,size,companyId
     */
    PageInfo findAll(int page,int size,String companyId);
}
public class DeptServiceImpl implements DeptService {

    @Autowired
    private DeptDao deptDao;

    /**
     * 查询全部
     * @param page:页数
     * @param size:每页显示条数
     * @param companyId
     * @return
     */
    @Override
    public PageInfo findAll(int page, int size, String companyId) {
        //调用PageHelper中的静态方法
        PageHelper.startPage(page,size);
        //调用dao层执行查询全部的方法
        List<Dept> list = deptDao.findAll(companyId);
        //构造返回值
        return new PageInfo<>(list);
    }
}

(3) 在export_dao工程的cn.itcast.dao.system包下配置DeptDao接口和dao映射文件

dao接口

public interface DeptDao {

    /**
     * 查询全部
     */
    public List<Dept> findAll(String companyId);

dao映射文件

<mapper namespace="com.itheima.dao.system.DeptDao">

    <resultMap id="baseResultMap" type="com.itheima.domain.system.Dept">
        <id property="id" column="dept_id"/>
        <result property="deptName" column="dept_name"/>
        <result property="parentId" column="parent_id"/>
        <result property="state" column="state"/>
        <result property="companyId" column="company_id"/>
        <result property="companyName" column="company_name"/>
    </resultMap>
  <select id="findAll" resultMap="baseResultMap">
    select * from pe_dept where company_id=#{companyId}
  </select>

保存部门

(1)在export_web_manager工程的DeptController中添加新的编辑方法

 /**
     * 保存或更新部门:
     * 如果存在id ==> 更新部门
     * 如果不存在id==> 保存部门
     */
    @RequestMapping("/edit")
    public String edit(Dept dept) {
        //1.设置所属企业信息
        String companyId = "1";
        String companyName = "传智播客";
        dept.setCompanyId(companyId);
        dept.setCompanyName(companyName);
        if (StringUtils.isEmpty(dept.getId())){
            //如果为空,是保存部门
            deptService.save(dept);
        }else {
            //如果不为空,是更新部门

        }
        return "redirect:/system/dept/list.do";
    }

(2)在export_service_system工程的cn.itcast.service.system包下添加DeptService接口DeptServiceImpl实现类并添加保存方法

  //保存部门信息
    public void save(Dept dept);
 //保存部门信息
    @Override
    public void save(Dept dept) {
        //设置id
        dept.setId(UUID.randomUUID().toString());
        //调用dao层保存信息
        deptDao.save(dept);
    }

(3)在export_dao工程的cn.itcast.dao.system包下配置DeptDao接口和dao映射文件

dao接口

 /**
     * 保存部门
     */
     public void save(Dept dept);
  <!--保存-->
    <insert id="save">
        insert into pe_dept
          (
            dept_id,
            dept_name,
            parent_id,
            state,
            company_id,
            company_name
          )
          values
          (
            #{id},
            #{deptName},
            #{parent.id},
            #{state},
            #{companyId},
            #{companyName}
          )   

更新部门

(1)在export_web_manager工程的DeptController中添加新的方法

  @RequestMapping("/toUpdate")
    public String toUpdate(HttpServletRequest request,String id){
        //根据id部门查询
        Dept dept = deptService.findById(id);
        request.setAttribute("dept",dept);
        //查询所有部门
        String companyId = "1";
        List<Dept> list = deptService.findAll(companyId);
        request.setAttribute("deptList", list);
        return "system/dept/dept-update";
    }

(2)在export_service_system工程的DeptService和DeptServiceImpl实现类中添加新的更新方法

@Override
	public Dept findById(String id) {
		return deptDao.findById(id);
	}

(3)在export_dao工程的中DeptDao和DeptDao.xml映射文件中添加方法和对应的SQL

dao接口

//根据id查询部门
	Dept findById(String id);

dao映射文件

 <!--根据id查询-->
    <select id="findById" resultMap="BaseResultMap" parameterType="string">
        select * from pe_dept where dept_id =#{id}
    </select>

(4)在export_service_system工程的DeptService和DeptServiceImpl实现类中添加新的更新方法

//更新部门信息
    void update(Dept dept);
 //更新部门信息
    @Override
    public void update(Dept dept) {
        deptDao.update(dept);
    }  

(5)在export_dao工程的中DeptDao和DeptDao.xml映射文件中添加方法和对应的SQL

dao接口

 /**
     * 更新部门
     */
    public void update(Dept dept);

dao映射文件

<!--更新-->
    <update id="update">
        update pe_dept set
            dept_name = #{deptName},
            parent_id = #{parent.id},
            state = #{state},
            company_id = #{companyId},
            company_name = #{companyName}
        where dept_id=#{id}
    </update>

删除部门

(1)在export_web_manager工程的DeptController中添加新的方法

//删除
	@RequestMapping("/delete")
	public String delete(String id) {
		//1.调用service删除
		deptService.delete(id);
		//2.页面跳转
		return "redirect:/system/dept/list.do";
	}

(2)在export_service_system工程的DeptService和DeptServiceImpl实现类中添加新的更新方法

  //删除部门信息
    void delete(String id);
 //删除部门信息
    @Override
    public void delete(String id) {
        deptDao.delete(id);
    }  	

(3)在export_dao工程的中DeptDao和DeptDao.xml映射文件中添加方法和对应的SQL

dao接口

//删除部门
	void delete(String id);
 <!--//删除-->
    <delete id="delete" parameterType="string">
        delete from pe_dept where dept_id=#{id}
    </delete>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值