• 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接口(比较常用,带分页、排序、查询条件)

  • 相关阅读:
    python爬虫 -掘金
    python 爬取简书评论
    python爬取知乎评论
    python 爬取链家
    python爬虫获取下一页
    python正则找到字符串里面的数字
    faker切换user-agent
    python 爬虫可视化函数,可以先看看要爬取的数据是否存在
    acwing 471. 棋盘 解题记录
    ACWING 95 费解的开关 解题记录
  • 原文地址:https://www.cnblogs.com/liyingchun/p/9671630.html
Copyright © 2020-2023  润新知