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

Spring Boot☞ 使用Spring-data-jpa简化数据访问层

2017-09-19 17:42 483 查看

效果图:

1 package com.wls.integrateplugs.jpa.primary.model;
2
3 /**
4  * Created by wls on 2017/8/24.
5  */
6 import java.io.Serializable;
7
8 import javax.persistence.Column;
9 import javax.persistence.Entity;
10 import javax.persistence.GeneratedValue;
11 import javax.persistence.Id;
12
13 @Entity
14 public class User implements Serializable {
15
16     private static final long serialVersionUID = 1L;
17     @Id
18     @GeneratedValue
19     private Long id;
20     @Column(nullable = false, unique = true)
21     private String userName;
22     @Column(nullable = false)
23     private String passWord;
24     @Column(nullable = false, unique = true)
25     private String email;
26     @Column(nullable = true, unique = true)
27     private String nickName;
28     @Column(nullable = false)
29     private String regTime;
30     @Column(nullable = false)
31     private String name;
32     @Column(nullable = false)
33     private Integer age;
34
35     public User() {
36         super();
37     }
38
39
40     public User(String name, Integer age) {
41         this.name = name;
42         this.age = age;
43     }
44
45     public User(String userName, String passWord, String email, String nickName, String regTime, String name, Integer age) {
46         this.userName = userName;
47         this.passWord = passWord;
48         this.email = email;
49         this.nickName = nickName;
50         this.regTime = regTime;
51         this.name = name;
52         this.age = age;
53     }
54
55     public Long getId() {
56         return id;
57     }
58     public void setId(Long id) {
59         this.id = id;
60     }
61     public String getUserName() {
62         return userName;
63     }
64     public void setUserName(String userName) {
65         this.userName = userName;
66     }
67     public String getPassWord() {
68         return passWord;
69     }
70     public void setPassWord(String passWord) {
71         this.passWord = passWord;
72     }
73     public String getEmail() {
74         return email;
75     }
76     public void setEmail(String email) {
77         this.email = email;
78     }
79     public String getNickName() {
80         return nickName;
81     }
82     public void setNickName(String nickName) {
83         this.nickName = nickName;
84     }
85     public String getRegTime() {
86         return regTime;
87     }
88     public void setRegTime(String regTime) {
89         this.regTime = regTime;
90     }
91
92     public String getName() {
93         return name;
94     }
95
96     public void setName(String name) {
97         this.name = name;
98     }
99
100     public Integer getAge() {
101         return age;
102     }
103
104     public void setAge(Integer age) {
105         this.age = age;
106     }
107 }
View Code  

package com.wls.integrateplugs.jpa.primary.repository;

import com.wls.integrateplugs.jpa.primary.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

/**
* @author 程序猿DD
* @version 1.0.0
* @date 16/3/23 下午2:34.
* @blog http://blog.didispace.com
*/
public interface UserRepository extends JpaRepository<User, Long> {

User findByName(String name);

User findByNameAndAge(String name, Integer age);

@Query("from User u where u.name=:name")
User findUser(@Param("name") String name);
}

  

package com.wls.test.integrateplugs.jpa;

/**
* Created by wls on 2017/8/24.
*/
import java.text.DateFormat;
import java.util.Date;

import com.wls.integrateplugs.jpa.primary.repository.IUserRepository;
import com.wls.integrateplugs.jpa.primary.model.User;
import com.wls.integrateplugs.jpa.primary.repository.UserRepository;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class UserRepositoryTests {

@Autowired
private IUserRepository iUserRepository;

@Autowired
private UserRepository userRepository;

@Test
public void test() throws Exception {
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
String formattedDate = dateFormat.format(date);

//        iUserRepository.save(new User("aa","aa","aa","aa","aa","aa",12));
//        iUserRepository.save(new User("bb","bb","bb","bb","bb","bb",13));
//        iUserRepository.save(new User("cc","cc","cc","cc","cc","cc",14));

//        Assert.assertEquals(3, iUserRepository.findAll().size());
Assert.assertEquals("aa", iUserRepository.findByUserNameOrEmail("aa", "aa").getNickName());
//        iUserRepository.delete(iUserRepository.findByUserName("bb"));
}

@Test
public void testUser() throws Exception {

// 创建10条记录
userRepository.save(new User("AAA", 10));
userRepository.save(new User("BBB", 20));
userRepository.save(new User("CCC", 30));
userRepository.save(new User("DDD", 40));
userRepository.save(new User("EEE", 50));
userRepository.save(new User("FFF", 60));
userRepository.save(new User("GGG", 70));
userRepository.save(new User("HHH", 80));
userRepository.save(new User("III", 90));
userRepository.save(new User("JJJ", 100));

// 测试findAll, 查询所有记录
Assert.assertEquals(10, userRepository.findAll().size());

// 测试findByName, 查询姓名为FFF的User
Assert.assertEquals(60, userRepository.findByName("FFF").getAge().longValue());

// 测试findUser, 查询姓名为FFF的User
Assert.assertEquals(60, userRepository.findUser("FFF").getAge().longValue());

// 测试findByNameAndAge, 查询姓名为FFF并且年龄为60的User
Assert.assertEquals("FFF", userRepository.findByNameAndAge("FFF", 60).getName());

// 测试删除姓名为AAA的User
userRepository.delete(userRepository.findByName("AAA"));

// 测试findAll, 查询所有记录, 验证上面的删除是否成功
Assert.assertEquals(9, userRepository.findAll().size());

}

}

  

spring:
datasource:
primary:
driver-class-name: com.mysql.jdbc.Driver
#    url: jdbc:mysql://192.168.159.128:3306/mydb
url: jdbc:mysql://192.168.223.128:3306/db1
username: wls
password: Wls141215!
secondary:
driver-class-name: com.mysql.jdbc.Driver
#    url: jdbc:mysql://192.168.159.128:3306/mydb
url: jdbc:mysql://192.168.223.128:3306/db2
username: wls
password: Wls141215!
jpa:
hibernate:
ddl-auto: update
show-sql: true

  

<!--    jpa     -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

  

 

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