之前学习了Mybaitis 相比于Hibernate的宽度更广,但是开发效率相对要低一些,下面就是个人对Mybaitis的个人理解
#Mybatis框架 属于持久层框架
半自动orm (object relation mapping)对象关系映射 框架
1.jdbc程序有什么问题?
1.分析jdbc代码,获取到问题?
1.数据库连接频繁的创建和关闭,浪费了数据库资源,效率非常低
连接池:预先在连接词定义一些连接,用完了再放回去
2.sql语句硬编码到代码中,以后修改了sql语句需要重新编译
将sql语句配置到文件中。以后要修改sql直接改文件
3.占位符的设置也是硬编码到代码中。换了顺序需要改源码
将占位符设置放在文件中。
4.结果集遍历也是硬编码
结果集遍历通过文件来进行映射。实体bean和数据库表之间的映射
5.动态连接其他数据库,这段代码无法重用
将连接语句配置到文件中。
2.如何解决问题?
Mybatis 解决了上述所有问题
***什么是Mybatis?***
mybatis是支持普通sql查询,存储过程和高级映射的优秀持久层框架。mybatis几乎消除了页面上所有的jdbc代码,参数的手动设置,结果集的映射。
mybatis对jdbc进行了封装,使开发者以后只需要关注sql本身。而不必话费大量的事件去管理连接、驱动、结果集之类的。mybatis托管在github。
mybatis是一个半自动的orm映射框架
半自动:我们对数据进行持久化的时候不需要关注代码,只需要关注sql语句
orm:对象关系映射。是一种程序的继续。用于实现面线对象编程转化为关系型数据库的表之间关系
###mybatis架构
1.config.xml文件:mybatis的全局配置文件,包含了mybatis的底层环境(驱动加载,连接)。config.xml文件还包含了mapper.xml(sql映射文件) 文件。
2.sqlsessionfactory对象(会话工厂):目的是产生会话对象
3.sqlsession:会话对象,面向用户的接口。提供了数据库的操作方法。
4.executor(接口、执行器,有两个实现类:默认执行器和缓存执行器)
5.MappedStatement(mybatis的封装对象):封装了sql语句。
1.Config.xml
这是Mybatis的配置文件,环境配置里对jdbc数据库连接进行了配置,在项目里最好有一个db.properties文件,用于避免硬编码进行数据库连接
2.sqlsessionFactory
获取配置文件配置,build出sessionFactory,获得sqlSession
4.excutor
通过session.getMapper(类对象),可以和Mapper文件里面的命名空间还有Mapper文件里面的id对应方法,这样就可以一一匹配
5.MappedStatement
type里面直接写ClassBean是应为在Cofig.xml文件中写了类的别名,这样就可以直接写类名,不用写全名,resultMap里面的名字和resultMap标签里面的id一一对应
写到这里就能对Mybatis进行很好的应用了,之后就是Spring整合Mybatis了