Mybatis知识点

MyBatis思维导图

1、初识框架技术

2、搭建MyBatis环境

3、掌握MyBatis的核心API

4、掌握MyBatis的核心配置文件:主要用于配置数据库连接和MyBatis运行时所需的各种特性

5、掌握SQL映射文件(或者使用自动生成SQL映射文件的插件)

6、掌握MyBatis缓存

7、Dao上级操作

8、掌握动态SQL

9、掌握MyBatis框架的优缺点和其使用场合


---------------知识点详情


1、初识框架技术

1.1什么是框架

框架(Framework)是一个提供了可重用的公共结构的半成品,它成为构建新的应用程序提供了极大的便利,更提供了可重用的设计;

1.2当前的主流框架
1.2.1 Struts2:

Struts2以Webwork设计思想为核心,吸收了Struts框架的部分优点,提供了一个更加整洁的基于MVC设计模式实现的Web应用程序框架。
            它引入了几个新的框架特性:从逻辑中分离出横切关注点的拦截器,减少或者消除配置文件,贯穿整个框架的强大表达式语言,支持可重用的标签API等。

Struts2充分利用了从其他MVC框架学到的经验和教训,使整个框架更加清晰、灵活(引入了拦截器)。

1.2.2 Hibernate:

Hibernate是一个优秀的持久化框架(ORM),负责简化将对象数据保存到数据库中,或从数据库中读取数据并封装到对象的工作。
            Hibernate通过简单配置和编码即可替代JDBC繁琐的程序代码。

1.2.3Spring:

Spring是一个开源框架。它的目标是使现有的JavaEE技术更容易使用。
            它只要作为依赖注入容器和AOP实现存在,还提供了声明式事务、对DAO层的支持等简化开发等功能。
            Spring可以很方便地与SpringMVC、Struts2、Mybatis、Hibernate等框架集成。

1.2.4Spring MVC:

是Spring框架提供的构建Web应用程序的全功能MVC模块,属于Spring Framework的后续产品。

它拥有高度的可配置性,支持多种视图技术,相当灵活。
            Spring整合Springmvc是无缝集成,是一个高性能的架构模式。

1.2.5MyBatis:

MyBatis是一个很优秀的数据持久层框架(ORM),在实体类和SQL语句之间建立映射关系,是一种半自动化的ORM实现;

MyBatis的封装性要低于Hibernate,性能优越,并且小巧;

2、搭建MyBatis环境

2.1什么是数据持久化:将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。
2.2什么是ORM:

对象关系映射(Object Relational Mapping ORM)是一种数据持久化技术。

它在对象模型和关系型数据库之间建立起对应关系,并且提供了一种机制,通过JavaBean对象去操作数据库表中的数据。

2.3搭建MyBatis环境
2.3.1、下载 jar包&部署jar包,或在pom.xml添加jar包依赖 (mybatis-3.2.2.jar)
2.3.2、编写配置文件
2.3.3、创建实体类(或者使用自动生成实体类的插件)
2.3.4、创建dao接口(或者使用自动生成dao接口的插件)
2.3.5、创建sql映射文件(或者使用自动生成sql映射文件的插件)
2.3.6、在业务逻辑层调用

3、掌握MyBatis的核心API

3.1SQLSessionFactoryBuilder:构建SQLSessionFactory
3.2SqlSessionFactory:该对象可以完成对配置文件的读取factory=new SqlSessionFactoryBuilder().build(is);
3.3SqlSession:该对象的作用是调用mapper文件进行数据库操作

4、掌握MyBatis的核心配置文件:主要用于配置数据库连接和MyBatis运行时所需的各种特性

properties
    setting:引入log4j日志配置
    typeAliases:配置类型别名
    envrionments:配置运行的环境
    transactionManager:配置事务管理(JDBC)
    dataSource:配置数据源(POOLED:mybatis自带的数据源;JNDI:基于tomcat的数据源)
    mappers:引入映射文件,告诉mybatis去哪里找到SQL映射文件。
    mapper标签:是映射文件的根元素,只有一个属性namespace–>用于区分不同的mapper,是全局唯一

5、掌握SQL映射文件(或者使用自动生成SQL映射文件的插件)

5.1select标签:表示查询语句

id属性:该命名空间下唯一标识符。
         resultType属性:表示sql语句返回值类型。

本质是相同,都是Map数据结构,但不能同时存在。

5.2resultType与resultMap

resultType:直接表示返回类型,包括基本数据类型和复杂数据类型。

resultMap:应用场景一般是:数据库字段信息与对象属性不一致或者需要做复杂的联合查询,以便自由控制映射结构。

6、掌握MyBatis缓存

一级缓存:是mybatis自带的本地缓存,作用范围为session的区域,当session flush或者close之后,该session中所有的cache就会被清空;

二级缓存:全局缓存,她超出了session范围,可以被所有的SQLSession共享,开启它只需要mybatis的核心配置文件(mybatis-config.xml)的setting中设置即可;

2.1)
          
        
      2.2)默认是未开启二级缓存,需要手动开启。另外,它的作用域是针对mapper的namespace而言的,及只有在此namespace的查询才能共享这个cache。
        
          
          
        
      2.3)在mapper文件配置支持cache后,如果需要对个别查询进行调整,可以单独设置cache
        

7、Dao上机操作

实现多参数传递:
        @Param注解

一般超过4个以上的参数,最好封装成对象入参 或者 map

insert、update、delete操作要注意什么:

7.2.1接口方法的返回值为int类型,表示执行sql语句影响的行数;
7.2.2均没有resultType属性;

事务处理:

7.3.1factory.openSession(faclse); 手动提交事务;
7.3.2session.commit(); 提交事务
7.3.3session.rollback(); 回滚事务

一对多的操作:使用association
    多对一的操作:使用collection

8、掌握动态SQL

if:利用if实现简单的条件选择;

choose(when, otherwise):相当于Java中的switch语句,通常与when和otherwise搭配使用;

where:简化SQL语句中的where的条件判断;

set:解决动态更新语句;

trim:可以灵活地除去多余的关键字;

foreach:迭代一个集合;

9、掌握MyBatis框架的优缺点和其使用场合

9.1MyBatis框架的特点:
9.1.1与jdbc相比,减少了50%以上的代码;
9.1.2Mybatis相当灵活,不会对应的应用程序或者数据库的现有设计强加任何影响,

SQL写在MXL里,从代码中彻底分离,既降低耦合度,又便于统一管理和优化

9.2Mybatis框架的缺点
9.2.1SQL语句的编写工作量比较大,对开发人员编写SQL语句的功底有一定的要求;
9.2.2SQL语句依赖于数据库,导致数据库的移植性比较差,不能随意更换数据库;
9.3框架试用场合
9.3.1MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案;
9.3.2对性能要求很高的项目,或者需求变化比较多的项目,如互联网项目,MyBatis将是不错的选择;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值