数据库: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. idea git revert 究竟做了啥

    git里面实现撤销commit 这个据我目前所知,有至少4个途径可以做到 1.git reset 2.git revert 3.git rm –cached 4.git checkout 这个可以参考 ...

  2. [转载]如何在C++03中模拟C++11的右值引用std::move特性

    本文摘自: http://adamcavendish.is-programmer.com/posts/38190.htm 引言 众所周知,C++11 的新特性中有一个非常重要的特性,那就是 rvalu ...

  3. Redis相关链接

    Redis 教程 http://www.runoob.com/redis/redis-data-types.html Python操作redis学习系列之(集合)set,redis set详解 (六) ...

  4. PreparedStatement 查询 In 语句 setArray 等介绍。

    ps = conn.prepareStatement("SELECT tid,jdp_response FROM jdp_tb_trade WHERE tid IN (?) ORDER BY ...

  5. 静态链接库(lib)、动态链接库(dll)与动态链接库的导入库(lib)

    静态链接库与动态链接库相对应.动态链接库的导入库不同于以上两种库. 1.静态链接库(lib)     程序编译一般需经编辑.编译.连接.加载和运行几个步骤.在我们的应用中,有一些公共代码是需要反复使用 ...

  6. webpack性能优化-实战

    题外话:年初项目重构上线,项目技术栈使用vue+webpack,测试执行整个打包流程需要10分钟,同时又因涉及三个渠道,部署好环境就需半个小时,这严重延误了上线进度,因此提高webpack构建效率,成 ...

  7. Kubernetes监控:部署Heapster、InfluxDB和Grafana

    本节内容: Kubernetes 监控方案 Heapster.InfluxDB和Grafana介绍 安装配置Heapster.InfluxDB和Grafana 访问 grafana 访问 influx ...

  8. swift中Double转String

    swift上手有好几天了.发现swift除了本身的几个基本类型转换,一些比较特殊的数值类型转换需要“桥接”到Objective-C来进行- 代码当然也很简单- var numString = &quo ...

  9. 2018 ACM-ICPC, Syrian Collegiate Programming Contest F - Pretests SOS dp

    #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk mak ...

  10. 004 Ajax中传输格式为JSON

    一: 1.介绍 2.嵌套 3.json解析 4.优缺点 二:json功能程序测试 1.设计 2.程序 <!DOCTYPE html> <html> <head> & ...