zoukankan      html  css  js  c++  java
  • Spring Data JPA

    框架:spring boot

    工具: Spring Tool Sites

    1、新建spring boot项目

      右键-->New --> Spring Starter Project,数据库选择jpa即可,或者自己导入JPA maven仓库也行

    2、修改配置文件application.properties,配置数据库信息

      spring.datasource.url=jdbc:mysql://127.0.0.1:3306/wshop?characterEncoding=utf8
      spring.datasource.username=root
      spring.datasource.password=admin
      spring.datasource.driver-class-name=com.mysql.jdbc.Driver
      #spring.jpa.hibernate.ddl-auto=update
      spring.jpa.show-sql=false

    3、查询方法定义规则

      

      

      例:

    import java.util.List;
    
    import org.springframework.data.jpa.repository.Query;
    import org.springframework.data.repository.Repository;
    import org.springframework.data.repository.query.Param;
    
    import com.sun.dao.SysUser;
    
    public interface SysUserRepository extends Repository<SysUser,Integer> {
        List<SysUser> findById(Integer id);
        List<SysUser> findByUsernameLike(String name);
    }

    3、Query自定义查询

    import java.util.List;
    
    import org.springframework.data.jpa.repository.Query;
    import org.springframework.data.repository.Repository;
    import org.springframework.data.repository.query.Param;
    
    import com.sun.dao.SysUser;
    
    public interface SysUserRepository extends Repository<SysUser,Integer> {
        //自定义(随便写)
        @Query(value="select * from s_user",nativeQuery=true)
        List<SysUser> findAll();
        
        //占位符形式
        @Query("select o from SysUser o where username=?1 and state =?2")
        List<SysUser> findUserByNameAndState(String name,String state);
        
        //变量形式
        @Query("select o from SysUser o where username=:name and state =:state")
        List<SysUser> findUserByNameAndState1(@Param("name")String name,@Param("state")String state);
    }

    4、事务操作

    import org.springframework.data.jpa.repository.JpaRepository;
    import org.springframework.data.jpa.repository.Modifying;
    import org.springframework.data.jpa.repository.Query;
    
    import cn.sun.domain.Sys_news;
    
    public interface NewsRepository extends JpaRepository<Sys_news, String> {
        @Modifying
        @Query("update sys_news set view_count=view_count+1 where news_id=?1")
        void viewAddOne(String news_id);
    }

    注意:注解@Modifying是必须要写的,然后需要在service方法上加@Transactional 

    @Transactional
    public void deleteAutoMarketById(String id) {
       autoMarketRepository.deleteAutoMarketById(id);
    }

    5、JpaSpecificationExecutor接口(比较常用,带分页、排序、查询条件)

  • 相关阅读:
    🍖权限管理之高级权限 ACL
    C#中的interface没那么简单【转】
    URL与物理文件的分离【转】
    共享工作簿
    关于runas explorer.exe 的问题
    但愿汶川早日恢复平静但愿灾区人民早日重建家园!
    正确删除系统隐藏的设备
    vim配置文件.vimrc
    outlook中的邮件归档
    Windows 系统环境变量
  • 原文地址:https://www.cnblogs.com/liyingchun/p/9671630.html
Copyright © 2011-2022 走看看