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 }
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>

  

 

posted @ 2017-09-19 17:42  air_balloon  阅读(295)  评论(0编辑  收藏  举报