乐趣区

关于mybatis: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 简化了代码利用框架来连贯数据库并对其进行操作。

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

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

evironments 标签:该标签外部能够配置多个 environment,即多种环境,每种环境能够做不同配置或连贯不同数据库。例如,开发、测试、生产环境可能须要不同的配置,连贯的数据库可能也不雷同,因而咱们能够配置三个 environment,别离对应下面三种不同的环境。

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

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


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

mappers标签:用于导入 mapper 文件的地位,其中能够配置多个 mapper,即能够导入多个 mapper 文件。

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

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

(2)第 2、3、4 行,引入了 xml 束缚文档,以后 xml 文档将会依照 mybatis-3-mapper.dtd 文件所要求的规定进行书写。

(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,但不能同时应用
退出移动版