• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Mybatis中Mapper映射文件使用详解

mybatis 搞代码 4年前 (2022-01-09) 28次浏览 已收录 0个评论

紧接上文所述,在这篇文章中我将对Mapper映射文件进行详细的说明。

Mapper映射文件是一个xml格式文件,必须遵循相应的dtd文件规范,如ibatis-3-mapper.dtd。我们先大体上看看支持哪些配置?如下所示,从Eclipse里截了个屏:

从上图可以看出,映射文件是以<mapper>作为根节点,在根节点中支持9个元素,分别为insert、update、delete、select(增删改查);cache、cache-ref、resultMap、parameterMap、sql。

下文中,我们将首先对增删改进行描述,然后对查进行详细说明,最后对其他五个元素进行简单说明。

(1)insert、update、delete

我们先从配置文件看起:

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE mapper  
PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" 
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> 

<!-- mapper 为根元素节点, 一个namespace对应一个dao -->
<mapper namespace="com.dy.dao.UserDao">

  <insert
   <!-- 1. id (必须配置)
    id是命名空间中的唯一标识符,可被用来代表这条语句。 
    一个命名空间(namespace) 对应一个dao接口, 
    这个id也应该对应dao里面的某个方法(相当于方法的实现),因此id 应该与方法名一致 -->
   
   id="addUser"
   
   <!-- 2. parameterType (可选配置, 默认为mybatis自动选择处理)
    将要传入语句的参数的完全限定类名或别名, 如果不配置,mybatis会通过ParameterHandler 根据参数类型默认选择合适的typeHandler进行处理
    parameterType 主要指定参数类型,可以是int, short, long, string等类型,也可以是复杂类型(如对象) -->
   
   parameterType="user"
   
   <!-- 3. flushCache (可选配置,默认配置为true)
    将其设置为 true,任何时候只要语句被调用,都会导致本地缓存和二级缓存都会被清空,默认值:true(对应插入、更新和删除语句) -->
   
   flushCache="true"
   
   <!-- 4. statementType (可选配置,默认配置为PREPARED)
    STATEMENT,PREPARED 或 CALLABLE 的一个。这会让 MyBatis 分别使用 Statement,PreparedStatement 或 CallableStatement,默认值:PREPARED。 -->
   
   statementType="PREPARED"
   
   <!-- 5. keyProperty (可选配置, 默认为unset)
    (仅对 insert 和 update 有用)唯一标记一个属性,MyBatis 会通过 getGeneratedKeys 的返回值或者通过 insert 语句的 selectKey 子元素设置它的键值,默认:unset。如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表。 -->
   
   keyProperty=""
   
   <!-- 6. keyColumn   (可选配置)
    (仅对 insert 和 update 有用)通过生成的键值设置表中的列名,这个设置仅在某些数据库(像 PostgreSQL)是必须的,当主键列不是表中的第一列的时候需要设置。如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表。 -->
   
   keyColumn=""
   
<i>本文来源gaodai$ma#com搞$代*码网2</i>   <!-- 7. useGeneratedKeys (可选配置, 默认为false)
    (仅对 insert 和 update 有用)这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 MySQL 和 SQL Server 这样的关系数据库管理系统的自动递增字段),默认值:false。 -->
   
   useGeneratedKeys="false"
   
   <!-- 8. timeout (可选配置, 默认为unset, 依赖驱动)
    这个设置是在抛出异常之前,驱动程序等待数据库返回请求结果的秒数。默认值为 unset(依赖驱动)。 -->
   timeout="20">

  <update
   id="updateUser"
   parameterType="user"
   flushCache="true"
   statementType="PREPARED"
   timeout="20">

  <delete
   id="deleteUser"
   parameterType="user"
   flushCache="true"
   statementType="PREPARED"
   timeout="20">
</mapper>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Mybatis中Mapper映射文件使用详解
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址