数据库:SqlServer2005

表结构:
/*==============================================================*/
/* Table: Dic_City                                              */
/*==============================================================*/
create table Dic_City (
   ID                   int                  identity,
   City_Code            varchar(10)          not null,
   Provinces_Code       varchar(20)          not null,
   State_Code           varchar(10)          not null,
   City_Name            varchar(50)          null,
   PY_Code              varchar(50)          null,
   PY_Code_Short        varchar(10)          null,
   Ext1                 varchar(20)          null,
   Ext2                 varchar(20)          null,
   Ext3                 varchar(20)          null,
   Ext4                 varchar(20)          null,
   Ext5                 varchar(20)          null,
   constraint PK_DIC_CITY primary key (ID)
)

MyBatisXML配置,下面两种方式都行

方式1:
<insert id="insert" parameterType="cn.softsea.model.DicCity" >
  <selectKey resultType="java.lang.Integer" keyProperty="id" order="AFTER" >
    SELECT @@IDENTITY
  </selectKey>
  insert into Dic_City (City_Code, Provinces_Code, 
    State_Code, City_Name, PY_Code, 
    PY_Code_Short, Ext1, Ext2, 
    Ext3, Ext4, Ext5)
  values (#{cityCode,jdbcType=VARCHAR}, #{provincesCode,jdbcType=VARCHAR}, 
    #{stateCode,jdbcType=VARCHAR}, #{cityName,jdbcType=VARCHAR}, #{pyCode,jdbcType=VARCHAR}, 
    #{pyCodeShort,jdbcType=VARCHAR}, #{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, 
    #{ext3,jdbcType=VARCHAR}, #{ext4,jdbcType=VARCHAR}, #{ext5,jdbcType=VARCHAR})
</insert>
方式2:
<insert id="insert" parameterType="cn.softsea.model.DicCity" useGeneratedKeys="true" keyProperty="id">
  insert into Dic_City (City_Code, Provinces_Code, 
    State_Code, City_Name, PY_Code, 
    PY_Code_Short, Ext1, Ext2, 
    Ext3, Ext4, Ext5)
  values (#{cityCode,jdbcType=VARCHAR}, #{provincesCode,jdbcType=VARCHAR}, 
    #{stateCode,jdbcType=VARCHAR}, #{cityName,jdbcType=VARCHAR}, #{pyCode,jdbcType=VARCHAR}, 
    #{pyCodeShort,jdbcType=VARCHAR}, #{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, 
    #{ext3,jdbcType=VARCHAR}, #{ext4,jdbcType=VARCHAR}, #{ext5,jdbcType=VARCHAR})
</insert>
调用Mapper返回主键:
//生成新对象用于插入
DicCity city = new DicCity();
city.setCityCode("330100");
city.setCityName("杭州市");

//获取mapper对象
DicCityMapper cityMapper = (DicCityMapper) SpringContextUtil.getBean("dicCityMapper");

int row = cityMapper.insert(city);    //insrt不再返回主键,只返回响应行数,这点和ibatis不同了

System.out.println("响应的行数:"+row);
//取得自增的标识列 ID的值
System.out.println("新插入的数据的ID:"+city.getId());

====================

如果使用mybatis.generator来生成DAO层的话,generatorConfig.xml中要使用:

<generatedKeycolumn="id"sqlStatement="MySql"identity="true"/>

MyBatis insert 返回主键的方法的更多相关文章

  1. MyBatis insert返回主键(sqlserver2008)

    mybatis insert返回主键(sqlserver2008)   MyBatisXML配置,下面两种方式都行 方式1: <insert id="insert" para ...

  2. mybatis insert 返回主键

    分享牛,分享牛原创.ssm整合的时候,我们操作mybatis insert 的时候,需要返回插入的主键,因为主键是自增的,这个时候怎么办呢?很简单看一下下面的代码示例: 1.1.1. 代码定义 pub ...

  3. Mybatis insert返回主键ID

    Mybatis insert语句书写 <insert id="insertSelective" useGeneratedKeys="true" keyPr ...

  4. Mybatis Insert 返回主键ID

    <insert id="insert" useGeneratedKeys="true" keyProperty="u_Id" para ...

  5. Mybatis批量insert 返回主键值和foreach标签详解

    Mybatis批量insert 返回主键 Mybatis从3.3.1版本开始,支持批量插入后返回主键ID.首先对于支持自增主键的数据库使用useGenerateKeys和keyProperty,对于不 ...

  6. mybatis添加数据时返回主键 insert 返回主键值

    insert 返回主键值 useGeneratedKeys=“true” parameterType=“USer” keyProperty=“id”, <insert id="inse ...

  7. mybatis 08: 返回主键值的insert操作 + 利用UUID获取字符串(了解)

    返回主键值的insert操作 应用背景 图示说明 在上述业务背景下,涉及两张数据表的关联操作:用户表 + 用户积分表 传统操作:在对用户表执行完插入语句后,再次查询该用户的uid,将该uid作为外键, ...

  8. mybatis mysql 批量insert 返回主键

    Mybatis在插入单条数据的时候有两种方式返回自增主键:    mybatis3.3.1支持批量插入后返回主键ID, 首先对于支持自增主键的数据库:useGenerateKeys和keyProper ...

  9. Mybatis中insert返回主键ID

    记录解决的过程,这里就不搬砖了. 1.获取insert后的主键id 原文链接:http://www.cnblogs.com/fsjohnhuang/p/4078659.html 2.insert后返回 ...

随机推荐

  1. MongoDB的安装与使用

    MongoDB是一款NoSql数据库.NoSql数据库叫非关系型数据库,NoSql的全名Not only sql.是为了解决高并发.高可用.高可扩展,以及大数据存储等一系列问题而产生的数据库解决方案. ...

  2. 监听 手机back键和顶部的回退

    // 回退事件,监听 手机back键和顶部的回退 pushHistory(); window.addEventListener("popstate", function(e) { ...

  3. ubuntu下将程序挂后台命令

    ubuntu下将程序挂后台命令 nohup python -u main.py > test.out 2>&1 & ubunut下查看后台进程 jobs -l

  4. java基础70 负责静态的网页制作语言XML(网页知识)

    HTML:负责网页结构的CSS:负责网页的样式(美观)JavaScript:负责客户(浏览器)端与用户进行交互 1.HTML语言的特点 1.由标签组成    2.语法结构松散     3.大小写不区分 ...

  5. conding.net或github,readme.md添加图片

    原因:    将图片放在仓库里面,在文件里链接它,最后 push 到 github 上.github 图片链接格式:(http://github.com/yourname/your-repositor ...

  6. GUC-9 ReadWriteLock : 读写锁

    import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWrit ...

  7. 使用ASP.NET MVC+Entity Framework快速搭建系统

    详细资料: http://www.cnblogs.com/dingfangbo/p/5771741.html 学习 ASP.NET MVC 也有一段时间了,打算弄个小程序练练手,做为学习过程中的记录和 ...

  8. java 策略设计模式

    在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能.如查找.排序等,一种常用的方法是硬编码(Hard Coding)在 ...

  9. Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus

    背景 对于Android系统来说,消息传递是最基本的组件,每一个App内的不同页面,不同组件都在进行消息传递.消息传递既可以用于Android四大组件之间的通信,也可用于异步线程和主线程之间的通信.对 ...

  10. 美团外卖Android Crash治理之路

    Crash率是衡量一个App好坏的重要指标之一,如果你忽略了它的存在,它就会愈演愈烈,最后造成大量用户的流失,进而给公司带来无法估量的损失.本文讲述美团外卖Android客户端团队在将App的Cras ...