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(); } } }
差点以为内容超长了 |