栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring+SpringMVC+Mybatis整合简单实现bootstrap分页查询

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring+SpringMVC+Mybatis整合简单实现bootstrap分页查询

一、要实现的页面

二、项目搭建 2.1 新建项目
  1. 新建Maven项目

  2. 点击File–点击Settings–点击Build,Execution,Deplovment–找到Maven修改Maven的安装路径:(Maven home directory)和settings.xml文件的路径(User settings file)在maven的conf目录下

2.2 导入依赖
  1. pom.xml导入依赖,build对xml文件页加载到target测试文件中
  • spring-webmvc
  • spring-jdbc
  • spring-test
  • spring-aspects
  • javax.servlet-api
  • jstl
  • jsp-api
  • mybatis
  • mybatis-spring
  • junit
  • log4j
  • common-logging
  • mysql-connector-java
  • jackson-databind
  • druid连接池
  • pagehelper分页插件


    4.0.0

    org.example
    springMVC08
    1.0-SNAPSHOT
    war
    
        
            org.springframework
            spring-aspects
            5.3.16
        
        
            org.springframework
            spring-webmvc
            5.3.16
        
        
            org.springframework
            spring-test
            5.3.16
        
        
            org.springframework
            spring-jdbc
            5.3.16
        
        
            mysql
            mysql-connector-java
            5.1.47
        
        
            org.mybatis
            mybatis
            3.4.6
        
        
            org.mybatis
            mybatis-spring
            1.3.1
        
        
            javax.servlet
            jsp-api
            2.0
        
        
            javax.servlet
            jstl
            1.2
        
        
            javax.servlet
            javax.servlet-api
            3.1.0
        
        
            com.fasterxml.jackson.core
            jackson-databind
            2.9.8
        
        
            junit
            junit
            4.12
            compile
        
        
            log4j
            log4j
            1.2.17
        
        
            com.alibaba
            druid
            1.2.9
        
        
            com.alibaba
            fastjson
            1.2.54
        
        
            com.github.pagehelper
            pagehelper
            5.1.10
        
    
    
        
            
                src/main/java
                
                    *.xml
                    **/*.xml
                
                true
            
        
    


2.3 新建web.xml
  1. main目录下新建webapp目录,webapp目录下新建WEB-INF目录

  2. 点击File-点击ProjectStructure

  3. 在弹出的窗口找到Modules–>点击Web–>点击+号–>添加web.xml–>路径改成刚刚新建的src/main/webapp/WEB-INF目录下


2.4 web.xml添加配置如下
  1. 前端控制器
  2. 处理乱码
  3. 启动spring工厂


    
    
        mvc_xmq
        org.springframework.web.servlet.DispatcherServlet
    
    
        mvc_xmq
        /
    
    
    
        fileEncoding
        org.springframework.web.filter.CharacterEncodingFilter
    
    
        fileEncoding
        /*
    
    
    
        org.springframework.web.context.ContextLoaderListener
    
    
        contextConfigLocation
        classpath:
    

2.5 新建包

com.lyx.dao
com.lyx.entity
com.lyx. web
com.lyx.service

2.5.1 entity
  • User类

public class User {
    private int id;
    private String username;
    private String password;
    private int gender;
    private Date registTime;
//get set方法 toString方法
//不写构造方法!
...
  • Page类
public class Page {
    private Integer pageNum;
    private Integer pageSize = 5;

    public Page(Integer pageNum, Integer pageSize) {
        this.pageNum = pageNum;
        this.pageSize = pageSize;
    }
    //get set方法
    ...

2.5.2 dao
  • UserDao
package com.lyx.dao;

import com.lyx.entity.User;
import java.util.List;

public interface UserDao {
    public List queryUsers();
}

  • UserDao-Mapper.xml
  1. namespace不能忘记
  2. resultMap的type属性要在spring的配置文件(applicationContext.xml)中定义缺省包路径
  3. colume是数据库的列名
  4. property是User类的属性名



   
       
       
       
       
       
   
    
        select * from t_user
    

2.5.3 service
  • UserService
  1. 这个PageInfo<>是分页插件中自带的page集合类,类似于List<>
  2. 对于查询所有用户,方法是不用给参数的
  3. 分页查询,也就是要做sql语句后面加上LIMIT 1,4;(从第1行开始查,查4行)
  4. 我们把这两个参数封装到上面定义的Page类里面
package com.lyx.service;

import com.github.pagehelper.PageInfo;
import com.lyx.entity.Page;
import com.lyx.entity.User;

import java.util.List;

public interface UserService {
    public PageInfo queryUsers(Page page);
}

  • UserServiceImpl
  1. 在这里我们使用注解开发
  2. @Service 添加在实现类UserServiceImpl类上,相当于在配置文件中定义:
    
        
    
  1. @Autowired
    @Qualifier(“userDao”)
    private UserDao userDao;
    相当于在实现类UserServiceImpl类里面定义set方法且在配置文件中添加上面bean标签里的property标签

  2. 注意这里如果你没有在web.xml文件中配置启动spring工厂会报错

  3. @Transactional(propagation = Propagation.SUPPORTS)
    这个是事务管理,相当于spring配置文件中的:标签

  4. PageHelper.startPage();
    对其之后的第一个查询追加分页查询的方法

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    @Qualifier("userDao")
    private UserDao userDao;

    @Override
    @Transactional(propagation = Propagation.SUPPORTS)
    public PageInfo queryUsers(Page page) {
        PageHelper.startPage(page.getPageNum(),page.getPageSize());
        List users = userDao.queryUsers();
        return new PageInfo(users);
    }
}

2.5.4 web

也就是controller包

  1. Mode把数据放到request作用域里面
  2. @Autowired
    @Qualifier(“userServiceImpl”)
    private UserService userService;
@Controller
public class UserController {
    @Autowired
    @Qualifier("userServiceImpl")
    private UserService userService;

    @GetMapping("/test")
    public String queryUsers(Model model, Page page){
        if(page.getPageNum()==null){
            page.setPageNum(1);
        }
        PageInfo users = userService.queryUsers(page);
        model.addAttribute("users",users);
        return "user";
    }
}

2.6 新建mvc.xml



    
        
    
    
        
            
                
                    
                        application/json
                    
                
            
        
    
    
        
        
    
    

2.7 新建applicationContext.xml
  • database.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3308/mybatis_xmq?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456
jdbc.minIdle=2
jdbc.maxActive=20
jdbc.initialSize=2
  • applicationContext.xml



    
    
        
        
        
        
        
        
        
        
        
    
    
        
        
            
                classpath:com/lyx/dao/*.xml
            
        
        
        
            
                
                    
                        
                            
                            true
                        
                    
                
            
        
    
    
        
        
        
    

    
        
    
    
    
        
    
    


2.8 补齐web.xml文件的配置信息
  • 把刚刚写的applicationContext.xml文件和mvc.xml文件配置到web.xml文件中



    
    
        mvc_xmq
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:mvc.xml
        
    
    
        mvc_xmq
        /
    
    
    
        fileEncoding
        org.springframework.web.filter.CharacterEncodingFilter
    
    
        fileEncoding
        /*
    
    
    
        org.springframework.web.context.ContextLoaderListener
    
    
        contextConfigLocation
        classpath:applicationContext.xml
    

2.8 web层

controller

package com.lyx.web;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.lyx.entity.Page;
import com.lyx.entity.User;
import com.lyx.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.List;

@Controller
public class UserController {
    @Autowired
    @Qualifier("userServiceImpl")
    private UserService userService;

    @GetMapping("/test")
    public String queryUsers(Model model, Page page){
        if(page.getPageNum()==null){
            page.setPageNum(1);
        }
        PageInfo users = userService.queryUsers(page);
        model.addAttribute("users",users);
        return "user";
    }
}
2.9 user.jap
  • 上面controll的handler返回值为user,跳转到user.jsp页面
  1. webapp下新建包static/js,添加jquery-3.5.1.js
  2. bootstrap上面直接复制了部分代码:Bootstrap中文文档
  3. 分页实现,也从bootstrap上面找一个复制下来改
  4. table表格的也是复制
  5. c:foreach的item是${requestScope.users.list},这个list是PageInfo的属性:当前页的数据
  6. 分页实现的代码:
  7. hasPreviousPage等属性都是PageInfo(分页插件pageHelper自带的类)中的属性
  8. contrller中的方法有Page形参,所有传递的参数是Page的属性就可以了这里a标签的href=/test?pageNum=xxx,实现第几页
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmg" uri="http://java.sun.com/jsp/jstl/fmt" %>



    
    
    
    Title
    








        
id username password gender registTime
${u.id} ${u.username} ${u.password} ${u.gender}
2.10 Tomcat运行

访问路径为http://localhost:8080/test

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/878626.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号