Mybatis--insert文

10057 ワード

mybatis挿入
  • mybatis新規データ
  • <insert id="insert">
    		insert into sys_user(id,user_name,user_password,user_email,user_info,head_img,create_time)
    		values(#{id},#{userName},#{userPassword},#{userEmail},#{userInfo},#{headImg},#{createTime})
    insert>
    
  • mybatisメインキー
  • に戻ります.
    useGeneratedKeys    true  ,mybatis   JDBC getGeneratedKeys                 。
               keyProperty   id  。          ,      ,            
    keyColumn  ,          ,       keyProperty         。              ,
      SQL           id     #{id} 
    
              id
    
    <insert id="insert2" useGeneratedKeys="true" keyProperty="id">
    		insert into sys_user(id,user_name,user_password,user_email,user_info,head_img,create_time)
    		values(
    			#{id},#{userName},#{userPassword},
    			#{userEmail},#{userInfo},
    			#{headImg, jdbcType=BLOB},
    			#{createTime,jdbcType=TIMESTAMP}
    		)
    insert>
    
  • selectKeyは、メインキー
  • を取得する.
    mysql:
    <selectKey keyColumn="id" resultType="Long" keyProperty="id" order="AFTER">
    			select last_insert_id()
    selectKey>
    
    oracle:
    <selectKey keyColumn="id" resultType="Long" keyProperty="id" order="BEFORE">
    			select SEQ_ID.nextval from dual
    selectKey>
    
    sqlserver:
    select scope_identity()
    
    <insert id="insert3">
    		insert into sys_user(id,user_name,user_password,user_email,user_info,head_img,create_time)
    		values(
    			#{id},#{userName},#{userPassword},
    			#{userEmail},#{userInfo},
    			#{headImg, jdbcType=BLOB},
    			#{createTime,jdbcType=TIMESTAMP}
    		)
    		<selectKey keyColumn="id" resultType="Long" keyProperty="id" order="AFTER">
    			select last_insert_id()
    		selectKey>
    insert>
    
  • コメント@Insert
  • 挿入
    	@Insert({ "insert into sys_role(id,role_name,enabled,create_by,create_time)"
    		+ "values(#{id},#{roleName},#{enabled},#{createBy},#{createTime})" })
    	void insert1(SysRole sysRole);
    
  • は、自己増加キー
    	@Insert({ "insert into sys_role(role_name,enabled,create_by,create_time)"
    		+ "values(#{roleName},#{enabled},#{createBy},#{createTime})" })
    	@Options(useGeneratedKeys=true,keyProperty="id")
    	void insert2(SysRole sysRole);
    
  • を返す.
  • は、自己増加キーではない
    	@Insert({ "insert into sys_role(role_name,enabled,create_by,create_time)"
    		+ "values(#{roleName},#{enabled},#{createBy},#{createTime})" })
    	@SelectKey(statement = "select last_insert_id()",
    				keyProperty = "id",
    				resultType = Long.class,
    				before = false
    			)
    	void insert3(SysRole sysRole);
    
  • を返します.