- 單個(gè)查詢
<select id="selectById" resultType="io.zjh.modules.sys.entity.SysMenuEntity">
select * from sys_menu t where t.menu_id = #{menuId}
</select>
- 批量查詢(resultType填返回列表中的類型就行)
<select id="findMenuName" resultType="java.lang.String" parameterType="java.util.List">
select menu_name
from menu
where menu_id in
<foreach collection="list" item="valueList" open="(" close=")" separator=",">
#{valueList}
</foreach>
</select>
- 單個(gè)插入
<insert id="insert" parameterType="io.zjh.modules.sys.entity.SysMenuEntity">
insert into sys_menu(menu_id,parent_id,name,url,perms,type,icon,order_num)
values (
#{menuId},
#{parentId},
#{name},
#{url},
#{perms},
#{type},
#{icon},
#{orderNum}
)
</insert>
- 批量插入(注意括號(hào)不是寫在open和close)
<insert id="insertBatch" parameterType="java.util.List">
insert into sys_role_menu(role_id,menu_id)
values
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.roleId},
#{item.menuId}
)
</foreach>
</insert>
- 單個(gè)更新
<update id="update" parameterType="io.zjh.modules.sys.entity.SysUserEntity">
update sys_user
<set>
password = #{newPassword}
</set>
where user_id = #{userId} and password = #{password}
</update>
- 批量更新
<update id="updateRoles" parameterType="java.util.List">
update role
set enabled = '0'
where role_id in <foreach collection="list" item="roleIds" index="index" open="(" separator="," close=")">
#{roleIds}
</foreach>
</update>
- 單個(gè)刪除
<delete id="deleteByMenuId">
delete from sys_role_menu where menu_id = #{menuId}
</delete>
- 批量刪除
<delete id="deleteBatchIds" parameterType="java.util.List">
delete from sys_user where user_id in
<foreach collection="list" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</delete>
傳入list和array比較
- 如果傳入的是單參數(shù)且參數(shù)類型是一個(gè)List的時(shí)候梯嗽,parameterType為java.util.List房蝉。collection屬性值為list
int deleteByLogic(List list);
- 如果傳入的是單參數(shù)且參數(shù)類型是一個(gè)array數(shù)組的時(shí)候, 參數(shù)類型為parameterType="int" 集合 collection的屬性值為array 。
int deleteByLogic(int[] array);
<foreach item="item" collection="array" open="(" separator="," close=")">
#{item}
</foreach>
jdbcType
- 有時(shí)候插入更新時(shí)需要制定這個(gè)類型,是因?yàn)閭魅肓丝罩担瑹o法判斷它的類型,mybatis會(huì)報(bào)錯(cuò)腺劣。
JdbcType | Oracle | MySql | |
---|---|---|---|
JdbcType | BIGINT | BIGINT | |
JdbcType | BIT | BIT | |
JdbcType | BLOB | BLOB | BLOB |
JdbcType | BOOLEAN | ||
JdbcType | CHAR | CHAR | CHAR |
JdbcType | CLOB | CLOB | 修改為TEXT |
JdbcType | DATE | DATE | DATE |
JdbcType | DECIMAL | DECIMAL | DECIMAL |
JdbcType | DOUBLE | NUMBER | DOUBLE |
JdbcType | FLOAT | FLOAT | FLOAT |
JdbcType | INTEGER | INTEGER | INTEGER |
JdbcType | LONGVARCHAR | LONG VARCHAR | |
JdbcType | NULL | ||
JdbcType | SMALLINT | SMALLINT | SMALLINT |
JdbcType | TIME | TIME | |
JdbcType | TIMESTAMP | TIMESTAMP | TIMESTAMP/DATETIME |
JdbcType | TINYINT | TINYINT | |
JdbcType | VARCHAR | VARCHAR | VARCHAR |