Dept 1. 添加依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>Dept2: 配置环境
package com.db.common.config;
/**
* 注解配置应用说明:
* @ComponentScan 修饰配置类,用于定义要对哪些保重类型进行扫描,
* 属性value指定具体要扫描的包,属性excludeFilters表示对扫描包中的哪些类不进行加载
*
* 其中Controller.class,ControllerAdvice.class
* 为web请求层spring中的常用注解
*/
@ComponentScan(//@Component,@Controller,@Service,@Configuration...
value="com.db",
//要排除加载的类(例如使用controller注解修饰的类不进行加载)
excludeFilters={
@Filter(type=FilterType.ANNOTATION,//约束classes属性中的内容
classes={Controller.class,
ControllerAdvice.class})})//<context:component-scan base-package="com.jt"/>
public class AppRootConfig {//取代spring-configs.xml
}
package com.db.common.config;
@Configuration
@MapperScan(basePackages="com.db.**.dao")
/**等上
* @Bean
public MapperScannerConfigurer getScanner(){
MapperScannerConfigurer scanner=new MapperScannerConfigurer();
scanner.setBasePackage("com.db.**.dao");
return scanner;
} */
public class AppMyBatisConfig {
/**配置PageInterceptor插件*/
@Bean
public PageInterceptor getPageInterceptor(){
PageInterceptor pageIntercptor=new PageInterceptor();
Properties properties=new Properties();
properties.setProperty("value", "true");
pageIntercptor.setProperties(properties);
return pageIntercptor;
}
@Bean("sqlSessionFactory")
public SqlSessionFactoryBean newSqlSessionFactoryBean(
@Autowired DataSource dataSource) throws IOException{
SqlSessionFactoryBean fBean=new SqlSessionFactoryBean();
fBean.setDataSource(dataSource);
Resource[] mapperLocations=
new PathMatchingResourcePatternResolver()
.getResources("classpath:mapper/sys/*.xml");
fBean.setMapperLocations(mapperLocations);
Interceptor[] plugins={getPageInterceptor()};
fBean.setPlugins(plugins);
return fBean;
}
}
package com.db.common.config;
@PropertySource(value="classpath:configs.properties")
@Configuration
public class AppDateSourceConfig {
/**配置数据源对象:druid*/
@Bean(value="dataSource",initMethod="init",destroyMethod="close")
public DataSource newDruidDataSource(Environment env){
DruidDataSource ds=new DruidDataSource();
ds.setDriverClassName(env.getProperty("jdbcDriver"));
ds.setUrl(env.getProperty("jdbcUrl"));
ds.setUsername(env.getProperty("jdbcUser"));
ds.setPassword(env.getProperty("jdbcPassword"));
return ds;
}
}
package com.db.common.config;
/**
* 在此配置类中事项spring mvc资源对象的整合
* @author
*/
@ComponentScan(value="com.db",useDefaultFilters=false,//取消默认过滤器
includeFilters={//只加载有指定注解修饰的类
@Filter(type=FilterType.ANNOTATION,classes=
{Controller.class,ControllerAdvice.class})})
@EnableWebMvc//启用mvc默认配置(内置很多类型转换器)
public class AppMvcConfig extends WebMvcConfigurerAdapter {
//视图解析器
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp("/WEB-INF/pages/",".html");
}
}
package com.db.common.config;
/***
* tomcat 启动时会加载此类,然后执行相关方法
* 完成初始化动作(此类中要完成原web.xml中要
* 执行的一些操作)
* @author ta
*/
public class AppWebInitializer extends
AbstractAnnotationConfigDispatcherServletInitializer {
/**此类对象在执行时首先会执行onStartup方法完成一些初始化操作
并且会注册spring mvc前端控制器*/
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
System.out.println("onStartup()");
//super.onStartup(servletContext);
registerContextLoaderListener(servletContext);
//registerFilter(servletContext);
registerDispatcherServlet(servletContext);
}
//官方建议在此方法中加载model(service,respository)
@Override
protected Class<?>[] getRootConfigClasses() {
System.out.println("getRootConfigClasses()");
//return new Class[]{AppDataSourceConfig.class,AppMyBatisConfig.class};
return new Class[]{AppRootConfig.class};
}
//官方建议在此方法中加载View,Controller,...
@Override
protected Class<?>[] getServletConfigClasses() {
System.out.println("getServletConfigClasses()");
return new Class[]{AppMvcConfig.class};
}
//官方建议在此方法中定义请求映射
@Override
protected String[] getServletMappings() {
System.out.println("getServletMappings()");
//由前端控制器处理所有以.do结尾的请求
return new String[]{"*.do"};
}
}
Configs.properties
jdbcDriver=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql:///jtsys
jdbcUser=root
jdbcPassword=root
Dept3: 代码实现
<?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="com.db.sys.dao.SysLogDao">
<select id="findPageObjects"
resultType="com.db.sys.entity.SysLog">
select *
from sys_Logs
order by createdTime desc
<include refid="queryWhereId"/>
<!-- 借助此元素对共性数据进行提取 -->
<sql id="queryWhereId">
<where>
<if test="username!=null and username!=''">
username like concat("%",#{username},"%")
</if>
</where>
</sql>
</mapper>package com.db.sys.dao;
public interface SysLogDao {
List<SysLog> findPageObjects(
@Param("username")String username);
}package com.db.sys.service;
public interface SysLogService {
/**
* 通过此方法实现分页查询操作
* @param name 基于条件查询时的参数名
* @param pageCurrent 当前的页码值
* @return 当前页记录+分页信息
*/
PageInfo<SysLog> findPageObjects(
String username,
Integer pageNum);
}package com.db.sys.service.impl;
@Service
public class SysLogServiceImpl implements SysLogService{
@Autowired
private SysLogDao sysLogDao;
@Override
public PageInfo<SysLog> findPageObjects(
String username,
Integer pageNum){
//1.对方法参数进行校验
if(pageNum==null||pageNum<1)
throw new IllegalArgumentException("页码值不正确");
int pageSize=3;//页面大小
PageHelper.startPage(pageNum, pageSize);
List<SysLog> list=
sysLogDao.findPageObjects(username);
//对查询结果进行封装并返回。
PageInfo<SysLog> pageInfo=new PageInfo<>(list);
return pageInfo;
}
}package com.db.sys.controller;
@RequestMapping("/")
@Controller
public class PageController {
@RequestMapping("doIndexUI")
public String doIndexUI(){
System.out.println("----------");
return "starter";
}
@RequestMapping("doPageUI")
public String doPageUI(){
//try{Thread.sleep(3000);}catch(Exception e){}
return "common/page";//page.html
}
}package com.db.sys.controller;
@Controller
@RequestMapping("/log/")
public class SysLogController {
@Autowired SysLogService sysLogService;
@RequestMapping("doLogListUI")
public String doLogListUI(){
return "sys/log_list";
}
@RequestMapping("doFindPageObjects")
@ResponseBody
public JsonResult doFindPageObjects(
String username,
/*@RequestParam(value="pageNum",required=false)*/
Integer pageNum){
PageInfo<SysLog> po=
sysLogService.findPageObjects(
username,pageNum);
return new JsonResult(po);
}
}

版权声明:本文为weixin_43589837原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。