全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Mybatis增删改查mapper文件写法详解

  1. 插入

<mapper namespace="需要实现接口的全类名">
 <insert id="需要实现的接口里的方法名" parameterType="方法参数类型,如果是对象要写全类名">
  INSERT sql命令(命令里通过#{}获取对象属性)
  <!--注意属性名区分大小写 -->
 </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="方法参数类型" resultType="方法返回值类型,全类名">
 SELECT 表里字段名 AS 结果字段名 FROM 表名 WHERE 条件
 <!--注意:结果字段名与属性名保持一致,区分大小写-->
</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语句基本一致,直接贴代码

<update id="updatePersonInformation" parameterType="com.mlj.entity.Prac_Person" > 
  UPDATE PRAC_PERSON SET P_NAME=#{name},P_PASSWORD=#{password} WHERE P_ID=#{id}
  <!-- 属性字段名区分大小写 -->
</update>

4.删除

与前面插入除了sql语句基本一致,直接贴代码

<delete id="deletePerson" parameterType="java.lang.Integer">
  DELETE FROM PRAC_PERSON WHERE P_ID=#{id}
</delete>

下面看下mybatis的mapper配置文件的一般写法

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文件写法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# mybatis  # mapper写法  # 详解Mybatis中万能的Map和模糊查询写法  # MyBatis实现模糊查询的几种方式  # mybatis 模糊查询的实现方法  # MyBatis的模糊查询mapper.xml的写法讲解  # 字段名  # 小编  # 在此  # 给大家  # 所述  # 给我留言  # 配置文件  # 要写  # 感谢大家  # 返回值  # 疑问请  # 有任何  # address  # column  # result  # A_PERSON  # property  # resultType  # select 


相关文章: rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  如何高效利用200m空间完成建站?  建站之星代理费用多少?最新价格详情介绍  建站之星在线版空间:自助建站+智能模板一键生成方案  建站之星微信建站一键生成小程序+多端营销系统  微信h5制作网站有哪些,免费微信H5页面制作工具?  c++ stringstream用法详解_c++字符串与数字转换利器  建站主机与虚拟主机有何区别?如何选择最优方案?  建站之家VIP精选网站模板与SEO优化教程整合指南  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  如何在Ubuntu系统下快速搭建WordPress个人网站?  金*站制作公司有哪些,金华教育集团官网?  代购小票制作网站有哪些,购物小票的简要说明?  北京建设网站制作公司,北京古代建筑博物馆预约官网?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  如何用美橙互联一键搭建多站合一网站?  个人摄影网站制作流程,摄影爱好者都去什么网站?  建站VPS能否同时实现高效与安全翻墙?  ,网页ppt怎么弄成自己的ppt?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何快速搭建响应式可视化网站?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  公司门户网站制作流程,华为官网怎么做?  ,巨量百应是干嘛的?  盐城做公司网站,江苏电子版退休证办理流程?  移民网站制作流程,怎么看加拿大移民官网?  Android自定义控件实现温度旋转按钮效果  Python lxml的etree和ElementTree有什么区别  清除minerd进程的简单方法  如何在建站主机中优化服务器配置?  如何批量查询域名的建站时间记录?  TestNG的testng.xml配置文件怎么写  制作销售网站教学视频,销售网站有哪些?  如何选择高效稳定的ISP建站解决方案?  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  如何用腾讯建站主机快速创建免费网站?  建站之星多图banner生成与模板自定义指南  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  如何使用Golang table-driven基准测试_多组数据测量函数效率  香港服务器建站指南:免备案优势与SEO优化技巧全解析  高性能网站服务器部署指南:稳定运行与安全配置优化方案  如何通过老薛主机一键快速建站?  如何高效搭建专业期货交易平台网站?  中山网站推广排名,中山信息港登录入口?  大连网站设计制作招聘信息,大连投诉网站有哪些?  如何快速配置高效服务器建站软件?  智能起名网站制作软件有哪些,制作logo的软件? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。