iBatis의 insert가 주 키 ibatis insert로 되돌아오는 방법
5582 단어 oraclesqlmysqlibatisSQL Server
ibatis , 。
Ibatis , :
DROP TABLE IF EXISTS `t_blog`;
CREATE TABLE `t_blog`(
`id` bigint NOT NULL auto_increment, -- blog
`name` varchar(255) NOT NULL , -- blog
`description` varchar(255) default '' , -- blog
`domain` varchar(255) NOT NULL , -- blog
PRIMARY KEY (`id`)
)
TYPE=InnoDB DEFAULT CHARSET=utf8 ;
ibatis :
<!-- -->
<insert id="insertBlog">
insert into t_blog
(name, description, domain)
values
(#name#, #description#, #domain#)
<selectKey resultClass="int" keyProperty="id" >
SELECT @@IDENTITY AS ID
</selectKey>
</insert>
DAO :
public int insertBlog(Blog blog) throws DAOException {
try{
return ((Integer)getSqlMapClientTemplate().insert("insertBlog", blog)).intValue();
}
catch(Exception ex){
logger.error(ex);
throw new DAOException(" ...");
}
}
test insertBlog int id。
[ 2]
Xml
<!-- Oracle SEQUENCE -->
<insert id="insertProduct-ORACLE" parameterClass="com.domain.Product">
<selectKey resultClass="int" keyProperty="id" type="pre">
<![CDATA[SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL]]>
</selectKey>
<![CDATA[insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values #id#,#description#)]]>
</insert>
<!-- Microsoft SQL Server IDENTITY Column -->
<insert id="insertProduct-MS-SQL" parameterClass="com.domain.Product">
<![CDATA[insert into PRODUCT (PRD_DESCRIPTION) values (#description#) ]]>
<selectKey resultClass="int" keyProperty="id" type="post">
<![CDATA[SELECT @@IDENTITY AS ID ]]> <!-- SCOPE_IDENTITY() , 。 -->
</selectKey>
</insert>
<!-- Microsoft SQL Server IDENTITY Column -->
<insert id="insertProduct-MS-SQL" parameterClass="com.domain.Product">
<selectKey resultClass="int" keyProperty="id">
<![CDATA[insert into PRODUCT (PRD_DESCRIPTION) values (#description#)
SELECT SCOPE_IDENTITY() AS ID ]]>
</selectKey>
</insert>
<!-- Mysql Last Insert Id -->
<insert id="insertProduct-Mysql" parameterClass="com.domain.Product">
<![CDATA[insert into PRODUCT(PRD_DESCRIPTION) values (#description#)]]>
<selectKey resultClass="int" keyProperty="id">
<![CDATA[SELECT LAST_INSERT_ID() AS ID ]]> <!-- LAST_INSERT_ID() , MS SQL Server 。 -->
</selectKey>
</insert>
<!-- Oracle SEQUENCE -->
<insert id="insertProduct-ORACLE" parameterClass="com.domain.Product">
<selectKey resultClass="int" keyProperty="id" type="pre">
<![CDATA[SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUAL]]>
</selectKey>
<![CDATA[insert into PRODUCT (PRD_ID,PRD_DESCRIPTION) values #id#,#description#)]]>
</insert>
<!-- Microsoft SQL Server IDENTITY Column -->
<insert id="insertProduct-MS-SQL" parameterClass="com.domain.Product">
<![CDATA[insert into PRODUCT (PRD_DESCRIPTION) values (#description#) ]]>
<selectKey resultClass="int" keyProperty="id" type="post">
<![CDATA[SELECT @@IDENTITY AS ID ]]> <!-- SCOPE_IDENTITY() , 。 -->
</selectKey>
</insert>
<!-- Microsoft SQL Server IDENTITY Column -->
<insert id="insertProduct-MS-SQL" parameterClass="com.domain.Product">
<selectKey resultClass="int" keyProperty="id">
<![CDATA[insert into PRODUCT (PRD_DESCRIPTION) values (#description#)
SELECT SCOPE_IDENTITY() AS ID ]]>
</selectKey>
</insert>
<!-- Mysql Last Insert Id -->
<insert id="insertProduct-Mysql" parameterClass="com.domain.Product">
<![CDATA[insert into PRODUCT(PRD_DESCRIPTION) values (#description#)]]>
<selectKey resultClass="int" keyProperty="id">
<![CDATA[SELECT LAST_INSERT_ID() AS ID ]]> <!-- LAST_INSERT_ID() , MS SQL Server 。 -->
</selectKey>
</insert>
[ ]
<insert id="insertAuthor" parameterClass="Author">
insert into AUTHOR( AUT_NAME ) values ( #name# )
<selectKey resultClass="int" keyProperty="id">
select LAST_INSERT_ID() as id
</selectKey>
</insert>
Integer resultId = ( (Integer)getSqlMap().insert("insertAuthor", newer) ).intValue();
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PLSQL을 사용하여 배열에서 가장 큰 요소 인쇄(Oracle Application Express 11g에서)배열에서 가장 큰 요소를 인쇄하는 것은 기본 코드입니다. 여기서는 Oracle Application Express 11g에서 PLSQL을 사용하여 어레이에서 가장 큰 요소를 인쇄하는 방법을 보여드리겠습니다. Orac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.