现在我碰到这么一个问题,
我想让mysql的一个表A的主键自动增加也就是auto_increment,
目标:
现在我同时增加三张表A,B、C各一条记录,三个insert操作做成一个事务并且主键都是A的主键。
这就要求在A新增的时候(此时没有commit)将主键返回,以便做B、C的操作
建立一个表CREATE TABLE `testinc` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(20) character set utf8 default NULL,
)
问题代码如下:
TestincVo testincVo = new TestincVo();
testincVo.setName("bbb");
getSqlMapClientTemplate().insert(
"testinc", testincVo);
TestincVo tempVo = (TestincVo)getSqlMapClientTemplate().queryForObject("getTestincVo", testincVo);
return tempVo.getId();
我想先新增后将id返回此时返回的tempVo是空值。
但是如果我用纯的jdbc来写就没有问题:
public void test_insertOrUpdate() throws Exception {
Connection conn = null ;
try {
conn = JdbcConnectionPool.getConnection();
if (conn == null) {
throw new Exception("can not get Connection");
}
conn.setAutoCommit(false);
Statement st = conn.createStatement();
st.executeUpdate("insert into testinc (name) values ('bbb')");
PreparedStatement ps = conn.prepareStatement("select * from testinc");
ResultSet rs = ps.executeQuery();
while(rs.next()){
String id = rs.getString("id");
System.out.println("id is ::::::::::::" + id);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
此时可以打印出相关的id值,但是在spring架构下的ibatis就返回空指针,请大家帮忙看看,马上就要提版本,我被这个问题困扰了半天
,还是一头雾水,郁闷啊
解决方案 »
- jxl的问题(100%结贴率保证)
- Teacher(String n, String l, String capital)这里n和l都冒定义怎么可以这样写呢?
- 求助:JBuilder中实现Ping、Telnet功能。紧急!
- 正则表达式
- 如何计算两段日期内的天数
- JTable.setRowSelectionInterval(int row1,int row2)问题?
- 国内网站何处有Eclipse下载
- 关于构造函数中调用构造函数
- 各位高手指引一下!
- 关于java.lang.反射 和java安全性
- Java程序的一个错误cannot resolve symbol (急)
- 为什么JAVA不需要virtual关键字就可以实现虚函数的上逆?
它里面的查询条件不应该包括主键!
INSERT INTO PERSON (firstname, lastname,birthdate, weightkg, heightm)
VALUES (#firstName#, #lastName#,#birthDate:TIMESTAMP#,
#weightInKilograms#, #heightInMeters#)
<selectKey resultClass="int" keyProperty="id" >
SELECT LAST_INSERT_ID()
</selectKey>
</insert>