Mybatis学习(二)

上一篇博客中已经总结了Mybatis的基本的总的配置文件和映射文件的配置,已经实现了最基本的增删改查的功能。这篇博客就来总结以下在使用Mybatis框架的过程中常用的配置参数。

(1)配置结果映射集

Mybatis是是持久层数据库,它最终是要去操作数据库。所有当我们在配置文件中写了操作数据库的语句,当它执行的时候必定会有一个返回结果,增,删,改的返回值是一个整形,我们可以省略。当我们查询数据库的时候,返回的是一个实列对象或者是类的一些属性,所以我们必须要接受这个值然后返回给方法调用者。这时候就要我们进行映射集的配置了。

这是我们之前的写法,因为我们要查的是学生,返回的时学生对象,所以我们的:resultType="com.pojo.StudentPojo"就指明我们返回的类型是学生对象。但是,如果当我们的sql语句和pojo学生类的属性不对应的时候,我们就要配置一个映射关系。

<select id="SelectALlStudent" resultType="com.pojo.StudentPojo">
      select sid,name,chinese,math,rank from student
   </select>

 当我将代码中的sid改为id的时候,就会报下面的一个错误。

 Mapped Statements collection does not contain value for com.dao.StudentDao.SelectAllStudent

我们进行如下配置:

<!--type是我们指定的实体类,id是我们给这个结果集的一个名字-->
<resultMap type="com.pojo.StudentPojo" id="stuMapper">
	   <!--id属性映射主键字段-->
	   <id column="sid" property="sid"/>
	   <!--result属性映射非主键关系-->
	   <result column="name" property="NAME"/>
	   <result column="math" property="math"/>
	   <result column="chinese" property="chinese"/>
	   <result column="rank" property="rank"/> 
</resultMap>

然后在查询语句中做如下配置

   <select id="SelectStudentByName" resultMap="stuMapper" parameterType="String">
      select id,name,chinese,math,rank from student where name=#{value}
   </select>

代码中我们的返回结果已经变成了我们配的写的那个结果集映射,意思就是当我们sql语句将这个学生查出来之后按照配的映射关系进行填充。然后返回给调用者。

(二)多主键查询

<!--多主键查询,当我们查询操作的时候,可以传多个参数进来,比如传两个学生学号,就会返回两个学生对象-->
   <select id="MultiKeyQuery" parameterType="list" resultMap="stuMapper">
      select sid,name,chinese,math from student
      <where>
         <choose>
            <when test="list==null or list.size()==0">
               1=2
            </when>
            <otherwise>
               sid in 
                 <foreach collection="list" open="(" close=")" separator="," item="i">
                    #{i}
                 </foreach>
            </otherwise>
         </choose>
      </where>
   </select>

这个我没传参数运行之后打印的sql语句 

这个我传了两个学号之后打印的sql语句

传参时是将参数放在一个数组中

         <choose>
            <when test="list==null or list.size()==0">
               1=2
            </when>
            <otherwise>
               sid in 
                 <foreach 

                    collection="list" open="(" close=")" separator="," item="i">
                    #{i}
                 </foreach>
            </otherwise>
         </choose>
然后这段代码是进行判断,如果集合为空,那么1=2恒不成立,也就是后面的条件不存在,所以没有数据。当我传了两个参数时,foreach循环遍历集合,将参数取出来,然后进行查询。

(3)多条件查询

<!--多条件查询-->
   <select id="MultiQuery" resultMap="stuMapper">
      select sid,name,chinese,chinese,math,rank from student
      <where>
         <if test="sid!=null">
            sid=#{sid}
         </if>
         <if test="NAME!=null">
            and name like concat(#{name}`%`)
         </if>
      </where>
   </select>

 

MyBatis是一个开源的持久层框架,它可以帮助开发人员简化数据库操作。如果你想学习MyBatis,下面是一个学习路线的建议: 1. 数据库基础:在学习MyBatis之前,建议先掌握数据库的基本概念和SQL语言。了解关系型数据库的原理、表设计和常用的SQL语句会对学习MyBatis有很大帮助。 2. MyBatis入门:开始学习MyBatis之前,可以先了解一下MyBatis的基本概念和核心特性。阅读官方文档或者参考一些入门教程可以帮助你快速上手。 3. 配置文件:学习如何配置MyBatis的核心配置文件,包括数据源、映射文件、类型处理器等。了解不同配置项的作用和常用配置方式。 4. 映射文件:深入学习MyBatis的映射文件,了解如何使用SQL语句进行数据库操作,并学习动态SQL的使用技巧。掌握映射文件中各种标签的含义和用法。 5. 注解方式:学习使用注解方式来配置和使用MyBatis。了解常用的注解和使用方式,与映射文件相比,注解方式更加简洁和灵活。 6. 缓存机制:了解MyBatis的缓存机制,包括一级缓存和级缓存的原理和使用方式。了解如何配置和优化缓存,提高系统的性能。 7. 整合框架:学习如何将MyBatis与其他框架进行整合,如Spring和Spring Boot。掌握整合的配置方式和常见问题的解决方法。 8. 实践项目:通过实践项目来巩固所学的知识,可以自己动手搭建一个简单的Web应用或者实现一些常见的数据库操作。在实践中不断提升自己的技能。 以上是一个大致的学习路线,你可以根据自己的实际情况和学习进度进行调整。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值