当前位置: 首页 > news >正文

MyBatis insert 返回主键的方法

原文:http://elf8848.iteye.com/blog/1871843

 

数据库: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"/>

相关文章:

  • dede数据库内容替换,去掉文章内容中的img标签
  • Android javaMail使用imap协议接收邮件
  • 缓存遇到的数据过滤与分页问题
  • 通过libVirt抓取kvm虚拟机监控指标数据
  • Eclipse+Pydev
  • TTL和RS232之间的详细对比
  • NSMutableArray崩溃信息
  • 艰困之道中学到的经验教训
  • 【JAVA秒会技术之随意切换数据库】Spring如何高效的配置多套数据源
  • 国外的搜索引擎,能查到好多资料
  • 基于nginx的负载均衡概述与实现
  • 总结2016,规划2017
  • GreenOpenPaint的实现(二)打开显示图片
  • CSS命名规范:
  • 桌面开发者的界面故事,该醒醒了
  • Android系统模拟器绘制实现概述
  • Angular2开发踩坑系列-生产环境编译
  • canvas绘制圆角头像
  • CODING 缺陷管理功能正式开始公测
  • JavaScript 基础知识 - 入门篇(一)
  • Java精华积累:初学者都应该搞懂的问题
  • rc-form之最单纯情况
  • Redis 中的布隆过滤器
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Spring核心 Bean的高级装配
  • Spring框架之我见(三)——IOC、AOP
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • Vue组件定义
  • 给github项目添加CI badge
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 后端_ThinkPHP5
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 利用DataURL技术在网页上显示图片
  • 前端代码风格自动化系列(二)之Commitlint
  • 微信小程序--------语音识别(前端自己也能玩)
  • 协程
  • 一文看透浏览器架构
  • 在Docker Swarm上部署Apache Storm:第1部分
  • Java性能优化之JVM GC(垃圾回收机制)
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​queue --- 一个同步的队列类​
  • !$boo在php中什么意思,php前戏
  • #13 yum、编译安装与sed命令的使用
  • #QT(串口助手-界面)
  • (4)Elastix图像配准:3D图像
  • (70min)字节暑假实习二面(已挂)
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (二)Linux——Linux常用指令
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (论文阅读30/100)Convolutional Pose Machines
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)菜鸟学数据库(三)——存储过程