1. 程式人生 > >PageHelper在Spring+Spring MVC+MyBatis中的配置使用

PageHelper在Spring+Spring MVC+MyBatis中的配置使用

本文件基於配置好了的Spring + Spring MVC + MyBatis,可以參考:

http://www.cnblogs.com/QingXiaxu/p/8144968.html

裡面有原始碼下載,基於其中的ssm程式碼

 

1、新增PageHelper依賴

<!-- pagehelper分頁外掛 -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.1.2</version>
</dependency>

 

2、在applicationContext.xml中新增PageHelper配置(黃色背景處)

複製程式碼

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

    <!-- mybatis:scan會將com.app.mapper包裡的所有介面當作mapper配置,之後可以自動引入mapper類 -->
    <mybatis:scan base-package="com.app.mapper" />

    <!-- 掃描com.app包下面的java檔案,有Spring的相關注解的類,則把這些類註冊為Spring的bean -->
    <context:component-scan base-package="com.app" />

    <!-- 使用PropertyOverrideConfigurer後處理器載入資料來源引數 -->
    <context:property-override location="classpath:db.properties" />

    <!-- 配置c3p0資料來源 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" />

    <!-- 配置SqlSessionFactory,org.mybatis.spring.SqlSessionFactoryBean是Mybatis社群開發用於整合Spring的bean -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"
        p:dataSource-ref="dataSource">
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                        <value>
                helperDialect=mysql
              </value>
                    </property>
                </bean>
            </array>
        </property>
    </bean>

    <!-- JDBC事務管理器 -->
    <bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
        p:dataSource-ref="dataSource" />

    <!-- 啟用支援annotation註解方式事務管理 -->
    <tx:annotation-driven transaction-manager="transactionManager" />

</beans>

複製程式碼

 

3、在UserMapper.java裡面新增一個查詢所有資料的方法(黃色背景處) 

複製程式碼

package com.app.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Select;

import com.app.entity.User;

public interface UserMapper {

    @Select("select * from tb_user where id = #{id}")
    User findUserById(Integer id);

    @Insert("insert into tb_user(userName, birth) values(#{userName}, #{birth})")
    @Options(useGeneratedKeys = true, keyProperty = "id")
    public Integer saveUser(User user);
    
    @Select("select * from tb_user")
   public List<User> findAllUser();
}

複製程式碼

  

4、Service層

UserServer.java

複製程式碼

package com.app.servcie;

import java.util.List;

import com.app.entity.User;

public interface UserService {

    User findUserById(Integer id);

    Integer saveUser(User user);
    
    List<User> findAllUser();
}

複製程式碼

UserServiceImp.java

複製程式碼

package com.app.servcie;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.app.entity.User;
import com.app.mapper.UserMapper;

@Service(value = "userService")
public class UserServiceImp implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public Integer saveUser(User user) {
        return userMapper.saveUser(user);
    }

    @Override
    public User findUserById(Integer id) {
        return userMapper.findUserById(id);
    }

    @Override
    public List<User> findAllUser() {
    return userMapper.findAllUser();
    }

}

複製程式碼

 

5、UserController,java新增一個查詢所有使用者資訊的介面(黃色背景處) 

複製程式碼

package com.app.controller;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.app.entity.User;
import com.app.servcie.UserService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

@Controller
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/insertUser")
    @ResponseBody
    public User insertUser(User user) {
        userService.saveUser(user);
        User resultUser = userService.findUserById(user.getId());
        return resultUser;
    }

    @RequestMapping("/getAllUser")
    @ResponseBody
    public List<User> getAllUser(@RequestParam(required = false, defaultValue = "1") Integer startPage,
            @RequestParam(required = false, defaultValue = "5") Integer PageSize) {
        PageHelper.startPage(startPage, PageSize);
        List<User> users = new ArrayList<>();
        users = userService.findAllUser();
        PageInfo<User> pi = new PageInfo<>(users);
        return users;
    }
}

複製程式碼

 

6、測試(查詢第2頁的5條資料)