黑马程序员技术交流社区

标题: 石家庄校区 [打印本页]

作者: 邓小邓    时间: 2019-9-10 15:56
标题: 石家庄校区
Spring Data JPA概念
Spring Data JPA 是 Spring 基于 ORM思想、JPA 规范的基础上封装的一套JPA应用框架
特性
极大简化了数据库访问层代码
实体类@Entity注解声明实体类 @Table配置实体与表的映射
主键 :
@Id //声明当前私有属性为主键@Column(name="xxx") //指定和表中某字段的映射关系@GeneratedValue(strategy=GenerationType.IDENTITY) //配置主键的生成策略 //JPA提供的四种标准用法为TABLE,SEQUENCE,IDENTITY,AUTO。编写符合Spring Data JPA规范的Dao层接口1.创建一个Dao层接口,并实现JpaRepository和JpaSpecificationExecutor2.提供相应的泛型public interface CustomerDao extends JpaRepository<Customer, Long>, JpaSpecificationExecutor<Customer> {}基本CRUD操作1.保存customerDao.save();2.根据id查询customer.findOne(主键id/实体对象)3.更新同14.删除customer.delete(主键id/实体对象)使用JPQL方式查询
在继承spring Data JPA规范的接口中定义方法,注解中写JPQL语句 查询实例:
@Query(value = "from Customer where custAddress like ?1")    public Customer queryAddress(String address)
通过使用 @Query 来执行一个更新操作,为此,我们需要在使用 @Query 的同时,用 @Modifying 来将该操作标识为修改查询,这样框架最终会生成一个更新的操作,而非查询
更新/新增实例:
    @Query(value = "update Customer set custPhone= ?1 where custName=?2")    @Modifying()    @Transactional    @Rollback(value = false)    public void updatePhone(String phone,String custName);
注意:JPQL方式更新/新增方法,需要在@Modifying注解后加@Transactional注解, 加@Rollback注解阻止回滚
使用SQL语句查询
查询实例:
@Query(value = "select * from cst_customer",nativeQuery = true)    public List<Customer> queryCustomerList();方法命名规则查询:
法命名规则查询就是根据方法的名字,就能创建查询。只需要按照Spring Data JPA提供的方法命名规则定义方法的名称,就可以完成查询工作。 具体实现可以根据IDEA的只能提示






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2