广告
返回顶部
首页 > 资讯 > 数据库 >mybatis映射XML文件的示例分析
  • 329
分享到

mybatis映射XML文件的示例分析

2024-04-02 19:04:59 329人浏览 泡泡鱼
摘要

这篇文章主要介绍mybatis映射XML文件的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mybatis映射XML文件一个简单的映射文件:<?xml ver

这篇文章主要介绍mybatis映射XML文件的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

mybatis映射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.cnx.wxcar.mapper.CustomerMapper">
</mapper>

当然这个文件中没有任何的元素

The Mapper XML files have only a few first class elements :

  1. cache – Configuration of the cache for a given namespace.

  2. cache-ref – Reference to a cache configuration from another namespace.

  3. resultMap – The most complicated and powerful element that describes how to load your objects from the database result sets.

  4. sql – A reusable chunk of SQL that can be referenced by other statements.

  5. insert – A mapped INSERT statement.

  6. update – A mapped UPDATE statement.

  7. delete – A mapped DELETE statement.

  8. select – A mapped SELECT statement.

select

简单的例子:

<select id="selectPerson" parameterType="int" resultType="HashMap">
 SELECT * FROM PERSON WHERE ID = #{id}
</select>

select也有很多属性可以让你配置:

<select
 id="selectPerson"
 parameterType="int"
 parameterMap="deprecated"
 resultType="hashmap"
 resultMap="personResultMap"
 flushCache="false"
 useCache="true"
 timeout="10000"
 fetchSize="256"
 statementType="PREPARED"
 resultSetType="FORWARD_ONLY">

insert, update and delete

<insert
 id="insertAuthor"
 parameterType="domain.blog.Author"
 flushCache="true"
 statementType="PREPARED"
 keyProperty=""
 keyColumn=""
 useGeneratedKeys=""
 timeout="20">

<update
 id="updateAuthor"
 parameterType="domain.blog.Author"
 flushCache="true"
 statementType="PREPARED"
 timeout="20">

<delete
 id="deleteAuthor"
 parameterType="domain.blog.Author"
 flushCache="true"
 statementType="PREPARED"
 timeout="20">

语句:

<insert id="insertAuthor">
 insert into Author (id,username,passWord,email,bio)
 values (#{id},#{username},#{password},#{email},#{bio})
</insert>

<update id="updateAuthor">
 update Author set
  username = #{username},
  password = #{password},
  email = #{email},
  bio = #{bio}
 where id = #{id}
</update>

<delete id="deleteAuthor">
 delete from Author where id = #{id}
</delete>

f your database supports auto-generated key fields (e.g. Mysql and SQL Server),上面的插入语句可以写成:

<insert id="insertAuthor" useGeneratedKeys="true"
  keyProperty="id">
 insert into Author (username,password,email,bio)
 values (#{username},#{password},#{email},#{bio})
</insert>

如果你的数据库还支持多条记录插入,可以使用下面这个语句:

<insert id="insertAuthor" useGeneratedKeys="true"
  keyProperty="id">
 insert into Author (username, password, email, bio) values
 <foreach item="item" collection="list" separator=",">
  (#{item.username}, #{item.password}, #{item.email}, #{item.bio})
 </foreach>
</insert>

sql

这个element可以定义一些sql代码的碎片,然后在多个语句中使用,降低耦合。比如:

<sql id="userColumns"> ${alias}.id,${alias}.username,${alias}.password </sql>

然后在下面的语句中使用:

<select id="selectUsers" resultType="map">
 select
  <include refid="userColumns"><property name="alias" value="t1"/></include>,
  <include refid="userColumns"><property name="alias" value="t2"/></include>
 from some_table t1
  cross join some_table t2
</select>

Result Maps

官网给了个最最复杂的例子

大体意思呢就是一个博客系统有一个作者,很多博文,博文中有一个作者,很多评论,很多标签(包括了一对多,一对一)

<!-- Very Complex Statement -->
<select id="selectBlogDetails" resultMap="detailedBlogResultMap">
 select
    B.id as blog_id,
    B.title as blog_title,
    B.author_id as blog_author_id,
    A.id as author_id,
    A.username as author_username,
    A.password as author_password,
    A.email as author_email,
    A.bio as author_bio,
    A.favourite_section as author_favourite_section,
    P.id as post_id,
    P.blog_id as post_blog_id,
    P.author_id as post_author_id,
    P.created_on as post_created_on,
    P.section as post_section,
    P.subject as post_subject,
    P.draft as draft,
    P.body as post_body,
    C.id as comment_id,
    C.post_id as comment_post_id,
    C.name as comment_name,
    C.comment as comment_text,
    T.id as tag_id,
    T.name as tag_name
 from Blog B
    left outer join Author A on B.author_id = A.id
    left outer join Post P on B.id = P.blog_id
    left outer join Comment C on P.id = C.post_id
    left outer join Post_Tag PT on PT.post_id = P.id
    left outer join Tag T on PT.tag_id = T.id
 where B.id = #{id}
</select>

<!-- Very Complex Result Map -->
<resultMap id="detailedBlogResultMap" type="Blog">
 <constructor>
  <idArg column="blog_id" javaType="int"/>
 </constructor>
 <result property="title" column="blog_title"/>
 <association property="author" javaType="Author">
  <id property="id" column="author_id"/>
  <result property="username" column="author_username"/>
  <result property="password" column="author_password"/>
  <result property="email" column="author_email"/>
  <result property="bio" column="author_bio"/>
  <result property="favouriteSection" column="author_favourite_section"/>
 </association>
 <collection property="posts" ofType="Post">
  <id property="id" column="post_id"/>
  <result property="subject" column="post_subject"/>
  <association property="author" javaType="Author"/>
  <collection property="comments" ofType="Comment">
   <id property="id" column="comment_id"/>
  </collection>
  <collection property="tags" ofType="Tag" >
   <id property="id" column="tag_id"/>
  </collection>
  <discriminator javaType="int" column="draft">
   <case value="1" resultType="DraftPost"/>
  </discriminator>
 </collection>
</resultMap>

以上是“mybatis映射XML文件的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: mybatis映射XML文件的示例分析

本文链接: https://www.lsjlt.com/news/57176.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mybatis映射XML文件的示例分析
    这篇文章主要介绍mybatis映射XML文件的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mybatis映射XML文件一个简单的映射文件:<xml vers...
    99+
    2022-10-18
  • Java Mybatis框架Dao层的实现与映射文件以及核心配置文件的示例分析
    Java Mybatis框架Dao层的实现与映射文件以及核心配置文件的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Mybatis的Dao层实现传统开发...
    99+
    2023-06-25
  • MyBatis中XML映射文件中常见的标签介绍
    本篇内容介绍了“MyBatis中XML映射文件中常见的标签介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!SQL 映射文件只有很少的几个顶...
    99+
    2023-06-20
  • mybatis框架的xml映射文件常用查询指南
    使用mybatis框架时,那必然会有对数据库的查询语句的编写,所以这篇文章希望可以帮助到你。 什么是Mybatis框架? MyBatis 是一款优秀的持久层框架,它支持定制化 SQ...
    99+
    2022-11-12
  • MyBatis中XML 映射文件中常见的标签说明
    SQL 映射文件只有很少的几个顶级元素(按照应被定义的顺序列出): cache – 对给定命名空间的缓存配置。 cache-ref – 对其他命名空间缓存配置的引用...
    99+
    2022-11-12
  • MyBatis Xml映射文件之字符串替换方式
    目录MyBatis Xml映射文件字符串替换字符串替换举个例子Mybatis中字符串替换问题MyBatis Xml映射文件字符串替换 字符串替换 默认情况下,使用 #{} 格式的语法...
    99+
    2022-11-12
  • 怎么在mybatis框架中查询xml映射文件
    本篇文章为大家展示了怎么在mybatis框架中查询xml映射文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是Mybatis框架?MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、...
    99+
    2023-06-14
  • Mybatis映射文件规则实例详解
    目录1.ORM概念2.映射文件命名规则3.Mybatis的两个一致4.总结创建mybatis的步骤补充:MyBatis_自定义结果映射规则总结在说明映射文件规则之前,先来回顾一下OR...
    99+
    2022-11-13
  • LINQ to SQL映射列的示例分析
    小编给大家分享一下LINQ to SQL映射列的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!LINQ to SQL映射表在 LINQ to SQL 中,...
    99+
    2023-06-17
  • Linux下端口映射的示例分析
    小编给大家分享一下Linux下端口映射的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!端口映射器可实现端口映射功能,一个主要用途就是可以在局域网的网关上运行本程序,将网关服务器的某个端口映射为局域网中某台机器的某个...
    99+
    2023-06-27
  • Mybatis映射文件根标签与子标签示例讲解
    目录一、Mybatis映射文件1、映射文件根标签2、映射文件子标签3、示例代码一、Mybatis映射文件 1、映射文件根标签 mapping标签: 该标签中的namespace要求与...
    99+
    2023-01-10
    Mybatis映射文件 Mybatis映射文件标签 Mybatis映射文件根标签 Mybatis映射文件子标签
  • MyBatis中映射文件的使用案例代码
    目录MyBatis中映射文件的使用1、配置核心文件2、MyBatis的增删改查3、MyBatis获取参数值的两种方式Mapper 就是“映射”的意思,Mapp...
    99+
    2023-02-06
    MyBatis映射文件的使用 MyBatis映射文件
  • MyBatis中映射文件的使用
    MyBatis中映射文件的使用 1、配置核心文件 ①引入映射文件 ​ 首先我们得在核心配置文件中配置mappers,引入映射文件所在的包 这里必须满足两个条件: 接口和映射文件所在的包必须一致接口的名字和映射文件的名字必须一致...
    99+
    2023-08-18
    mybatis mysql java
  • LINQ to SQL映射关系的示例分析
    这篇文章主要介绍LINQ to SQL映射关系的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!LINQ to SQL映射关系在 LINQ to SQL 中,数据库关联(如外键到主键关系)是通过应用 Assoc...
    99+
    2023-06-17
  • mybatis项目配置文件的示例分析
    这篇文章给大家分享的是有关mybatis项目配置文件的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mybatis项目配置首先这事一个简单的mybatis项目配置文件:&...
    99+
    2022-10-18
  • MyBatis Xml映射文件中的字符串替换方式是什么
    这篇文章将为大家详细讲解有关MyBatis Xml映射文件中的字符串替换方式是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。MyBatis Xml映射文件字符串替换字符串替换默...
    99+
    2023-06-21
  • Mybatis分页插件的示例分析
    这篇文章主要介绍Mybatis分页插件的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Mybatis分页插件的实例详解1.前言:我们知道,在MySQL中,分页的sql是使用l...
    99+
    2022-10-18
  • mybatis映射文件mapper.xml的具体写法
    Mapper映射文件是一个xml格式文件,必须遵循相应的dtd文件规范 在学习mybatis的时候我们通常会在映射文件这样写: <?xml version="1.0...
    99+
    2022-11-12
  • MyBatis的核心配置文件以及映射文件
    目录二、Mybatis映射文件三、将映射文件配置到mybatis核心配置文件中一、核心配置文件 Mybatis核心配置文件在resources资源目录下(如下图),其中主要核心是连接...
    99+
    2023-05-19
    MyBatis 核心配置 MyBatis 映射
  • mybatis中映射文件include标签的应用
    目录mybatis映射文件include标签应用1.引用同一个xml中的sql片段2.引用公用的sql片段3.对于多个xml文件需要同时引用一段相同的mybatis sql xml ...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作