xml 配置 <insert id="info" parameterType="info">
<selectKey resultType="int" keyProperty="id" order="AFTER" >
SELECT @@IDENTITY AS id
</selectKey>
insert into info(a,b)values(#{a},#{b});
</insert>
现在的情况是 数据能插入
insertid不晓得怎么取出,MyBatis默认的返回值是1,也就是插入的行数debug信息
2012-01-13 11:17:33,857 DEBUG [java.sql.PreparedStatement] - ==> Executing: SELECT @@IDENTITY AS id
2012-01-13 11:17:33,857 DEBUG [java.sql.PreparedStatement] - ==> Parameters:
2012-01-13 11:17:33,885 DEBUG [java.sql.ResultSet] - <== Columns: id
2012-01-13 11:17:33,885 DEBUG [java.sql.ResultSet] - <== Row: 40ID已经正确取出,请问各位大佬们,java怎么获取到这个值?
<selectKey resultType="int" keyProperty="id" order="AFTER" >
SELECT @@IDENTITY AS id
</selectKey>
insert into info(a,b)values(#{a},#{b});
</insert>
现在的情况是 数据能插入
insertid不晓得怎么取出,MyBatis默认的返回值是1,也就是插入的行数debug信息
2012-01-13 11:17:33,857 DEBUG [java.sql.PreparedStatement] - ==> Executing: SELECT @@IDENTITY AS id
2012-01-13 11:17:33,857 DEBUG [java.sql.PreparedStatement] - ==> Parameters:
2012-01-13 11:17:33,885 DEBUG [java.sql.ResultSet] - <== Columns: id
2012-01-13 11:17:33,885 DEBUG [java.sql.ResultSet] - <== Row: 40ID已经正确取出,请问各位大佬们,java怎么获取到这个值?
insert into SGS_REMARK(REMARK)values(#re#)
<selectKeyresultClass="int" keyProperty="id" >
SELECT @@IDENTITY AS id
</selectKey>
</insert>id是ReInfo中的属性,楼主试试这种写法
DEBUG 2012-01-13 16:03:22,243 org.apache.ibatis.logging.slf4j.Slf4jImpl: ==> Executing: INSERT INTO people(age,firstname,lastname)values(?,?,?);
DEBUG 2012-01-13 16:03:22,243 org.apache.ibatis.logging.slf4j.Slf4jImpl: ==> Parameters: 20(Integer), zyz1111(String), 1111zyz(String)
DEBUG 2012-01-13 16:03:22,243 org.apache.ibatis.logging.slf4j.Slf4jImpl: ==> Executing: SELECT @@IDENTITY AS id
DEBUG 2012-01-13 16:03:22,243 org.apache.ibatis.logging.slf4j.Slf4jImpl: ==> Parameters:
DEBUG 2012-01-13 16:03:22,274 org.apache.ibatis.logging.slf4j.Slf4jImpl: <== Columns: id
DEBUG 2012-01-13 16:03:22,274 org.apache.ibatis.logging.slf4j.Slf4jImpl: <== Row: 11
after insert >>>>>>People [age=20, firstName=zyz1111, id=11, lastName=1111zyz]
package com.test.www.mybatis;import org.apache.log4j.Logger;public class People {
private static Logger logger = Logger.getLogger(People.class.getName());
private Integer id;
private Integer age;
private String firstName;
private String lastName; public static Logger getLogger() {
return logger;
} public static void setLogger(Logger logger) {
People.logger = logger;
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} public String getFirstName() {
return firstName;
} public void setFirstName(String firstName) {
this.firstName = firstName;
} public String getLastName() {
return lastName;
} public void setLastName(String lastName) {
this.lastName = lastName;
} @Override
public String toString() {
return "People [age=" + age + ", firstName=" + firstName + ", id=" + id
+ ", lastName=" + lastName + "]";
}
}
<mapper namespace="com.test.www.mybatis.People">
<insert id="insert" parameterType="People">
<selectKey keyProperty="id" order="AFTER" resultType="int">SELECT @@IDENTITY AS id</selectKey>
INSERT INTO people(age,firstname,lastname)values(#{age},#{firstName},#{lastName});
</insert>
</mapper>
INSERT INTO
homework(homeworkbag_id,homeworkname,file_path,crt_iduser,crt_time,homeworkbagname)
VALUES(#{homeworkbag_id},#{homeworkname},' ',#{crt_iduser},now(),#{homeworkbagname})
<selectKey resultType="int" order="AFTER" keyProperty="homeworkid">
SELECT LAST_INSERT_ID();
</selectKey>
</insert>我在Action中,调用包含这个sql的service,this.service.addHomework(paraMap)然后新插入的homeworkid会返回在paraMap中
这样获得paraMap.get("homeworkid")