zoukankan      html  css  js  c++  java
  • MyBatis insert 返回主键的方法

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

  • 相关阅读:
    [转]Centos 查看端口占用情况和开启端口命令
    [转]简单美观的文字标签云组件
    [转]scp、sftp命令使用
    清华大学《C++语言程序设计基础》线上课程笔记03---数据的共享和保护&数组
    清华大学《C++语言程序设计基础》线上课程笔记02---类与对象
    清华大学《C++语言程序设计基础》线上课程笔记01---基础概念与一些注意事项
    新的玩具:Windows上的awesome
    环境变量ANDROID_SDK_HOME的作用
    Android Dalvik和JVM的区别
    是否使用TDD(测试驱动开发)进行UI开发
  • 原文地址:https://www.cnblogs.com/gisblogs/p/4344694.html
Copyright © 2011-2022 走看看