MyBatis框架的详解

Posted cgntiger

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis框架的详解相关的知识,希望对你有一定的参考价值。

一、MyBatis的介绍

  1. 在使用的时候,需要配置文件的方式告知框架需要的信息,多数会使用XML文件作为框架的配置文件。
  2. 框架都是由第三方提供的,提供的都是jar包。因此,使用框架前,必须将框架涉及的jar包导入项目中。
  3. MyBatis框架是:ORM框架,用于操作数据库,底层是对jdbc进行了封装。
  4. MyBatis 的前身是 iBatis, 是 Apache 下的一个开源项目,现在被迁移到了 GitHub 上.
  5. 写配置文件及入门MyBatis的中文网址:http://www.mybatis.org/mybatis-3/zh/getting-started.html
  6. 使用到的jar包,百度网盘链接:
  7. 其他框架:
    • Spring : 是一个容器;
    • SpringMVC:分层框架
    • Struts2:功能类似于SpringMVC
    • Hibernate : 功能类似于MyBatis


二、配置MyBatis的基本步骤

第一步:核心配置文件

  1. 核心配置文件,是一个xml文件,命名无要求,位置无要求。不过一般叫做mybatis.xml,放在src目录下。
  2. 使用官方提供的dtd约束,写核心配置文件
  3. 以下是官方提供的dtd约束,需要联网使用

    <!DOCTYPE configuration
       PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
       "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>

  4. 核心配置文件的书写在这里就不再多说了,具体的可以去参考MyBatis官网
  5. 关联映射文件(第二步中有介绍到):

<!-- 扫描mapper文件 –>

<mappers> 

   <mapper resource="com/bjsxt/mapper/UserMapper.xml" />

</mappers>


第二步:Mapper映射文件

  1. 在MyBatis中,推荐使用 mapper 作为包名, 我们只需要写一个映射配置文件即可。UserMapper.xml, 用于定义要执行的 SQL 语句, 同时设定返回结果的类型等等
  2. 需要注意的属性:
    • namespace: 命名空间, 可以随意定义, 一般情况下要写全限定路径  MyBatis管理SQL语句是通过namespace+id来定位的
    • resultType: 用于设定返回结果的类型(全限定路径)     如果返回结果是集合, 要写集合泛型的类型


第三步:编写测试代码

1、加载MyBatis核心配置文件     【InputStream is = Resources.getResourceAsStream("mybatis.xml"); 】

2、构建SqlSessionFactory工厂对象   【SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); 】

3、通过工厂打开SqlSession      【SqlSession session = factory.openSession(); 】

4、通过session执行查询操作     【 List<User> list = session.selectList("com.bjsxt.mapper.UserMapper.selAll");System.out.println(list); 】

5、关闭资源                           【session.close(); 】

三、使用MyBatis

  1. MyBatis的常用三个查询方法:
  • selectList:用于查询多条数据的情况, 返回值是一个 list 集合. 如果没有查到任 何数据, 返回没有元素的集合(空集合, 不是 null)

    例子:【List<User> list = session.selectList("com.bjsxt.mapper.UserMapper.selAll");System.out.println(list);  for (User user : list)   

              System.out.println(user);  】

  • selectOne:用于查询单条数据的情况, 返回值是一个对象. 如果没有查到任何数据, 返回 null

   例子:【User user = session.selectOne("com.bjsxt.mapper.UserMapper.selOne");  System.out.println(user)】 

  • selectMap:用于查询多条数据的情况, 多条数据要形成一个 Map 集合. 需要指 定哪个属性作为 key. 如果查不到, 返回一个空 map 集合(不是 null)

     例子:【 Map<Integer, User> map = session.selectMap("com.bjsxt.mapper.UserMapper.selAll", "id");  System.out.println(map); 

               Set<Integer> set = map.keySet();  for (Integer k : set)    System.out.println(map.get(k));  】

   2.配置信息实现软编程(获取 properties 文件中数据时, 要通过$的方式获取)

<!-- properties加载外部文件 –>

<properties resource="db.properties" />

   3.<typeAliases>标签,起别名

<!-- typeAliases给类型起别名 –>

<typeAliases> 

<!-- 给User类起别名为u –> 

<typeAlias type="com.bjsxt.pojo.User" alias="u" />

</typeAliases>


 <package>给整个包下的所有类定义别名为类名

<typeAliases> 

<!-- 给包下的所有类定义别名为类名 –>

<package name="com.bjsxt.pojo" />

</typeAliases>

技术图片

以上是关于MyBatis框架的详解的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis 框架理解与快速入门详解

SSM框架MyBatis核心配置文件详解

详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(上)

MyBatis入门详解——附代码

Java框架-MyBatis三剑客之MyBatis Generator(mybatis-generator MBG插件)详解

深入详解Mybatis的架构原理与6大核心流程