mybatis框架的理解

什么是mybaits?

MyBatis 本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation 迁移到了google code,而且更名为MyBatis 。2013年11月迁移到Github。
MyBatis是一个优秀的持久层框架,它对jdbc的操做数据库的过程进行封装,使开发者只须要关注SQL自己,而不须要花费精力去处理例如注册驱动、建立connection、建立statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
Mybatis经过xml或注解的方式将要执行的各类statement(statement、
preparedStatemnt)配置起来,并经过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。
总之,Mybatis对JDBC访问数据库的过程进行了封装,简化了JDBC代码,解决JDBC将结果集封装为Java对象的麻烦。
以上是mybatis的官方解释,下面是我我的的理解(不对的请评论区留言哦)。
所谓mybatis就是底层封装了jdbc简化了代码利用框架来链接数据库并对其进行操做。java

mybatis的配置文件各个标签的含义

<configuration ></onfiguration > : MyBatis的全局配置文件 sql

evironments 标签:该标签内部能够配置多个environment,即多种环境,每种环境能够作不一样配置或链接不一样数据库。例如,开发、测试、生产环境可能须要不一样的配置,链接的数据库可能也不相同,所以咱们能够配置三个environment,分别对应上面三种不一样的环境。数据库

可是要记住,environment能够配置多个,可是最终要使用的只能是其中一个!
environment 标签:内部能够配置多种配置信息,下面介绍事务管理配置和数据源配置。apache

transactionManage 标签:事务管理配置,mybatis中有两种事务管理方式,也就是type="[JDBC|MANAGED]mybatis

image.png


dataSource标签:数据源,也就是链接池配置。这里type指定数据源类型,有三种内建的类型:JNDI、POOLED、UNPOOLED
image.pngapp

mappers标签:用于导入mapper文件的位置,其中能够配置多个mapper,便可以导入多个mapper文件。框架

Mapper的配置的文件标签含义:

image.png

(1)第1行是xml的文档声明,用于声明xml的版本和编码测试

(2)第二、三、4行,引入了xml约束文档,当前xml文档将会按照mybatis-3-mapper.dtd文件所要求的规则进行书写。google

(3)Mapper标签:根标签,其中namespace(名称空间,也叫命名空间),要求不能重复。在程序中经过【namespace + id 】定位到要执行哪一条SQL语句编码

(4)select标签:用于指定未来要执行的各类SQL语句。标签上能够声明属性,下面介绍经常使用的属性:id、resultType、resultMap

  • id属性:要求值不能重复。未来在执行SQL时,能够经过【namespace + id】找到指定SQL并执行。
  • resultType属性:从这条SQL语句中返回所指望类型的类的彻底限定名称(包名+类名)。注意若是是集合情形,那应该是集合能够包含的类型,而不能是集合自己。

    简而言之,resultType控制查询SQL执行后返回值的类型或集合中的泛型,例如查询emp表中的单条记录,返回值是一个Emp对象,所以,resultType="com.tedu.pojo.Emp";

    若是查询emp表中的多条记录,返回值是一个List<Emp>,此时resultType的值应该集合中的泛型,所以resultType="com.tedu.pojo.Emp";

  • resultMap属性:复杂对象结构(例如多表关联查询等)。 使用 resultType 或 resultMap,但不能同时使用
相关文章
相关标签/搜索