四步搞定Springboot集成JPA

前言:
在选择JPA和Mybatis的事情上第一步肯定是听老大的,老大没要求,就自己习惯用哪个就用哪个,功能都是一样的,最主要是自己用起来舒服。

非要选择的话,就比如开发一个小型项目,个人建议用JPA开发,若项目已经开发完,你只需要接手进行项目改造,而项目之前就是使用的ssm框架,当然这时候你想都不用想的去用mybatis喽

这里说说使用时需要注意的点

1、建表时用sql或者可视化工具建表,不用JPA建表(JPA建表不直观,很多字段都是默认的varchar255)

2、表与表之间的级联关系尽量手动(通过程序中的逻辑来控制),不用@oneToMany和@ManyToMany(这两个方法建出的级联关系在后期需要扩展分库分表时难度较大)

总而言之,JPA和Mybatis是都需要会用的,两者都是实现的方法,没有谁优谁差,多懂一点东西总归是好的

废话不多说,开始干
第一步 附上maven配置

	        <dependency>
	            <groupId>org.springframework.boot</groupId>
	            <artifactId>spring-boot-starter-data-jpa</artifactId>
	            <version>2.1.2.RELEASE</version>
	        </dependency>

第二步 yml的一个配置

				spring:
				  jpa:
				    hibernate:
				      ddl-auto: update
				    show-sql: true

第三步 咱们创建一个调用JPA的一个接口和一个getset,这个接口必须继承JpaRepository

	public interface PayRecordRepository extends JpaRepository<User,Integer> {
	
	}
	

	
	@Entity //对实体注释。
	public class User {
	
	    private int id;
	    private String name;
	    private int status;
	    @Id//唯一标识的主键,一定要加上
	    @GeneratedValue(strategy= GenerationType.AUTO)//主键由程序控制, 是默认选项 ,不设置就是这个
	    public int getId() {
	        return id;
	    }

}

第四步 新建一个controller咱们测试下查询效果

	  @MyLog("JPA")
	    @RequestMapping(value = "getjpa")
	    public Map<String, Object> getjpa() {
	        Map<String, Object> map = new HashMap<>();
	        PageHelper.startPage(1,1);
	        List<User>users =payRecordRepository.findAll();
	        PageInfo userPageInfo=new PageInfo(users);
	        map.put("list",userPageInfo);
	        return map;
	    }

在这里插入图片描述
查询成功。如果又什么不懂可以加q 867272378.看完的兄弟希望点个赞。谢谢

最后贴出Respository具有的基本方法,刚才我用的是finall,个人感觉如果要做复杂多表查询的话,还是建议用mybatis,我这个项目集成了mybatis和Jpa,Jpa主要是做单表时候感觉比较方便才用的,当然这也看个人习惯了。话不多说开始写bug吧。

@NoRepositoryBean
public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
    List<T> findAll();

    List<T> findAll(Sort var1);

    List<T> findAllById(Iterable<ID> var1);

    <S extends T> List<S> saveAll(Iterable<S> var1);

    void flush();

    <S extends T> S saveAndFlush(S var1);

    void deleteInBatch(Iterable<T> var1);

    void deleteAllInBatch();

    T getOne(ID var1);

    <S extends T> List<S> findAll(Example<S> var1);

    <S extends T> List<S> findAll(Example<S> var1, Sort var2);
}

猜你喜欢

转载自blog.csdn.net/qq_30667039/article/details/87253548