初用mybatis,发现很好的一个操作数据库的框架,里面有一些小技巧,挺简单,很实用,记录一下:

mybatis的插入语句:

<insert id="insertAsset" parameterType="Criteria">
    <selectKey resultType="java.lang.String" keyProperty="condition.Id" order="BEFORE">  //设置主键 keyproperty名字随便取
        select sys_guid() from dual     //从数据库中查询uuid作为主键
    </selectKey>
        insert into asset_info
        <trim prefix="(" suffix=")" suffixOverrides=",">   //prefix前缀  suffix后缀   suffixOverrides后缀最后去除多余的
            ID,PROCESSINSTANCEID,
            <if test="condition.ASSET_NAME != null">ASSET_NAME,</if>
            <if test="condition.ASSET_SORT != null">ASSET_SORT,</if>
            <if test="condition.ASSET_MODEL != null">ASSET_MODEL,</if>
            <if test="condition.ADD_TYPE != null">ADD_TYPE,</if>
        </trim>
        values
        <trim prefix="(" suffix=")" suffixOverrides=",">
            #{condition.Id},#{condition.processinstanceId},
            <if test="condition.ASSET_NAME != null">#{condition.assetName},</if>
            <if test="condition.ASSET_SORT != null">#{condition.assetSort},</if>
            <if test="condition.ASSET_MODEL != null">#{condition.assetModel},</if>
            <if test="condition.ADD_TYPE != null">#{condition.addType},</if>
        </trim>
    </insert>

如果插入类型是String类型,那么如下:

<select id="querySortId" resultType="ComboReturn" parameterType="String">
        select t.SORT_ID as value, t.SORT_NAME as text
                  from SMS_RD_SORT t
                  <if test="_parameter!=null">    //判断是否为空只能用_parameter作为参数
                      <where>
                         t.type_id =#{typeId,jdbcType=VARCHAR}
                      </where>
                  </if>
    </select>

mybatis配置文件xml中插入新数据的更多相关文章

  1. 通过mybatis向数据库中插入日期数据

    遇到的问题: 通过mybatis向数据库中插入日期格式数据,发现只有年月日, 没有小时分钟和秒 当你想在实体类中使用java.util.Date类型,而且还想在数据库中保存时分秒时, 解决办法: 你可 ...

  2. ado.net 向sql中插入新数据的同时获取自增重的id值

    两种方法都可以实现: 要获取的自增长列为phonebookID 方法一: sql = "insert into phonebook (mobile,peoplename) output in ...

  3. 【转载】C#中使用Insert方法往ArrayList集合指定索引位置插入新数据

    ArrayList集合是C#中的一个非泛型的集合类,是弱数据类型的集合类,可以使用ArrayList集合变量来存储集合元素信息,在ArrayList集合操作过程中,可以使用ArrayList集合类的I ...

  4. Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解

    封面:洛小汐 作者:潘潘 做大事和做小事的难度是一样的.两者都会消耗你的时间和精力,所以如果决心做事,就要做大事,要确保你的梦想值得追求,未来的收获可以配得上你的努力. 前言 上一篇文章 <My ...

  5. mysql如果数据不存在,则插入新数据,否则更新的实现方法

    mysql如果数据不存在,则插入新数据,否则更新的实现方法 //如果不存在,则插入新数据 $sql = "INSERT INTO {$ecs->table('cat_lang')} ( ...

  6. 转载:mysql如果数据不存在,则插入新数据,否则更新的实现方法

    转自:http://www.jb51.net/article/28885.htm //如果不存在,则插入新数据 $sql = "INSERT INTO {$ecs->table(‘ca ...

  7. mysql 如果数据不存在,则插入新数据,否则更新 的实现方法

    CREATE TABLE `table_test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `my_key` int(11) NOT NULL DEFAULT ...

  8. SQL语句 在一个表中插入新字段

    SQL语句 在一个表中插入新字段: alter table 表名 add 字段名 字段类型 例: alter table OpenCourses add Audio varchar(50)alter ...

  9. Java之XML操作:从XML中直接获取数据

    本文介绍如何将数据记录在XML文件中,然后通过DOM4J直接从XML中读取到数据. 依赖包: <dependency> <groupId>dom4j</groupId&g ...

随机推荐

  1. visual studio各个版本的差异

  2. Fedora和Ubuntu下安装OpenGL开发环境配置

    Fedora下OpenGl开发环境配置 开发OpenGL工程需要3个库文件和对应的头文件: libglut.so,libGLU.so,libGL.so, gl.h ,glu.h, glut.h 这些库 ...

  3. 在excel批量更改单元格类型后的批量刷新显示

    把E的东西变成完整显示 解决办法: 选中所需要更改的整列数据------>菜单栏的数据选项------>分列

  4. FileStream文件流的读取和写入(为以后聊天工具的设计基础)

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...

  5. 自定义cell的步骤(每个cell的高度不一样,每个cell里面显示的内容也不一样)

    1.新建一个继承自UITableViewCell的子类  2. 在initWithStyle:方法中进行子控件的初始化 1> 将有可能显示的所有子控件都添加到contentView中 2> ...

  6. spring mvc实现登录+异常

    登录页面login.jsp在webroot下 <body> <form action="user/login" method="post"&g ...

  7. linux find 命令详解

    Linux下 利用find命令删除所有vssver2.scc文件 删除所有vssver2.scc文件 这是我当初查找 Linux find 命令的目的所在 1)  find / -name ‘vssv ...

  8. js中的getAttribute方法使用示例

    getAttribute()方法是一个函数.它只有一个参数——你打算查询的属性的名字,下面为大家介绍下其具体的使用   getAttribute()方法 至此,我们已经向大家介绍了两种检索特定元素节点 ...

  9. Grunt之项目脚手架

    在网上搜了下,grunt这方面的教程挺少的,来去都是一些被频繁转载的文章.唉,人艰不拆啊. 首先我们在全局环境中安装grunt-init. npm install -g grunt-init 来看看官 ...

  10. POJ 1276 Cash Machine

    Cash Machine Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24213 Accepted: 8476 Descrip ...