MyBatis框架的基本知识及其配置

MyBatis

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

        ●MyBatis是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架

        ●MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录

MyBatis最强大的特性之一就是它的动态语句功能。如果您以前有使用JDBC或者类似框架的经历,您就会明白把SQL语句条件连接在一起是多么的痛苦,要确保不能忘记空格或者不要在columns列后面省略一个逗号等。动态语句能够完全解决掉这些痛苦。

        ●github

        ●https://github.com/mybatis/mybatis-3/

        ●参考

        ●mybatis – MyBatis 3 | 配置icon-default.png?t=M85Bhttp://www.mybatis.org/mybatis-3/zh/configuration.html

功能架构

MyBatis优缺点

        MyBatis优点:

        ●简单易学

        ●灵活

        ●降低sql与程序代码的耦合

        ●提供映射标签,支持对象与数据库的orm字段关系映射

        ●提供对象关系映射标签,支持对象关系组建维护

        ●提供xml标签,支持编写动态sql

MyBatis缺点:

        ●编写SQL语句时工作量很大,尤其是字段多、关联表多时,更是如此

        ●SQL语句依赖于数据库,导致数据库移植性较差

        ●二级缓存机制不佳

MyBatis的执行流程

 

MyBatis的Maven依赖库

        MyBatis的Maven依赖库

        <dependency>

                <groupId>org.mybatis</groupId>

                <artifactId>mybatis</artifactId>

                <version>3.4.1</version>

        </dependency>

MyBatis核心配置文件

        MyBatis核心配置文件是一个xml文件

        ●配置环境(开发、测试、生产)

        ●配置数据库连接信息

        ●配置连接池

        ●设置MyBatis运行参数

        ●配置映射器(mappers)

核心配置文件基础配置

简单配置

标签说明

        各标签说明如下

        ●默认的环境 ID(比如:default=”development”)

        ●每个 environment 元素定义的环境 ID(比如:id=”development”)

        ●事务管理器的配置(比如:type=”JDBC|MANAGED”)

        ●数据源的配置(比如:type=” [UNPOOLED|POOLED|JNDI]”)

Mapper映射文件

        Mapper映射文件

        ●MyBatis 的真正强大在于它的映射语句,也是它的魔力所在

        ●所有的SQL语句都要定义要Mapper文件中

        ●常用标签

        ●resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象

        ●insert – 映射插入语句

        ●update – 映射更新语句

        ●delete – 映射删除语句

        ●select – 映射查询语句

Mapper文件说明

        ●Mapper文件的定义和根节点

        ●Mapper必须在核心配置文件中注册

        <insert>标签

        ●用于执行insert into

        ●属性说明

        ●id 引用的名称

        ●parameterType

                将要传入语句的参数的完全限定类名或别名,可选,可以是Map、 Pojo或普通类型

        ●useGeneratedKeys

                是否有自动增长列

        ●keyProperty

       自动增长列的字段名

说明

        ●从Map或Pojo中取出key或property值的语法

        ●#{key|property}

        ●如果要使用Oracle的序列为字段赋值,使用selectKey子标签

        ●resultType 返回的类型

        ●keyProperty 将selectKey的返回值填充到指定的字段

        ●order 执行的顺序,可选值为before和after

<update><delete>

        ●<update>

update语句

<delete>

●delete语句

 

resultMap

如果Pojo的属性名和表中的字段名不一致,需要使用 resultMap标签映射属性名和字段名 

 

MyBatis API

        SqlSession

        ●会话,代表与数据库的一次会话

        ●SqlSessionFactory

        ●用于创建SqlSession的工厂

        ●SqlSessionFactoryBuilder

        ●创建创建SqlSessionFactory的构建器

SqlSession的常用方法

        ●int insert(String statement, Object parameter);

        ●int update(String statement, Object parameter);

        ●int delete(String statement, Object parameter);

        ●<E> List<E> selectList(String statement, Object parameter);

        ●<T> T selectOne(String statement, Object parameter);

        ●void commit();

        ●void rollback();

        ●void close();

MyBatis以接口方式编程

        MyBatis可以以接口方式编程,只需要定义接口无需要实现,同时,也不再使用SqlSession来执行sql语句。

        ●定义DAO

        ●将Mapper中每个sql的id定义为DAO中对应的方法

获取接口并执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值