您的位置:首页 > 编程语言 > Java开发

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 "添加成功!";
}
}


启动项目,测试结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spirngboot jpa