Mybatis增刪改查mapper文件寫(xiě)法詳解
1. 插入
<mapper namespace="需要實(shí)現(xiàn)接口的全類(lèi)名">
<insert id="需要實(shí)現(xiàn)的接口里的方法名" parameterType="方法參數(shù)類(lèi)型,如果是對(duì)象要寫(xiě)全類(lèi)名">
INSERT sql命令(命令里通過(guò)#{}獲取對(duì)象屬性)
<!--注意屬性名區(qū)分大小寫(xiě) -->
</insert>
<mapper>
EG:
<mapper namespace="com.mlj.dao.PersonDao">
<insert id="insertPerson" parameterType="com.mlj.entity.Prac_Person">
INSERT INTO PRAC_PERSON(p_NAME,P_PASSWORD) VALUES(#{name},#{password})
</insert>
</mapper>
2. 查詢
<select id="方法名" parameterType="方法參數(shù)類(lèi)型" resultType="方法返回值類(lèi)型,全類(lèi)名"> SELECT 表里字段名 AS 結(jié)果字段名 FROM 表名 WHERE 條件 <!--注意:結(jié)果字段名與屬性名保持一致,區(qū)分大小寫(xiě)--> </select>
EG:
<resultMap type="Address" id="address">
<result column="A_PERSON" property="personId"/>
<result column="A_ADDRESS" property="address"/>
<result column="A_NUMBER" property="number"/></resultMap>
<select id="selectAddressByPersonId"
parameterType="java.lang.String" resultMap="address">
SELECT * FROM PRAC_ADDRESS LEFT JOIN PRAC_PERSON ON A_PERSON=#{personId} AND PRAC_ADDRESS.A_PERSON=PRAC_PERSON.P_ID
</select>
此處先配置resultMapp,使表列名與屬性名一致。
3.修改
與前面插入除了sql語(yǔ)句基本一致,直接貼代碼
<update id="updatePersonInformation" parameterType="com.mlj.entity.Prac_Person" >
UPDATE PRAC_PERSON SET P_NAME=#{name},P_PASSWORD=#{password} WHERE P_ID=#{id}
<!-- 屬性字段名區(qū)分大小寫(xiě) -->
</update>
4.刪除
與前面插入除了sql語(yǔ)句基本一致,直接貼代碼
<delete id="deletePerson" parameterType="java.lang.Integer">
DELETE FROM PRAC_PERSON WHERE P_ID=#{id}
</delete>
下面看下mybatis的mapper配置文件的一般寫(xiě)法
mapper.xml大致如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzcominfo.voucher.CommodityCategoryManager">
<cache-ref namespace="com.hzcominfo.dataggr.cloud" />
<insert id="insertCommodityCategoryManager" parameterType="com.hzcominfo.voucher.mapper.CommodityCategoryManager" keyProperty="id" >
INSERT INTO COMMODITY_CATEGORY_MANAGER (
<include refid="fields" />
) VALUES (
<include refid="values" />
)
</insert>
<update id="updateCommodityCategoryManager" parameterType="com.hzcominfo.voucher.mapper.CommodityCategoryManagerKey">
UPDATE COMMODITY_CATEGORY_MANAGER
<include refid="set" />
<include refid="where" />
</update>
<update id="deleteCommodityCategoryManager" parameterType="com.hzcominfo.voucher.mapper.CommodityCategoryManagerKey">
DELETE FROM COMMODITY_CATEGORY_MANAGER <include refid="where" />
</update>
<select id="selectCommodityCategoryManager" parameterType="String"
resultType="com.hzcominfo.voucher.mapper.CommodityCategoryManager">
SELECT * FROM COMMODITY_CATEGORY_MANAGER <include refid="where" />
</select>
<select id="selectCommodityCategoryManagerByCriteria" parameterType="net.butfly.albacore.dbo.criteria.Criteria"
resultType="com.hzcominfo.voucher.mapper.CommodityCategoryManagerKey">
SELECT CATEGORY_ID, USER_ID FROM COMMODITY_CATEGORY_MANAGER <include refid="where" />
</select>
<select id="countCommodityCategoryManagerByCriteria" parameterType="net.butfly.albacore.dbo.criteria.Criteria"
resultType="long">
SELECT count(*) FROM COMMODITY_CATEGORY_MANAGER <include refid="where" />
</select>
<sql id="fields">
<if test="categoryId!=null">CATEGORY_ID</if>
<if test="userId!=null">,USER_ID</if>
</sql>
<sql id="values">
<if test="categoryId!=null">#{categoryId}</if>
<if test="userId!=null">,#{userId}</if>
</sql>
<sql id="set">
<set>
<trim prefix="" prefixOverrides=",">
<if test="categoryId!=null">,CATEGORY_ID=#{categoryId}</if>
<if test="userId!=null">,USER_ID=#{userId}</if>
</trim>
</set>
</sql>
<sql id="where">
<where>
<trim prefix="" prefixOverrides="and|or" >
<if test="categoryId!=null">AND CATEGORY_ID=#{categoryId}</if>
<if test="userId!=null">AND USER_ID=#{userId}</if>
</trim>
</where>
</sql>
</mapper>
以上所述是小編給大家介紹的Mybatis增刪改查mapper文件寫(xiě)法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
SpringBoot實(shí)戰(zhàn)教程之新手入門(mén)篇
Spring Boot使我們更容易去創(chuàng)建基于Spring的獨(dú)立和產(chǎn)品級(jí)的可以"即時(shí)運(yùn)行"的應(yīng)用和服務(wù),下面這篇文章主要給大家介紹了關(guān)于SpringBoot實(shí)戰(zhàn)教程之入門(mén)篇的相關(guān)資料,需要的朋友可以參考下2022-03-03
解決運(yùn)行jar包出錯(cuò):ClassNotFoundException問(wèn)題
這篇文章主要介紹了解決運(yùn)行jar包出錯(cuò):ClassNotFoundException問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
Java使用泛型Class實(shí)現(xiàn)消除模板代碼
Class作為實(shí)現(xiàn)反射功能的類(lèi),在開(kāi)發(fā)中經(jīng)常會(huì)用到,然而,當(dāng)Class遇上泛型后,事情就變得不是那么簡(jiǎn)單了,所以本文就來(lái)講講Java如何使用泛型Class實(shí)現(xiàn)消除模板代碼,需要的可以參考一下2023-06-06

