SpringData Jpa 之 修改、删除数据

Tips:

  1. 如果修改或删除的方法没有被事务管理,需要在方法上加上 @Transactional
  2. 修改和删除的方法返回值可以是 void 或者是 int,当是 int 时,返回 1 代表成功,0 代表失败
  3. 删除方法可以不使用 @modify@Query 注解,直接通过命名规则的方法删除

1、修改数据,使用 @Modify@Query 注解

@Modifying
@Query("update User u set u.firstname = ?1 where u.lastname = ?2")
int setFixedFirstnameFor(String firstname, String lastname);

2、删除数据,使用 @Modify@Query 注解

@Modifying
@Query("delete from User u where u.role.id = ?1")
void deleteInBulkByRoleId(long roleId);

3、删除数据,使用命名规则

void deleteByRoleId(long roleId);
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Data JPASpring Data项目中的一个模块,它基于JPA(Java Persistence API)规范,提供了一种简化的方式来操作数据库。使用Spring Data JPA,开发人员可以通过定义接口的方式来实现常见的数据库操作,例如插入、查询、更新和删除等。同时,Spring Data JPA还为开发人员提供了一些便捷的特性,例如动态查询、分页、排序等。 在使用Spring Data JPA时,需要先定义一个实体类,并使用JPA注解来映射数据库表结构。例如,下面是一个简单的实体类定义: ``` @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "name") private String name; @Column(name = "age") private Integer age; // getters and setters } ``` 接下来,需要定义一个继承自JpaRepository的接口,来完成数据库操作。例如,下面是一个定义了常见操作的接口: ``` public interface UserRepository extends JpaRepository<User, Long> { List<User> findByName(String name); List<User> findByAgeGreaterThan(Integer age); List<User> findByNameLike(String name); } ``` 在使用该接口时,只需要注入该接口的实例即可。例如,下面是一个简单的示例,展示了如何使用该接口进行数据库操作: ``` @Service public class UserService { @Autowired private UserRepository userRepository; public List<User> findByName(String name) { return userRepository.findByName(name); } public List<User> findByAgeGreaterThan(Integer age) { return userRepository.findByAgeGreaterThan(age); } public List<User> findByNameLike(String name) { return userRepository.findByNameLike("%" + name + "%"); } } ``` 在使用MySQL数据库时,需要在项目的配置文件中配置数据源和JPA相关的配置。例如,下面是一个示例的application.yml配置文件: ``` spring: datasource: url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver jpa: show-sql: true hibernate: ddl-auto: update properties: hibernate: dialect: org.hibernate.dialect.MySQL8Dialect ``` 其中,`spring.datasource.url`需要根据实际情况修改为对应的MySQL数据库地址和端口;`spring.datasource.username`和`spring.datasource.password`需要修改为对应的数据库用户名和密码。另外,`spring.jpa.show-sql`设置为true时,会在控制台输出JPA执行的SQL语句,方便调试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值