zoukankan      html  css  js  c++  java
  • 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>
    

      

  • 相关阅读:
    if...else if...else和switch语句的注意点
    oracle如何用sql查看触发器?
    jfinal如何调用存储过程?
    struts2中s:iterator 标签的使用详解 及 OGNL用法
    Protobuf3 语法指南
    Golang的优雅重启
    从外部设置传入Go变量
    Golang服务器热重启、热升级、热更新(safe and graceful hot-restart/reload http server)详解
    Linux文件系统深度讨论【转】
    Go语言中的byte和rune区别、对比
  • 原文地址:https://www.cnblogs.com/wlsblog/p/7553058.html
Copyright © 2011-2022 走看看