mybatis笔记

一.sqlmapper中#和$的区别

1.#是把传入的数据当作字符串,如#field传入的是id,则sql语句生成是这样,order by "id",这当然会报错..
2.$传入的数据直接生成在sql里,如#field传入的是id,则sql语句生成是这样,order by id, 这就对了. 
$方式一般用于传入数据库对象.例如传入表名.  不加引号

#方式一般用于传入插入/更新的值或查询/删除的where条件 “”值

二.sqlmapper中的jdbcType类型

   #{FLD_NUMBER,jdbcType=INTEGER},
#{FLD_VARCHAR,jdbcType=VARCHAR},
#{FLD_DATE,jdbcType=DATE},
#{FLD_INTEGER,jdbcType=INTEGER},
#{FLD_DOUBLE,jdbcType=DOUBLE},
#{FLD_LONG,jdbcType=INTEGER},
#{FLD_CHAR,jdbcType=CHAR},
#{FLD_BLOB,jdbcType=BLOB},
#{FLD_CLOB,jdbcType=CLOB},
#{FLD_FLOAT,jdbcType=FLOAT},
#{FLD_TIMESTAMP,jdbcType=TIMESTAMP}

例子比如:

 ① <insert id="addUserOrder" parameterType="hashmap">

insert into t_pub_user(user_id,USERNAME,password,USERDSPNAME,EMAIL,activity,create_user,CREATE_DATE) values(

 #{id,jdbcType=INTEGER},#{username,jdbcType=VARCHAR},#{password,jdbcType=VARCHAR},

#{userdspname,jdbcType=VARCHAR},#{email,jdbcType=VARCHAR},1,1,

to_date(#{create_date,jdbcType=DATE},'yyyy-mm-dd hh24:mi:ss'))

   </insert>

②<delete id="deleteWorkOrder" parameterType="hashmap">

  DELETE FROM S_ORDERINFO WHERE ORDER_ID IN(${orderIds})

 </delete>


你可能感兴趣的:(数据库,字符串,sql语句)