Mapper XML文件(CRUD標籤)

select

<!-- 查詢的statement,
		id:在同一個命名空間下的唯一標識;使用動態代理之後,要求和mapper接口的方法名一致。必須屬性
		resultType:sql語句的結果集封裝類型;使用動態代理之後,要求和mapper接口方法的返回類型一致。和resultMap二選一
		parameterType:參數類型;使用動態代理之後,要求和mapper接口的方法參數類型一致。可省略,這裏就省略了
		內容:查詢的sql語句
	 -->
	<select id="queryUserById" resultType="User">
		select *,user_name from tb_user where id = #{id}

insert

	<!-- 新增的statement
		id:在同一個命名空間下的唯一標識;使用動態代理之後,要求和mapper接口的方法名一致。必須屬性
		parameterType:參數類型;使用動態代理之後,要求和mapper接口的方法參數類型一致。可省略
		內容:新增的sql語句
	 -->
	<insert id="insertUser" parameterType="User">
		INSERT INTO tb_user (
			user_name,
			password,
			name,
			age,
			sex,
			birthday,
			created,
			updated
		)
		VALUES
		(
			#{userName},
			#{password},
			#{name},
			#{age},
			#{sex},
			#{birthday},
			NOW(),
			NOW()
		);
	</insert>

主鍵回寫:useGeneratedKeys

<!-- 新增的statement
		id:在同一個命名空間下的唯一標識;使用動態代理之後,要求和mapper接口的方法名一致。必須屬性
		parameterType:參數類型;使用動態代理之後,要求和mapper接口的方法參數類型一致。可省略
		useGeneratedKeys:開啓主鍵回寫,回寫到pojo參數中
		keyProperty:主鍵的屬性名
		keyColumn:主鍵的列名,如果主鍵的列名和屬性名一致,該屬性可省略
		內容:新增的sql語句
	 -->
	<insert id="insertUser" useGeneratedKeys="true" keyProperty="id" keyColumn="id" parameterType="User">
		INSERT INTO tb_user (
			user_name,
			password,
			name,
			age,
			sex,
			birthday,
			created,
			updated
		)
		VALUES
		(
			#{userName},
			#{password},
			#{name},
			#{age},
			#{sex},
			#{birthday},
			NOW(),
			NOW()
		);
	</insert>

主鍵回寫:selectKey標籤

<!-- 新增的statement
		id:在同一個命名空間下的唯一標識;使用動態代理之後,要求和mapper接口的方法名一致。必須屬性
		parameterType:參數類型;使用動態代理之後,要求和mapper接口的方法參數類型一致。可省略
		內容:新增的sql語句
	 -->
	<insert id="insertUser" parameterType="User">
		<!-- 查詢新增數據的主鍵,可以在新增sql語句之前或者之後執行
			order:執行順序,必須
				BEFORE:在新增sql語句之前執行,通常主鍵自增長的oracle使用這種方式
				AFTER:在新增sql語句之後執行,通常主鍵自增長的mysql使用這種方式
			keyProperty:返回值寫到pojo參數的屬性名,必須
			resultType:返回值類型,必須
		 -->
		<selectKey order="AFTER" resultType="long">
			select LAST_INSERT_ID()
		</selectKey>
		INSERT INTO tb_user (
			user_name,
			password,
			name,
			age,
			sex,
			birthday,
			created,
			updated
		)
		VALUES
		(
			#{userName},
			#{password},
			#{name},
			#{age},
			#{sex},
			#{birthday},
			NOW(),
			NOW()
		);
	</insert>

update

<!-- 更新的statement
		id:在同一個命名空間下的唯一標識;使用動態代理之後,要求和mapper接口的方法名一致。必須屬性
		parameterType:參數類型;使用動態代理之後,要求和mapper接口的方法參數類型一致。可省略
		內容:更新的sql語句
	 -->
	<update id="updateUser" parameterType="com.atguigu.mybatis.pojo.User">
		UPDATE tb_user
		SET
			user_name = #{userName},
			password = #{password},
			name = #{name},
			age =
			#{age},
			sex = #{sex},
			birthday = #{birthday},
			updated = NOW()
		WHERE
			(id = #{id});
	</update>

delete

<!-- 刪除的statement
		id:在同一個命名空間下的唯一標識;使用動態代理之後,要求和mapper接口的方法名一致。必須屬性
		parameterType:參數類型;使用動態代理之後,要求和mapper接口的方法參數類型一致。可省略
		內容:刪除的sql語句
	 -->
	<delete id="deleteUserById" parameterType="java.lang.Long">
		delete from tb_user where id=#{id}
	</delete>
發佈了54 篇原創文章 · 獲贊 10 · 訪問量 7879
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章