学习响应式编程的时候,跟着老师敲代码 再r2dbc的连接上报错 (尚硅谷SpringBoot响应式编程教程,2024最新springboot3入门到实战 41讲 )
响应式编程内容比较新,互联网上没有找到好的解决方案
java.time.DateTimeException: Invalid ID for region-based ZoneId, invalid format: ?й???ʱ?
先说结论
如下修改即可
url: r2dbc:mysql://localhost:3306/test01?serverZoneId=Asia/Shanghai
@SpringBootTest
public class test {
@Autowired
R2dbcEntityTemplate r2dbcEntityTemplate;
@Autowired
DatabaseClient databaseClient;
@Test
public void getPerson() throws IOException {
Criteria criteria = Criteria.empty();
criteria.and("id").is(2)
.and("name").in("a", "b");
Query query = Query.query(criteria);
r2dbcEntityTemplate.select(query, Person.class).subscribe(v -> System.out.println(v));
System.in.read();
}
spring:
r2dbc:
name: test
username: root
password: 123456
url: r2dbc:mysql://localhost:3306/test01
这是一开始的yaml文件,然后我想着是不是有配置zoneId的地方
就把普通spring项目的url配置抄过来,还是不行
spring:
r2dbc:
name: test
username: root
password: 123456
url: r2dbc:mysql://localhost:3306/test01?serverTimezone=Asia/Shanghai
这里也没有可以提供声明的
还是照旧报错,本想着去官网查一下的,但是这个r2dbc的后缀可能解析时候改了名字,于是试了一下,成功了
spring:
r2dbc:
name: test
username: root
password: 123456
url: r2dbc:mysql://localhost:3306/test01?serverZoneId=Asia/Shanghai
虽然这个结果是错误的,再说了
为什么是serverZoneId
上一节课程如下构建的时候就报错了
这里加上任意一个都不会报错。
然后这个是serverZoneId 。。。。