欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Mybatis基础

程序员文章站 2022-05-04 15:33:05
1 Mybatis简介 一个基于Java的持久层框架,优势在于灵活,几乎可以代替JDBC,同时提供了接口编程。目前Mybatis的数据访问层DAO是不需要实现类的,只需要一个接口和XML(或者注解)。Mybatis提供自动映射、动态SQL、级联、缓存、注解、代码和SQL分离等特性,使用方便,同时也可 ......

1   Mybatis简介

        一个基于Java的持久层框架,优势在于灵活,几乎可以代替JDBC,同时提供了接口编程。目前Mybatis的数据访问层DAO是不需要实现类的,只需要一个接口和XML(或者注解)。Mybatis提供自动映射、动态SQL、级联、缓存、注解、代码和SQL分离等特性,使用方便,同时也可以对SQL进行优化。

2   优势

        封装少、映射多样化、支持存储过程、可以进行SQL优化等。

3   核心组件

  ·SqlSessionFactoryBuilder(构造器):根据配置或者代码来生成SqlSessionFactory,采用分步构建的Builder模式;

  ·SqlSessionFactory(工厂接口):依靠它来生成SqlSession,使用工产模式;

  ·SqlSession(会话):一个既可以发送SQL执行返回结果,也可以获取Mapper的接口。

  ·SQL Mapper(映射器):由一个Java接口和XML文件(或注解)构成,需要给出对应的SQL和映射规则。它负责发送SQL去执行,并返回结果。

3.1  SqlSessionFactoryBuilder(构造器)

   使用Mybatis首先是使用配置或者代码去生成SqlSessionFactory,而Mybatis提供了构造器SqlSessionFactoryBuilder。它提供了一个类org.apache.ibatis.session.Configuration作为引导,采用的是Builder模式。具体的分步则是在Configuration类里面完成的,不需要另外编写。

3.2  SqlSessionFactory(工厂接口)

  在Mybatis中既可以通过配置的XML文件的形式生成SqlSessionFactory,也可以通过Java代码的形式去生成。为简便开发,建议使用XML的形式。当配置了XML或者提供代码之后,Mybatis会读取配置文件,通过Configuration类对象构建整个Mybatis的上下文。

  每个基于Mybatis的应用都是以一个SqlSessionFactory的实例为中心的,而SqlSessionFactory唯一的作用就是生成Mybatis的核心接口对象SqlSession。下面只讨论使用配置文件生成SqlSessionFactory的方法。

3.2.1  使用XML构建SqlSessionFactory

  在Mybatis中XML分为两类:一类是基础配置文件,通常只有一个,主要是配置一些最基本的上下文参数和运行环境;另一类是映射文件,它可以配置映射关系、SQL、参数等信息。

  先看简易的配置文件(mybatis-config.xml):

 

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <! DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
 3 <configuration>
 4     <typeAliases><!-- 别名 -->
 5         <typeAlias  alias="role" type="com.learn.mybatis.pojo.Role"/>
 6     </typeAliases>
 7     <!-- 数据库环境 -->
 8     <environments default="development">
 9         <environment id="development">
10             <transactionManager type="JDBC"/>
11             <dataSource type="POOLED">
12                 <property name="driver" value="com.mysql.jdbc.Driver"/>
13                 <property name="url" value="jdbc:mysql://localhost:3306/ssm"/>
14                 <property name="username" value="root"/>
15                 <property name="password" value="root"/>
16             </dataSource>
17         </environment>
18     </environments>
19     <!-- 映射文件 -->
20     <mappers>
21         <mapper resource="com/learn/mybatis/mapper/RoleMapper.xml"/>
22     </mappers>
23 </configuration>

 

  有了基础配置文件,就可以通过一段很简短的代码来生成SqlSessionFactory了,代码如下:

1 SqlSessionFactory sqlSessionFactory = null;
2 String resource = "mybatis-config.xml";
3 InputStream inputStream;
4 try {
5      inputStream = Resource.getResourceAsStream(resource);
6      sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream)  ;
7 } catch(IOException e) {
8      e.printStackTrace();
9 }

  首先读取Mybatis-config.xml,然后通过SqlSessionFactoryBuilder的Build方法去创建SqlSessionFactory。