mybatis中的几个注意的地方

1、首先定义一个sql标签,一定要定义唯一id<sql id="Base_Column_List" >name,age</sql>2、然后通过id引用<select id="selectAll">select <include refid="Base_Column_List" />    from student</select>这个<include refid="Base_Column_List" />会自动把上面的代码贴过来。

<trim prefix="(" suffix=")" suffixOverrides="," ></trim>

3.<trim prefix="" suffix="" suffixOverrides="" prefixOverrides="">

  <insert id="insertSelective" parameterType="com.dearbinge.data.pojo.Security" >
    <!--
      WARNING - @mbggenerated
      This element is automatically generated by MyBatis Generator, do not modify.
    -->
    insert into t_security
    <trim prefix="(" suffix=")" suffixOverrides="," >
      <if test="fSecuritykey != null" >
        f_SecurityKey,
      </if>
      <if test="fSecurityvalue != null" >
        f_SecurityValue,
      </if>
      <if test="fMerchantid != null" >
        f_MerchantId,
      </if>
      <if test="fTag != null" >
        f_Tag,
      </if>
      <if test="fIsdelete != null" >
        f_IsDelete,
      </if>
      <if test="fCreateuser != null" >
        f_CreateUser,
      </if>
      <if test="fCreatetime != null" >
        f_CreateTime,
      </if>
      <if test="fUpdateuser != null" >
        f_UpdateUser,
      </if>
      <if test="fUpdatetime != null" >
        f_UpdateTime,
      </if>
      <if test="fRemark != null" >
        f_Remark,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides="," >
      <if test="fSecuritykey != null" >
        #{fSecuritykey,jdbcType=VARCHAR},
      </if>
      <if test="fSecurityvalue != null" >
        #{fSecurityvalue,jdbcType=VARCHAR},
      </if>
      <if test="fMerchantid != null" >
        #{fMerchantid,jdbcType=VARCHAR},
      </if>
      <if test="fTag != null" >
        #{fTag,jdbcType=VARCHAR},
      </if>
      <if test="fIsdelete != null" >
        #{fIsdelete,jdbcType=INTEGER},
      </if>
      <if test="fCreateuser != null" >
        #{fCreateuser,jdbcType=VARCHAR},
      </if>
      <if test="fCreatetime != null" >
        #{fCreatetime,jdbcType=DATE},
      </if>
      <if test="fUpdateuser != null" >
        #{fUpdateuser,jdbcType=VARCHAR},
      </if>
      <if test="fUpdatetime != null" >
        #{fUpdatetime,jdbcType=DATE},
      </if>
      <if test="fRemark != null" >
        #{fRemark,jdbcType=VARCHAR},
      </if>
    </trim>
  </insert>

  

</trim>

prefix:在trim标签内sql语句加上前缀。

suffix:在trim标签内sql语句加上后缀。

suffixOverrides:指定去除多余的后缀内容,如:suffixOverrides=",",去除trim标签内sql语句多余的后缀","。

prefixOverrides:指定去除多余的前缀内容

时间: 2024-07-30 14:10:20

mybatis中的几个注意的地方的相关文章

MyBatis中如何通过继承SqlSessionDaoSupport来编写DAO(一)

在MyBatis中,当我们编写好访问数据库的映射器接口后,MapperScannerConfigurer就能自动成批地帮助我们根据这些接口生成DAO对象(),然后我们再使用Spring把这些DAO对象注入到业务逻辑层的对象(Service类的对象).因此,在这种情况下的DAO层,我们几乎不用编写代码,而且也没有地方编写,因为只有接口.这固然方便,不过如果我们需要在DAO层写一些代码的话,这种方式就无能为力了.此时,MyBatis-Spring提供给我们的SqlSessionDaoSupport类

MyBatis中的OGNL教程

MyBatis中的OGNL教程 有些人可能不知道MyBatis中使用了OGNL,有些人知道用到了OGNL却不知道在MyBatis中如何使用,本文就是讲如何在MyBatis中使用OGNL. 如果我们搜索OGNL相关的内容,通常的结果都是和Struts有关的,你肯定搜不到和MyBatis有关的,虽然和Struts中的用法类似但是换种方式理解起来就有难度. MyBatis常用OGNL表达式 e1 or e2 e1 and e2 e1 == e2,e1 eq e2 e1 != e2,e1 neq e2

Mybatis中配置Mapper的方法

Mybatis中配置Mapper的方法 在这篇文章中我主要想讲一下Mybatis配置文件中mappers元素的配置.关于基础部分的内容可以参考http://blog.csdn.net/elim168/article/details/40622491. 我们知道在Mybatis中定义Mapper信息有两种方式,一种是利用xml写一个对应的包含Mapper信息的配置文件:另一种就是定义一个Mapper接口,然后定义一些相应的操作方法,再辅以相应的操作注解. 现假设我有这样一个实体类: Java代码 

【MyBatis学习11】MyBatis中的延迟加载

1. 什么是延迟加载 举个例子:如果查询订单并且关联查询用户信息.如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息.把对用户信息的按需去查询就是延迟加载. 所以延迟加载即先从单表查询.需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快. 我们来对比一下: 关联查询:SELECT orders.*, user.username FROM orders, USER WHERE orders.user_id = user.id 延迟加载相当于:

mybatis中many2one

上一章我们讲到,如果说hibernate是面向对象为主,关系为辅,那么在mybatis中则是着重考虑的是关系模型,换句话说,如果对象模型设计的不好,就会很容易的感觉到实现的难度. 首先来看看最简单的单向many2one: 建立对象: public class Customer {     private Long id;     private String name; } public class Orders {     private Long id;     private String

MyBatis中如何通过继承SqlSessionDaoSupport来编写DAO(二)

(本文示例工程源代码下载地址:http://down.51cto.com/data/1975295) 在上一篇博文的最后,介绍了使用@PostConstruct注解标注StudentDao的init方法,这样在Spring完成依赖注入后此方法即会被Spring调用,从而也就完成了studentMapper的初始化工作. 如果只有StudentDao一个DAO类,这样做当然没有问题.不过在实际应用中,必定存在多个DAO类.每个DAO类的初始化方法,除了传入的映射器接口类型(如StudentMapp

mybatis中的resultMap 的高级映射

引用:https://www.cnblogs.com/yansum/p/5774873.html Mybatis 高级结果映射 ResultMap Association Collection 在阅读本文章时,先说几个mybatis中容易混淆的地方: 1. mybatis中的列不是数据库里的列而是查询里的列,可以是别名(如 select user_name as userName,这时column='userName' property="userName") 2.Mysql中使用自增

mybatis中#{}和${}的区别 (二)

mybatis中#{}和${}的区别 1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程 2.使用 Statement 对象.在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理.PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处. 3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得, prepared

MyBatis中主键回填的两种实现方式

主键回填其实是一个非常常见的需求,特别是在数据添加的过程中,我们经常需要添加完数据之后,需要获取刚刚添加的数据 id,无论是 Jdbc 还是各种各样的数据库框架都对此提供了相关的支持,本文我就来和和大家分享下数据库主键回填在 MyBatis 中的两种实现思路. 原生写法 框架来源于我们学过的基础知识,主键回填实际上是一个在 JDBC 中就被支持的写法,有的小伙伴可能不知道这一点,因此这里我先来说说在 JDBC 中如何实现主键回填. JDBC 中实现主键回填其实非常容易,主要是在构造 Prepar