mybatis 返回值

转载:

在使用ibatis插入数据进数据库的时候,会用到一些sequence的数据,有些情况下,在插入完成之后还需要将sequence的值返回,然后才能进行下一步的操作。
     
使用ibatis的selectKey就可以得到sequence的值,同时也会将值返回。不过对于不同的数据库有不同的操作方式。
     
对于oracle:
     
<insert id="insertUser" parameterClass="ibatis.User">
 
         <selectKey
resultClass="long" keyProperty="id"> 
 
            select SEQ_USER_ID.nextval as id from dual 
 
        </selectKey> 
 
         insert into user
 
        (id,name,password)
 
        values
 
        (#id#,#name#,#password#)
 
    </insert>
      
该句话执行完之后,传进来的参数User对象DO里的id字段就会被赋值成sequence的值。

对于mysql
    
<insert id="insertUser" parameterClass="ibatis.User">
 
        insert into user
 
        (name,password)
 
        values
 
        (#name#,#password#)
 
         <selectKey
resultClass="long" keyProperty="id">   
        
    SELECT LAST_INSERT_ID() AS ID   
       
</selectKey>   
 
    </insert>
      
将selectKey放在insert之后,通过LAST_INSERT_ID()  获得刚插入的自动增长的id的值。

时间: 2024-10-31 21:39:16

mybatis 返回值的相关文章

深入了解MyBatis返回值

深入了解MyBatis返回值 想了解返回值,我们需要了解resultType,resultMap以及接口方法中定义的返回值. 我们先看resultType和resultMap resultType和resultMap 大家应该都知道在MyBatis的<select>标签中有两种设置返回值的方式,分别是resultMap和resultType. 处理resultMap和resultType的代码如下: private void setStatementResultMap( String resu

mybatis返回值类型总结

//返回Integer<select id="getSpeedByLinkId" parameterType="java.lang.String" resultType="Integer">SELECT speed from dws_tfc_state_speed_link_last_rt where link_id = #{linkId}</select>//返回Double类型<select id="g

mybatis 返回值类型是Map

<select id="selectByMemberKey" resultType="java.util.HashMap"> SELECT member_id ,expire FROM member_key_make_up WHERE member_key = #{memberKey,jdbcType=VARCHAR} </select> public interface MemberKeyMakeUpMapper { HashMap<

myBatis中的注解@Param、返回值为Map、JAVA读取Excel并解析文本、Class.getResource()和ClassLoader.getResource()

myBatis中的注解@Param:http://blog.csdn.net/gao36951/article/details/44258217:  http://www.cnblogs.com/thomas12112406/p/6217211.html. myBatis返回值为Map:http://blog.csdn.net/werewr342352321df/article/details/11892755. ====================== JAVA读取Excel并解析文本:h

mybatis返回集合类型为map时

Mybatis返回值为map时 使用条件:当映射属性超出了一个Bean时: 第一步: 第二步: 第三步: 此方式只能当返回值为lIst集合时. 原文地址:https://www.cnblogs.com/xiaofengshan/p/12347989.html

Mybatis select返回值为map时,选取表字段的两列作为key,value

项目需要从ibatis升级到MyBatis,dao中有一个方法返回Map类型,具体是查询语句查询两个字段,将结果列表字段A的值作为key字段B的值作为value存入Map中作为结果返回: ibatis中Dao继承SqlMapClientDaoSupport类的queryForMap(String statement, Object param, String key, String value)方法可直接实现: MyBatis的SqlSession中只有selectMap(String stat

mybatis &lt;sql /&gt; 配置中 返回值 resultType 与resultMap的区别

mybatis的objectMapper.xml中, 1) 若<sql /> 查询语句中配置的是resultType=“实体类/DTO” ,则从mybatis返回的键值对结果集(Map)会直接赋值给该DTO(根据set()/get()方法,因此该DTO属性名要与表字段名一致,若不一致,可再sql查询语句中用as 更换查出来表字段名)中相映射的属性值,而与该mappper.xml文件配置<mapper/>里的<resultMap />无关. 2)若<sql />

Mybatis 实用篇(四)返回值类型

Mybatis 实用篇(四)返回值类型 一.返回 List.Map List<User> getUsers(); <select id="getUsers" resultType="User"> select * from user; </select> Map<String, Object> getUsers(); <select id="getUsers" resultType="

MyBatis中Mapper的返回值类型

insert.update.delete语句的返回值类型 对数据库执行修改操作时,数据库会返回受影响的行数. 在MyBatis(使用版本3.4.6,早期版本不支持)中insert.update.delete语句的返回值可以是Integer.Long和Boolean.在定义Mapper接口时直接指定需要的类型即可,无需在对应的<insert><update><delete>标签中显示声明. 对应的代码在 org.apache.ibatis.binding.MapperMe