Spring Boot☞ 使用Spring-data-jpa简化数据访问层
效果图:


代码区:
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 }
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>

浙公网安备 33010602011771号