Mybatis与Spring整合后的配置与使用

Mybatis与Spring整合后

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

通过Spring将mybatis整合后大大减少了我们的工作量,我们看一看其中mybatis的配置文件在哪里

1.mybatis的配置文件

众所周知mybatis是针对数据库进行封装的持久层框架,所对应操作的层面也就是我们的Dao层,所以我们在Spring的配置文件中也是在dao.xml中进行mybatis的配置.



































这是mybatis的设置,我们针对其中的连接池属性, 也就是我们的数据库属性,出于我们平时管理数据库的需求,我们将其中数据库的属性单拿出来形成一个JDBC.properties文件进行存放,在spring的xml文件中通过EL表达式对其中的数值进行获取.

同样我们还需要设置mybatis的全局环境, 需要另外一个文件 mybatis-config.xml













在这里面我们队全局属性进行了配置, 开启相关的服务, 并且配置我们自己所编写的拦截器.

2.mybatis的使用

通过上方设置好的配置文件,我们就可以对myabtis进行使用

2.1mybatis的注解

@param:通过@Param("id")进行参数制定 可以在mapper.xml的映射文件中使用正确的参数.

2.2mybatis的xml文件.

在mybatis中最重要的就是我们所要配置的映射文件mapper.xml.

看一看xml文件中的标签和其中都有什么属性:

  • namespace:用于指定类路径
  • select:用于编写select的SQl语句
  • update:用于编写update的sql语句
  • delete:用于编写delete的sql语句
  • insert:用于编写insert的sql语句

返回结果:

  • resultType:
    我们通过resultType可以指定基本数据类型或者简单的bean作为返回值进行设定,简单的bean是指在bean内部不包含其他bean的情况.

  • resultMap:
    当resultType不能满足需求的时候,我们需要自己指定自己需要的类型并且告诉Mybatis让其解析.

要在返回结果中使用resultMap,我们需要先定义一个自己的resultMap其结构如下:

//id为我们在resultmap中所要填写的名称 type为我们所指定的复杂bean
//property为我们bean内的属性名称, column为数据库中列的名称 id是设为主键,提高查找效率


//association为联合,我们要为主Bean中的子Bean的属性进行赋值,需要通过这个标签进行指定, javaType为子bean的属性名称
子bean的属性名称以及bean的属性名





resultmap中常用的有两个标签:
association与collection:

  • association通常用在单体的bean当中.

  • collection通常用在ListBean数组中.

2.3mybatis拦截器的介绍与使用

我们平时要通过前端页面传回来的一些设定进行查询,我们如果针对每一个需求去进行模糊查询以及属性修改, 实在是太麻烦了,于是我们的Mybatis拦截器就上场了,我们通过Mybatis拦截器可以将还未执行的Sql语句进行拦截,对其进行过滤,符合需求的Sql语句对其进行修改,达到分页或者条件查询的目的.

我们要实现自己的拦截器接口就需要继承interceptor接口并且实现

interceptor接口中有三个方法:

intercept方法: 我们拦截后的正确结果就在这个方法里面, 我们通过在这个方法对sql语句进行改造

plugin方法:通过动态代理的方式返回正确的sql对象交与intercept

setProperties方法: 设置属性值 让拦截器按照属性值进行行动.

使用拦截器的方法分为两步:
1.对拦截器的接口进行继承实现
2.对拦截器在相应的DAO.xml文件中进行注册.

posted @ 2018-04-30 15:35  CurryRice  阅读(547)  评论(0)    收藏  举报