SpringBoot使用JPA
2018-01-25 21:54
316 查看
Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA 可以极大提高开发效率!
项目结构:
添加依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!-- MYSQL --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
application.properties
#datasource spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql:///test?useUnicode=true&characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.tomcat.max-active=20 spring.datasource.tomcat.test-while-idle=true spring.datasource.tomcat.validation-query=select 1 spring.datasource.tomcat.default-auto-commit=false spring.datasource.tomcat.min-idle=15 spring.datasource.tomcat.initial-size=15 #jpa spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jackson.serialization.indent-output=true
User.java
package com.dx.eintity; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; /** * * @ClassName: User * @Description:实体User * @author: dongxiang * @date: 2018年1月25日 上午11:30:35 * @version V1.0 */ @Entity @Table(name = "sys_user") public class User { public User() { } public User(String name, String password) { this.name = name; this.password = password; } private int id; private String name; private String password; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) public int getId() { return id; } public void setId(int id) { this.id = id; } @Column(name = "name") public String getName() { return name; } public void setName(String name) { this.name = name; } @Column(name = "password") public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "userId=" + id + ", username='" + name + '\'' + ", userpwd='" + password + '\'' + '}'; } }
UserDao.java
package com.dx.dao; import java.util.List; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Service; import com.dx.eintity.User; @Service public interface UserDao extends JpaRepository<User, Integer> { User findByName(String name); List<User> findByNameContaining(String name); Page<User> findByNameNot(String name,Pageable pageable); }
MainController.java
package com.dx.controller; import java.util.Iterator; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.dx.dao.UserDao; import com.dx.eintity.User; /** * * @ClassName: MainController * @Description:请求处理 * @author: dongxiang * @date: 2018年1月25日 上午11:37:17 * @version V1.0 */ @RestController public class MainController { @Autowired UserDao userDao; /** * * @Title: getUser * @Description:获取用户 * @param: @param id * @param: @return * @return: User * @throws */ @RequestMapping("/getUser") public User getUser(String name) { return userDao.findByName(name); } /** * * @Title: getUsersByName * @Description: 根据姓名查询 * @param: @param name * @param: @return * @return: List<User> * @throws */ @RequestMapping("/getUsersByName") public List<User> getUsersByName(String name) { return userDao.findByNameContaining(name); } @RequestMapping("/getPageUser") public Page<User> getPageUser(String name) { Sort sort = new Sort(Sort.Direction.DESC, "id");// 排序 int page = 1;// 第几页 int size = 5;// 每页多少条 Pageable pageable = new PageRequest(page, size, sort); Page<User> pages = userDao.findByNameNot(name, pageable); Iterator<User> it = pages.iterator(); while (it.hasNext()) { System.out.println("value:" + ((User) it.next()).getName()); } return userDao.findByNameNot(name, pageable); } @RequestMapping("/addUser") public String addUser() { User u = new User("vvv", "vvvvvv"); userDao.save(u); return "添加成功!"; } }
启动项目,测试结果:
相关文章推荐
- Spring Cloud Spring Boot mybatis分布式微服务云架构(十八)使用Spring-data-jpa(2)
- springboot使用spring-data-jpa操作MySQL数据库
- spring-boot-starter-data-jpa 中的 Eaxmple 如何使用
- SpringBoot JPA 多数据源的使用
- SpringBoot 使用JPA操作数据库
- springboot学习(5)springboot使用spring-data-jpa完成数据持久化
- 【spring boot】9.spring boot+spring-data-jpa的入门使用,实现数据持久化
- 深入学习spring-boot系列(二)--使用spring-data-jpa
- 在Spring Boot中使用Spring-data-jpa实现分页查询
- SpringBoot入门(三)--数据库操作&&Spring-data-jpa的使用
- SpringBoot使用JPA操作数据库
- spring boot(五):spring data jpa的使用
- spring boot使用jpa的@Modify的clearAutomatically=true的作用
- SpringBoot中Controller以及Jpa操作数据库的使用
- springboot使用JPA时间类型进行模糊查询的方法
- 技术文章 | spring boot项目中使用jpa的一个未解之谜
- 深入学习spring-boot系列(二)--使用spring-data-jpa
- SpringBoot使用Spring-Data-Jpa实现CRUD操作
- Spring Boot教程(三十)使用Spring-data-jpa(1)
- 初识在Spring Boot中使用JPA