springboot集成jpa/分页

pom.xml


<dependency>
             <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-data-jpa</artifactId>
         </dependency>
          <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
         </dependency>
         <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper</artifactId>
                <!-- <version>4.1.6</version> -->
                <version>5.1.1</version>
           </dependency>
           <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.0.18</version>
           </dependency>


application.yml

spring:
  application:
    name: spring-cloud-api-jpa
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.jdbc.Driver
    url:  jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
    username: 
    password: 
    initialSize: 5
    minIdle: 5
    maxActive: 20
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true
    maxPoolPreparedStatementPerConnectionSize: 20
    filters: stat,wall,log4j
    connectionProperties:  druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
  jpa:
    properties:
      hibernate:
        hbm2ddl:
          #hibernate.hbm2ddl.auto参数的作用主要用于:自动创建|更新|验证数据库表结构,有四个值
          #create: 每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因
          #create-drop :每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除
          #update:最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据  model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会
          #validate :每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值
          auto: update
        #dialect 主要是指定生成表名的存储引擎为InneoDB
        dialect: org.hibernate.dialect.MySQL5InnoDBDialect
    show-sql: true
        
server:
  port: 
  
eureka:
  client:
    serviceUrl:
      defaultZone:http://localhost:10100/eureka/
  instance:
    leaseRenewalIntervalInSeconds: 1
    leaseExpirationDurationInSeconds: 2
    
feign:
  hystrix:
    enabled: true


application.properties

druid.login.username=admin
druid.login.password=admin
druid.reset.enable=false


ApiServerApplication.java

package com.daimeng.api;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class ApiServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ApiServerApplication.class, args);
    }
}

SysUser.java

package com.daimeng.api.user.entity;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Transient;
@Entity
public class SysUser implements Serializable{
    @Transient
    private static final long serialVersionUID = 1L;
    
    @Id
    @GeneratedValue
    private Integer id;
    @Column(nullable = false, unique = true)
    private String loginName;
    @Column(nullable = false, unique = true)
    private String password;
    @Column(nullable = false, unique = true)
    private String realname;
    @Column(nullable = false, unique = true)
    private String email;
    @Column(nullable = false, unique = true)
    private String phone;
    
    public SysUser(String loginName, String password, String realname) {
        super();
        this.loginName = loginName;
        this.password = password;
        this.realname = realname;
    }
    
    public SysUser() {
        super();
        
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getLoginName() {
        return loginName;
    }
    public void setLoginName(String loginName) {
        this.loginName = loginName;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getRealname() {
        return realname;
    }
    public void setRealbame(String realname) {
        this.realname = realname;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    
    
}

SysUserRepository.java

package com.daimeng.api.user.repository;
import java.util.ArrayList;
import org.springframework.data.jpa.repository.JpaRepository;
import com.daimeng.api.user.entity.SysUser;
import com.github.pagehelper.PageInfo;
public interface SysUserRepository extends JpaRepository<SysUser, Integer>{
    //public PageInfo<UserEntity> getPage(Integer pageNum);
    public ArrayList<SysUser> findByLoginName(SysUser user);
    
}

UserServiceImpl.java

package com.daimeng.api.user.service.impl;
import java.util.ArrayList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import com.daimeng.api.user.entity.SysUser;
import com.daimeng.api.user.repository.SysUserRepository;
import com.daimeng.api.user.service.UserService;
import com.daimeng.api.utils.Constants;
@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private SysUserRepository userRepository;
    
    @Override
    public ArrayList<SysUser> getAll() {
        ArrayList<SysUser> list = (ArrayList) userRepository.findAll();
        return list;
    }
    @Override
    public ArrayList<SysUser> getUserByLoginName(SysUser user) {
        ArrayList<SysUser> list = userRepository.findByLoginName(user);
        return list;
    }
    @Override
    public void saveUser(SysUser user) {
        userRepository.save(user);
        if(user.getPassword() == null || "".equals(user.getPassword()) ||
                user.getLoginName() == null || "".equals(user.getLoginName())){
            throw new RuntimeException("发生异常,用户名或密码为空");
        }
    }
    @Override
    public Page<SysUser> getPage(Integer pageNum) {
        PageRequest pageable = new PageRequest(pageNum, Constants.PAGE_SIZE);
        Page<SysUser> list = userRepository.findAll(pageable);
        return list;
    }
}

UseController.java

package com.daimeng.api.user.action;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.daimeng.api.user.entity.SysUser;
import com.daimeng.api.user.service.UserService;
@RestController
@RequestMapping("/user")
public class UseController {
    @Autowired
    private UserService userService;
    
    @RequestMapping("/getUserList")
    public List<SysUser> getUsers() {
        ArrayList<SysUser> users = userService.getAll();
        return users;
    }
    
    @RequestMapping("/getUserPage/{pageNum}")
    public Page<SysUser> getUserPage(@PathVariable("pageNum") Integer pageNum) {
        Page<SysUser> users = userService.getPage(pageNum);
        return users;
    }
    
    @RequestMapping("/getUser/{loginName}")
    public List<SysUser> getUserByLoginName(@PathVariable("loginName") String loginName) {
        SysUser user = new SysUser();
        user.setLoginName(loginName);
        ArrayList<SysUser> users = userService.getUserByLoginName(user);
        return users;
    }
    
    @RequestMapping("/saveUser")
    public String saveUser(String loginName,String password) {
        SysUser user = new SysUser();
        user.setLoginName(loginName);
        user.setPassword(password);
        try {
            userService.saveUser(user);
            return "新增用户成功";
        } catch (Exception e) {
            return e.getMessage();
        }
        
    }
    
}


差点以为内容超长了
{context}