使用mybatis進行批量更新操作:
報錯如下:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'update
goods g
SET
update_date = '2019-03-19 17:16:05.918',
updat' at line 28
但是檢查了以后,28行並沒有錯誤
使用【https://www.cnblogs.com/sxdcgaq8080/p/9100178.html】 打印了sql,發現sql如下,也沒有問題:

UPDATE goods
SET update_date = '2019-03-19 17:12:30',
update_id = 'defUserId',
enabled = 1,
NAME = '李鋼的屏幕維修服務',
py_all = 'ligangdepingmuweixiufuwu',
py_head = 'lgdpmwxfw',
outer_code = '345345345345',
mnemonic_code = '',
del_flag = 0,
enabled_flag = 1,
goods_type_uid = 'a5cd4e8cc75456e7',
url = '',
bar_cide = '',
sale_price = NULL,
integral = 0,
scan_name = '李鋼的屏幕維修服務',
brand_uid = '01',
en_name = '李鋼的屏幕維修服務'
WHERE
outer_id = '345345345345'
AND tenement_id = 'test_tenement_123';
UPDATE goods
SET update_date = '2019-03-19 17:12:30',
update_id = 'defUserId',
enabled = 1,
NAME = '黑莓798',
py_all = 'heimei798',
py_head = 'hm798',
outer_code = '453975973361094656',
mnemonic_code = '',
del_flag = 0,
enabled_flag = 1,
goods_type_uid = 'a5cd4e8cc75456e7',
url = '',
bar_cide = '',
sale_price = NULL,
integral = 0,
scan_name = '黑莓798',
brand_uid = '01',
en_name = '黑莓798'
WHERE
outer_id = '453975973361094656'
AND tenement_id = 'test_tenement_123';
UPDATE goods
SET update_date = '2019-03-19 17:12:30',
update_id = 'defUserId',
enabled = 1,
NAME = '測試商品',
py_all = 'ceshishangpin',
py_head = 'cssp',
outer_code = 'CS001',
mnemonic_code = '',
del_flag = 0,
enabled_flag = 1,
goods_type_uid = 'a5cd4e8cc75456e7',
url = '',
bar_cide = '',
sale_price = NULL,
integral = 0,
scan_name = '測試商品',
brand_uid = '01',
en_name = 'test
product'
WHERE
outer_id = 'CS001'
AND tenement_id = 'test_tenement_123'
報錯原因:
是因為spring boot配置文件中,關於數據庫的連接配置,並沒有允許進行批量更新的操作
解決方法:
將數據庫配置修改為
jdbc.url=jdbc:mysql://127.0.0.1:3306/datebase?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&allowMultiQueries=true 新增了 &allowMultiQueries=true 意為 允許批量更新
需要注意的是:
加了&allowMultiQueries=true 意為 允許批量更新 但是此時如果再想在spring boot中運行mybatis的時候想打印出來sql,就已經不起作用了。 此時按照 https://www.cnblogs.com/sxdcgaq8080/p/9100178.html 配置的,在spring boot中打印sql語句,就無效了