试图理解行为奇怪的jdbcTemplate.update(String sql)。
我有一种方法:
public int insertStartSyncDate() {
String sql = "INSERT INTO iwpro_imp."+jobStatusTable+" (job_name,status,start_time,comment) VALUES ('sswltimport', 'running', NOW(), 'Just started.')";
int resultsReturned = 0;
try{
resultsReturned = jdbcTemplate.update(sql);
}catch(Exception e){
e.printStackTrace();
}
return resultsReturned;
}
我的表结构是:
mysql> desc import_job_status;
+------------+------------------------------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------------------------+------+-----+-------------------+----------------+
| job_id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| job_name | varchar(20) | NO | MUL | NULL | |
| status | enum('running','success','failed') | NO | MUL | running | |
| start_time | timestamp | NO | MUL | CURRENT_TIMESTAMP | |
| end_time | timestamp | YES | MUL | NULL | |
| comment | text | YES | | NULL | |
+------------+------------------------------------+------+-----+-------------------+----------------+
6 rows in set (0.00 sec)
现在的问题是: 执行此方法后,数据不会进入DB表。我试图调试,指针显示resultsReturned的值为1,这意味着执行查询。我现在不明白这里有什么问题。
我现在该怎么办?我尝试手动运行sql查询,当我手动运行它时它很好,但它没有从" jdbcTemplate.update(sql)"执行。方法
答案 0 :(得分:0)
感谢Nilesh和Maciej Kowalski的暗示。
我的自动提交实际上已经关闭了。添加@Transactional
注释对我有用。
@Transactional(value="transactionManager_iwpro_imp", rollbackFor = Exception.class)
public int insertStartSyncDate() {
// ......
}