[英]Choosing between jdbcTemplate.update(String sql,Object[] args,int[] argTypes) and jdbcTemplate.update(String sql,Object[] args)
[英]jdbcTemplate.update(String sql) is behaving oddly
试图理解行为奇怪的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)”方法执行时它很好。
感谢Nilesh和Maciej Kowalski的暗示。 我的自动提交实际上已经关闭了。 添加@Transactional
注释对我@Transactional
。
@Transactional(value="transactionManager_iwpro_imp", rollbackFor = Exception.class)
public int insertStartSyncDate() {
// ......
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.