SpringDataJPA学习记录(一)--环境配置

SpringDataJPA学习记录(一)--环境配置

标签(空格分隔): springJPA


1.maven配置

首先需要spring相关架包,其实spring-data-jpa里面已经依赖了,如果你想用自己的版本则需要额外引入spring相关包.JPA实现还都是hibernate去实现的,所以还需要hibernate相关包.mysql就更不用说了.

    
      
        org.springframework.data
        spring-data-jpa
        1.10.4.RELEASE
      
    

    
    
      org.hibernate
      hibernate-core
      ${hibernate.version}
    
    
      org.hibernate
      hibernate-entitymanager
      ${hibernate.version}
    
    

    
    
      mysql
      mysql-connector-java
      ${mysql.version}
    
    

2.整合Spring

整合Spring主要有以下几点要注意:
1.数据源配置
2.JPA提供者,JPA属性配置
3.事务配置
4.jpa:repositories 配置,具体如下代码:


    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

    
    
    
        
        
        
        
        
        
        
        
        
            
                
                org.hibernate.dialect.MySQL5Dialect
                
                false
                
                false
                
                false
                
                none
            
        
    

    
    
    
        
        
    

    
    
    
    
    
    

    
    
    

3.创建实体类

实体类中常用注解:

  • @Entity :声明这个类是一个实体类
  • @Table:指定映射到数据库的表格
  • @Id :映射到数据库表的主键属性,一个实体只能有一个属性被映射为主键
  • @GeneratedValue:主键的生成策略
  • @Column配置单列属性

@Entity//标识该为一个实体
@Table(name = "user")//关联数据库中的user表
public class User {

    @Id//标识该属性为主键
    private Integer id;

    private String name;

    private String address;

    private String phone;

    //省略get和set
}

3.Repository接口

  • Repository: 最顶层的接口,是一个空接口,目的是为了统一所有的Repository的类型,且能让组件扫描时自动识别
  • CrudRepository: Repository的子接口,提供CRUD 的功能。
  • PagingAndSortingRepository:CrudRepository的子接口, 添加分页排序。
  • JpaRepository: PagingAndSortingRepository的子接口,增加批量操作等。
  • JpaSpecificationExecutor: 用来做复杂查询的接口。

(图片漏了一个字母J)


SpringDataJPA学习记录(一)--环境配置_第1张图片
这里写图片描述

由图来看,一般使用JpaRepository这个接口做查询即可.这个接口拥有如下方法:

  • delete删除或批量删除
  • findOne查找单个
  • findAll查找所有
  • save保存单个或批量保存
  • saveAndFlush保存并刷新到数据库

创建repository

//User表示该Repository与实体User关联,主键类型为Integer
public interface UserRepository extends JpaRepository {

}

这样就完成了一个基本Repository的创建,可以直接使用其中的方法,而不需要去写实现类.


4.测试

关于测试这里,我把测试案例写到test文件夹的话,总是报实体类未被JPA管理,所以改写到java文件夹,具体原因未知.

    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring/applicationContext.xml");
        UserRepository userRepository = (UserRepository) applicationContext.getBean("userRepository");
        System.out.println(userRepository.findAll());
        System.out.println(userRepository.findOne(1));
        System.out.println(userRepository.findAll(new Sort(new Sort.Order(Sort.Direction.ASC,"id"))));
    }
SpringDataJPA学习记录(一)--环境配置_第2张图片
这里写图片描述

你可能感兴趣的:(SpringDataJPA学习记录(一)--环境配置)