MyBatis中SQL映射文件详解

9 篇文章 0 订阅
2 篇文章 0 订阅

在这里插入图片描述
别走…………………………

常问的几个问题!

  • 什么是SQL映射文件!

    mybatis 提供的一种特定的文件,主要思想是将SQL语句中程序中分离出来
    (简单说) :Impl实现类换成了一种特定的文件 不需要写实现类,但是要在特定的文件中写上增删改查语句

  • MyBatis如何实现SQL映射文件中的条件查询

    根据该方法的参数进行条件判断,在判断这个方法的参数类型,在指定的增删改查标签中的"parameterType属性上"上填写指定类型

  • MyBatis框架的结果映射通过什么标签

    通过resultMap标签实现结果映射,主要目的:将数据库字段与javaBean的属性相对应

  • MyBatis中增删改使用什么标签

    insert delete update

在这里插入图片描述
以上就是基本的SQL映射详解,而其中也包含的其他的东西,慢慢来…………

SQL映射文件!

mapper:映射文件的根元素,其中namespace用于区分不同的mapper,而且只能有一个mapper 或者说是接口
cache:为指定命名空间配置缓存
cache-ref:引用其他命名空间中的缓存配置
resultMap:描述结果集字段和java字段属性对应
↓ 增删改查
insert
delete
update
select 

MyBatis框架的条件查询

单一查询

	单个id查询
		 public  Department selectOne(int depId);
    <select id="selectOne" resultType="cn.chy.entity.Department" parameterType="int">
         select depId,depName from department where id = #{depId}
     </select>
     
     接口方法:
		 public  Department selectByName (String name);
     安照名称 模糊查询
    <select id="selectByName" resultType="cn.chy.entity.Department" parameterType="String">
         select depId,depName from department where depName like '%'+#{depName}+'%'
     </select>

多条件查询

	接口方法
		public  Department selectByName (Department dept );
 	多条件查询
	 <select id="selectByWhere" resultType="cn.chy.entity.Department" parameterType="dept">
         select depId,depName from department where id = #{depId} and depName like '%'+#{depName}+'%'
     </select>

	接口方法
		public  Department selectByName (Map<String,Object> map);
		map.put("depId",val).....
 	多条件查询
	 <select id="selectByWhereTwo" resultType="cn.chy.entity.Department" parameterType="map">
         select depId,depName from department where id = #{depId} and depName like '%'+#{depName}+'%'
     </select>

↑就是多条件和但条件,但是参数都是与属性相关,不可分离,这样的话,我们就可以使用@Param(“自定义的名称”) // 为指定的参数取名

在这里插入图片描述
是不是憨了???? (继续)

结果映射

使用resultMap标签结果映射

	本质上目的就是将数据库字段与javabean中字段相映射
	id是引用的
  <resultMap id="mydepater" type="cn.chy.entity.Department">
        <id column="depId" property="depId"/>
        <result column="depName" property="depName"/>
  </resultMap>
  							 // 应用map
  <select id="selectAllOneTest" resultMap="mydepater">
       SELECT d.depId,depName,id,last_name lastName,gender,email FROM department d LEFT JOIN tal_employee e ON e.depId = d.depId
       where d.depId = #{depId} limit 1
  </select>
 

来了 来了 最难理解的嵌套结果,他来了

assocation 对象元素嵌套 (一对多)

  <resultMap id="mydepater" type="cn.chy.entity.Department">
        <id column="depId" property="depId"/>
        <result column="depName" property="depName"/>
        							// department对象属性  类型
        <association property="emp" ofType="cn.chy.entity.Employee">
            <id column="id" property="id"/>
            <result column="lastName" property="name"/>
            <result column="gender" property="gender"/>
            <result column="email" property="email"/>
        </association>

    </resultMap>

collection 集合元素嵌套

  <resultMap id="mydepater" type="cn.chy.entity.Department">
        <id column="depId" property="depId"/>
        <result column="depName" property="depName"/>
        <collection property="empList" ofType="cn.chy.entity.Employee">
            <id column="id" property="id"/>
            <result column="lastName" property="name"/>
            <result column="gender" property="gender"/>
            <result column="email" property="email"/>
        </collection>

    </resultMap>


	<insert id='insertOne' parameterType='cn.chy.entity.Department'>
	</insert>


	<delete id='insertOne' parameterType='cn.chy.entity.Department'>
	</delete >


	<update id='insertOne' parameterType='cn.chy.entity.Department'>
	</update >

在这里插入图片描述

这个 就是MyBatis中一些基础的详解,对于后面使用频率特别高,值得你多看(嘿嘿)

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis是一个开源的持久层框架,它可以将数据库操作与Java对象之间的映射关系进行配置,提供了一种简单且灵活的方式来访问数据库。 在MyBatis映射文件是用于定义SQL语句和结果映射的配置文件。下面是映射文件详解: 1. 命名空间(namespace):映射文件的命名空间用于对SQL语句进行分类和管理,可以通过命名空间来引用映射文件定义SQL语句。 2. 结果映射(resultMap):结果映射用于将查询结果映射Java对象上。可以通过resultMap标签定义结果映射,指定查询结果与Java对象之间的对应关系。 3. SQL语句(select、insert、update、delete):映射文件可以定义各种SQL语句,包括查询、插入、更新和删除等操作。可以通过标签(如select、insert、update、delete)来定义SQL语句,并在其编写具体的SQL语句。 4. 参数映射(parameterType):参数映射用于将Java对象作为参数传递给SQL语句。可以通过parameterType属性指定参数类型,也可以通过parameterMap标签定义参数映射。 5. 返回值映射(resultType):返回值映射用于将查询结果转换为Java对象。可以通过resultType属性指定返回值类型,也可以通过resultMap标签引用已定义的结果映射。 6. 动态SQLMyBatis支持动态SQL,可以根据条件动态生成SQL语句。可以使用if、choose、when、otherwise等标签来实现动态SQL的编写。 7. 参数传递:映射文件可以使用#{}或者${}来传递参数。#{}会将参数转义后传递给数据库,${}会直接将参数拼接到SQL语句。 8. 引用其他映射文件映射文件可以通过include标签引用其他映射文件,可以将一些通用的SQL语句定义在公共的映射文件,然后在需要的地方引用。 以上是对MyBatis映射文件详解,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值