categorized SQLException; SQL state [null]; error code [0]

方便更快捷的说明问题,可以按需填写(可删除)

使用环境:

jdk 1.8
shardingsphere 5.0.0

org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.0

场景、问题:

按时间分片,配置信息如下:
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
shardingsphere:
datasource:
ds:
driver-class-name: com.mysql.jdbc.Driver
jdbc-url: jdbc:mysql://10.123.35.175:3306/alarm-manage?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF-8
type: com.zaxxer.hikari.HikariDataSource
username: root
password: tce@guangqi2019
names: ds
props:
sql-show: true
mode:
type: Memory
rules:
sharding:
binding-tables: vehicle_alarm_info,vehicle_earlyalarm_info
sharding-algorithms:
vehicle-alarm-info-interval:
type: INTERVAL
props:
datetime-pattern: yyyy-MM-dd HH:mm:ss
datetime-lower: 2021-01-01 00:00:00
datetime-upper: 2022-01-01 00:00:00
sharding-suffix-pattern: yyyy_MM
datetime-interval-amount: 1
datetime-interval-unit: MONTHS
vehicle-earlyalarm-info-interval:
type: INTERVAL
props:
datetime-pattern: yyyy-MM-dd HH:mm:ss
datetime-lower: 2021-01-01 00:00:00
datetime-upper: 2022-01-01 00:00:00
sharding-suffix-pattern: yyyy_MM
datetime-interval-amount: 1
datetime-interval-unit: MONTHS
tables:
vehicle_alarm_info:
actual-data-nodes: ds.vehicle_alarm_info_$->{2021…2022}$->{[‘01’,‘02’,‘03’,‘04’,‘05’,‘06’,‘07’,‘08’,‘09’,‘10’,‘11’,‘12’]}
key-generate-strategy:
column: id
key-generator-name: SNOWFLAKE
table-strategy:
standard:
sharding-algorithm-name: vehicle-alarm-info-interval
sharding-column: create_time
vehicle_earlyalarm_info:
actual-data-nodes: ds.vehicle_earlyalarm_info
$->{2021…2022}_$->{[‘01’,‘02’,‘03’,‘04’,‘05’,‘06’,‘07’,‘08’,‘09’,‘10’,‘11’,‘12’]}
key-generate-strategy:
column: id
key-generator-name: SNOWFLAKE
table-strategy:
standard:
sharding-algorithm-name: vehicle-earlyalarm-info-interval
sharding-column: create_time
key-generators:
snowflake:
props:
worker-id: 123
type: SNOWFLAKE

已进行操作:

执行插入操作:
VehicleAlarmInfoPo info = new VehicleAlarmInfoPo();
info.setId(1L);
info.setVin(“123”);
info.setVehicleType(“A12”);
info.setVehicleTypeName(“1231”);
info.setDataType(“1”);
info.setCreateTime(new Date());
info.setAlarmCode(“200221”);
info.setDealStatue(“1”);
info.setDisable(“1”);
vehicleAlarmInfoMapper.insert(info);

现状:

提示异常 信息

The error occurred while setting parameters

SQL: insert into vehicle_alarm_info (id, data_type, alarm_code, vin, vehicle_type, vehicle_type_name, alarm_start_time, alarm_end_time, alarm_part_time, alarm_count, alarm_level, alarm_flag, alarm_name, longitude, latitude, city, area, street, alarm_address, deal_statue, fault_description, deal_level, deal_advise, current_depart_id, work_order_id, vehicle_status, vehicle_status_name, user_type, user_type_name, battery_type, battery_remark, rule_id, create_time, signal_cycle, auto_gen_order, alarm_join_time, is_alarm_end, disable, is_need_alram, remark, start_mileage, end_mileage ) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )

Cause: java.sql.SQLException: [org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection] cannot be unwrapped as [com.mysql.jdbc.MySQLConnection]

; uncategorized SQLException; SQL state [null]; error code [0]; [org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection] cannot be unwrapped as [com.mysql.jdbc.MySQLConnection]; nested exception is java.sql.SQLException: [org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection] cannot be unwrapped as [com.mysql.jdbc.MySQLConnection]

你能提供一个 demo 给我试一下不?根据配置信息我这边看不出来问题

怎么提供给你,加下微信

我直接用原生的 JDBC 是可以执行的

2021-12-15 18:31:59.861  INFO 36219 --- [nio-8088-exec-4] ShardingSphere-SQL                       : Logic SQL: insert into vehicle_alarm_info (id,vin, vehicle_type, vehicle_type_name,data_type, create_time, alarm_code, deal_statue, disable) values (1, '123', 'A12', '1231', '1', '2021-01-02 00:00:00', '200221', '1', '1' )
2021-12-15 18:31:59.861  INFO 36219 --- [nio-8088-exec-4] ShardingSphere-SQL                       : SQLStatement: MySQLInsertStatement(setAssignment=Optional.empty, onDuplicateKeyColumns=Optional.empty)
2021-12-15 18:31:59.861  INFO 36219 --- [nio-8088-exec-4] ShardingSphere-SQL                       : Actual SQL: ds ::: insert into vehicle_alarm_info_2021_01 (id,vin, vehicle_type, vehicle_type_name,data_type, create_time, alarm_code, deal_statue, disable) values (1, '123', 'A12', '1231', '1', '2021-01-02 00:00:00', '200221', '1', '1')
2021-12-15 18:32:24.784  INFO 36219 --- [nio-8088-exec-6] ShardingSphere-SQL                       : Logic SQL: insert into vehicle_alarm_info (id,vin, vehicle_type, vehicle_type_name,data_type, create_time, alarm_code, deal_statue, disable) values (1, '123', 'A12', '1231', '1', '2021-10-02 00:00:00', '200221', '1', '1' )
2021-12-15 18:32:24.784  INFO 36219 --- [nio-8088-exec-6] ShardingSphere-SQL                       : SQLStatement: MySQLInsertStatement(setAssignment=Optional.empty, onDuplicateKeyColumns=Optional.empty)
2021-12-15 18:32:24.784  INFO 36219 --- [nio-8088-exec-6] ShardingSphere-SQL                       : Actual SQL: ds ::: insert into vehicle_alarm_info_2021_10 (id,vin, vehicle_type, vehicle_type_name,data_type, create_time, alarm_code, deal_statue, disable) values (1, '123', 'A12', '1231', '1', '2021-10-02 00:00:00', '200221', '1', '1')

你可能需要看下你的项目里是不是其他的一些组件导致实际执行的 SQL 有问题

怎么提供给你,加下微信

最好提供一个 demo 项目,传到 GitHub 或 Gitee

京ICP备2021015875号