关于MyBatis的小结(初级阶段)

最近在使用数据库调用的相关代码的时候,虽然会用,但是感觉有些东西老是要忘记,趁着周用空,重新回顾了一下MyBatis相关知识点,这里做一下小结,方便自己回顾

       初级阶段,就是关于MyBatis的简单使用。其实一般掌握初级阶段的使用,对于一些普通的项目而言,基本来说就够了。

下面将由这几部分切入话题。1.Mybatis的简单介绍 2.相关的配置文件(这里主要讲映射)3.Mapper映射文件各个元素的解说 4.简单的调用例子

1.Mybatis 的简单介绍

      简单来讲,由于使用原始JDBC连接数据库的时候,程序员需要自己写相关的连接代码,以及频繁的开启/关闭数据库的连接所造成的数据库性能的下降。 于是出现了Mybatis——让程序员更加专注于SQL语句而无需关心其他的实现。 理解层面,你可以把原始的JDBC理解为你自己去菜市场买菜然后回家自己做了一份酸菜鱼。而Mybatis的话,你理解为你在外卖平台(Mybatis平台)上叫了一份酸菜鱼(专注于自己想要吃啥)。

2.相关的配置文件

       配置文件的作用是什么?其实就是通过配置文件实现你在原始JDBC中的相关操作,例如连接数据库,关闭数据库,配置数据库相关登录信息等。还有另一个就是将实体对象POJO和数据库中对应的对象联系起来,于是出现了下面的文件

      2.1.数据库配置文件:主要配置数据库连接的相关参数以及绑定Mapper映射文件。

关于MyBatis的小结(初级阶段)

      2.2.Mapper映射文件(这个是Maybatis精神所在)

关于MyBatis的小结(初级阶段)

3.Mapper映射文件各个元素的解说

      其实常用的也就那么几个

     3.1.namespace  和  id  这两个和起来其实就是唯一识别你通过DAO层或者Mapper代理调用的时候,是调用了哪一些语句。例如  namespace等于com.itheima.mybatis.mapper.UserMapper , id 等于findUserById  两个结合起来的代表你调用了  SELECT   * FROM USER WHERE id =#{id}   这条语句

   3.2.  <insert>  ,< select>,<delete>,<update>  这几个标签的话,你对应数据库的增,查,删,更就可以了

   3.3. 关于参数的  parameterType 代表调用是传入来的参数对象类型,resultType代表执行结果返回的参数对象类型,#{ } 代表了一个占位符,相当SQL语句中的  ?  。  ${ }表示拼接符号,常见于模糊查询,例如;  select * from xx where name like '%${name}%' 。resultMap代表对结果的二次映射,也就是将查询到的结果映射到新的实体对象上。

关于MyBatis的小结(初级阶段)

   3.4.关于动态查询相关:  <where>   <if>  <test>  <forEach>具体可以见下面

关于MyBatis的小结(初级阶段)

关于MyBatis的小结(初级阶段)

 4.简单的调用例子

4.1. 普通的DAO调用

List<User> list = sqlSession.selectOne("test.findUsersByName", name);

这里的"test.findUsersByName“就是  namespace+id 而,name就是传入的参数

4.2. Mapper代理映射

  Mapper代理映射有几点前提要求

4.2.1.需要创建一个Mapper接口类,该接口类的类名和mapper映射文件的namespace值一致

4.2.2.接口类的方法名要和mapper映射文件的id值一致

4.2.3.接口类中的方法的入参要和mapper映射文件中对应的parameteType一致

4.2.4.接口类中的方法的返回参数要和mapper映射文件中对应的resultType一致

例子如下,其中UserMapper.class 表示Mapper接口类

关于MyBatis的小结(初级阶段)