spring boot jpa

本文详细介绍如何在SpringBoot项目中配置MySQL数据库连接,展示如何通过JPA进行数据的增删改查操作,包括SQL语句显示、排序分页、主键回调等功能,并提供了测试方法的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1.数据库带两个参数,一个时区,一个utf-8(&allowMultiQueries=true允许多条语句同时执行)

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8&characterEncoding=UTF-8&allowMultiQueries=true
    username: xxx
    password: xxxxxxxxx

2.控制台显示sql语句

spring:
  jpa:
    hibernate:
      ddl-auto: update #自动更新表结构
    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect  #不加这句则默认为myisam引擎
    show-sql: true  #显示sql语句
    properties:
      hibernate.format_sql: true  #格式化sql语句

3.排序,分页

Sort sort = new Sort(Sort.Direction.DESC,"id");  //正序列ASC
PageRequest pageRequest=PageRequest.of(1,5,sort);
Page<User> li=userService.findAll(pageRequest);
for (User user:li){
    System.err.println(user);
}

4.主键回调

@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Long id;

PS:@GeneratedValue注解的strategy属性提供四种值:

-AUTO主键由程序控制, 是默认选项 ,不设置就是这个
-IDENTITY 主键由数据库生成, 采用数据库自增长, Oracle不支持这种方式
-SEQUENCE 通过数据库的序列产生主键, MYSQL  不支持
-Table 提供特定的数据库产生主键, 该方式更有利于数据库的移植

5.测试时要添加

@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional  //不加会报no session
@Rollback(false)  //默认自动回滚事务,取消
public class Demo3ApplicationTests {

6.@Query

@Query(value = " select * from tt where id>=:s and id<=:t ",nativeQuery = true)
List<User> aaa(Long s,Long t);
@Query(value = " select * from tt where name like %:name% ",nativeQuery = true)
List<User> bbb(String name);

7.@Query insert,update或delete是要加@Modifying 进行修饰

总结如下
(1)INSERT,UPDATE 或 DELETE 操作需要使用事务,此时需要定义 Service 层,在 Service 层的方法上添加事务操作; 
(2)默认情况下, SpringData 的每个方法上有事务, 但都是一个只读事务。 他们不能完成修改操作。

8.jpa语言规则看https://blog.youkuaiyun.com/wujiaqi0921/article/details/78789087

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值