什么是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,但不能同时应用