MyBatis框架之基本知识介绍

MyBatis框架之基本知识介绍

前身背景:

         前身是iBatis,为Apache的一个开源项目。2010年迁移到了Google Code,改名为MyBatis.2013年迁移到Github。

MyBatis框架以及ORM

         MyBatis是一个开源的数据持久层框架,内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询、存储过程和高级映射。作为持久层框架,主要思想是将程序中的大量的SQL语句分离出来,配置在相应的配置文件中,这样可以在不修改代码的情况下,直接在配置文件中的修改SQL。

         ORM(Object/Relational Mapping)对象关系映射。是一种数据持久化的技术。在对象模型和关系型数据库之间建立关系,并且提供了一种机制,通过JavaBean对象去操作数据库表中的数据。MyBatis通过简单的XML或者注解进行配置和原始映射,将实体类和SQL语句之间建立映射关系,是一种半自动化的ORM实现。

MyBatis环境搭建:

         1.下载jar包,

官方网站:.(目前官网在国内受限制,若可以访问到,所有下载链接全部引导至github上-----推荐下载mybatis-3.2.2.zip和mybatis-3-mybatis-3.2.2.zip)

github网址:https://github.com/mybatis/mybatis-3/releases.

         2.部署jar包,

将下载的jar包以及需要的jar包(如:数据库驱动jar文件或log4j负责日志数据jar文件)部署至项目的lib目录下。

         3.创建mybatis核心配置文件-configuration.xml

      

MyBatis框架之基本知识介绍

  configuration:配置文件的根节点。

  Properties:从外部引入指定的properties属性文件,一般为数据库连接的配置信息。

  Settings:设置MyBatis运行中的一些行为,如果,此次设置MyBatis的log日志文件实现为LOG4J,既使用log4j实现日志功能。

  Environments表示配置多套运行环境,映射到不同的数据库,该元素下可以配置多个environment子元素节点,但是必须通过default指定一个默认的运行环境。

         

MyBatis框架之基本知识介绍

  Mappers:作用是告诉MyBatis去哪里找SQL映射文件。

  Mapper:具体指定SQL映射文件的路径,resource属性的值表示映射文件的路径。

------注意:MyBatis中核心配置文件的元素节点是有一定顺序的,若不按顺序排位,那么XML文件会报错。

4.创建持久化类(POJO)和SQL映射文件。

  因为MyBatis是pojo(实体类)与是SQL语句之间的映射机制,一般情况下,保证pojo类的属性和表中的字段名一致。

SQL映射文件元素节点

         Mapper:映射文件的根元素节点,只有一个属性namespace:

                   Namespace:用于区分不同的mapper.全局唯一。(一般为接口的完全限定名)

         Select:查询语句,常用属性如下(特别属性后面介绍---)

                   Id:该命名空间下的唯一标识符。

                   resultType:表示SQL语句的返回值类型。

5.编写测试类

         (1)读取全局配置文件(xxx.xml”)

    Reader reader = Resources.getResourceAsReader(“xxx.xml”);

         (2)创建sqlsessionfactory,完成配置文件的读取。

    SqlSessionFactory    sessionFactory = new SqlSessionFactoryBuilder().build(reader);

         (3)创建sqlSession对象,通过sqlSession调用相应的方法进行操作。

    sessionFactory.openSession();//打开sqlSession对象

    Sqlsession.getMapper(接口名.class).执行的方法(参数);

         (4)关闭sqlSession对象。

    sessionFactory.close();//关闭sqlSession对象

 

MyBatis优缺点以及其适用场合

优点:

    1.与JDBC相比,代码量减少了50%以上。

    2.最简单的持久层框架,小巧简单易学

    3.SQL语句写在XML文件,从程序代码中彻底分离,便于统一管理和优化,并可重用。

    4.提供XML标签,支持编写动态SQL语句。

    5.提供映射文件,支持对象与数据库的ORM字段关系映射。

缺点:

    1.SQL编写工作量较大,对开发人员编写SQL语句的功底有一定的要求。

    2.SQL依赖于数据库,数据库的移植性差,不能随意更换数据库。

适应场合:

    专注于SQL本身,一个灵活的DAO层的解决方案,对性能要求较高,或者需求变化较多的项目。

 

MyBatis的基本要素-----核心对象。

一、核心接口和类。

  (1)每个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心。

  (2)首先获取SqlSessionFactoryBuilder对象,根据xml文件或Configuration类的实例构建该对象。

  (3)获取SqlSessionFactory对象,通过SqlSessionFactoryBuilder对象获取。

  (4)通过SqlSessionFactory获取SqlSession实例,此实例完全包含以数据库为背景的所有执行SQL操作方法。

    直接执行已经映射的SQL语句。

  1.SqlSessionFactoryBuilder对象

作用:负责构建SqlSessionFactory,并且提供了多个build()方法的重载

    (1).build(Reader reader,String environment,Properties properties)//字节流

    (1).build(InputStream inputStream,String environment,Properties properties)//字符流

    (1).build(Configuration config)//类

生命周期和作用域:最大的特点为用过即丢,一旦创建了SqlSessionFactory对象之后,这个类就不再需要了。

最佳范围存在于方法体内,也就是个局部变量而已。

·  2.SqlSessionFactory对象

作用:可以通过此对象的OpenSession()方法获得SqlSession()实例。

生命周期和作用域:对象一旦创建,在整个应用运行过程中始终存在。最佳的作用域范围是Application,随着应用的生命周期一同存在。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.创建工具类util,在静态块中创建SqlSessionFactory对象。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywpjf.html