SSM轻量级框架 第一章MyBatis

什么是框架?
框架就是一个提供了可重用的公共结构的半成品。为构建新的应用程序提供便利,是可以拿来就用的工具,还提供了可重用的设计。
框架的有点
1)不用再考虑公共问题,框架已经做好了
2)可以专心于业务逻辑,保证核心业务逻辑的开发
3)结构统一,便于学习和维护
4)框架中集成了前人的经验,可以帮助新手写出稳定,性能优良而且结构优美的高质量程序。
当前主流框架
1.Struts
2.hibernate框架
3.spring 框架
什么是数据持有化
就是将内存中的数据模型转换成存储模型,以及将存储模型转换为内存中的数据模型统称。
MyBatis
mybatis是一个开源的数据持有层框架。主要思想是将程序中的大量SQL语句剥离出来,配置在文件中,实现SQL的灵活配置。
什么是ORM
对象/映射是一种数据持久化技术。他在对象模型和关系型数据库之间建立对应关系,并且提供一种机制,通过JavaBean对象去操作数据库表中的数控。
MyBatis
基于ORM,MYBatis在对象模型和关系数据库表之间建立了一座桥梁。通过Mybatis,可以建立SQL关系映射,便捷地实现数据存储,查询,更改和删除操作。
搭建Mybatis环境
①下载jar包——-②部署jar包——-③编写MyBatis核心部署文件——-
④创建实体类——-⑤创建DAO接口——-⑥创建SQL映射文件——-
⑦编写测试类
MyBatis优点
①、与JDBC相比,减少50%以上的代码量
②、mybatis是简单的持久化框架,小巧简单易学
③、mybatis相当灵活,不会对应用程序或者数据库的现有设计强加任何 影响,SQL写在XML里,从程序代码彻底分离,既降低耦合度,又便于 统一管理和优化,还可重用。
④、提供XML标签,支持编写动态SQL语句
⑤、提供映射标签,支持对象与数据库的ORM字段关系映射
Mybatis框架的缺点
①、SQL语句的编写工作量较大,对开发人员编写SQL语句的功底又一定要求
②、SQL语句依赖数据库,导致数据库移植性差,不能随意更换数据库
Mybatis框架适用场合
对性能要求很高的项目,或者需求变化较多的项目。
Mybatis的三个基本要素
1、核心接口和类,
2、Mybatis核心配置文件
3、SQL映射文件


1.properties 属性,可实现利用配置文件读取配置

便可以在其他地方使用该定义属性文件中的属性了, ….
2.setting元素
作用是设置一些极为重要的选项。用于设置和改变MyBatis运行中的行为。
*cacheEnabled 默认true
lazyLoadingEnabled 默认false
aggressiveLazyLoading 默认true
multipleResultSetsEnabled 默认true
userColumnLabel(使用列标签代替列名) 默认 true
userGeneratedKeys(允许自动生成主键) 默认 true*
autoMappingBehavior(指定如何映射到字段或属性。NONE - 取消自动映射|PARTIAL - 只映射没有定义嵌套结果集 |FULL - 自动映射所有结果集) 默认PARTIAL
autoMappingUnknownColumnBehavior (NONE - 什么都不做 | WARNING - 输出警告 | FAILING - 映射失败 ,抛出SqlSessionExcption ) 默认NONE
defaultExecutorType(SIMPLE - 普通执行器 | REUSE -执行器会重用预处理语句| BATCH 重用语句并) 默认 SIMPLE
defaultStatementTimeout 超时时间,秒。未设置 null
defaultFetchSize 结果集大小。 未设置 null
safeRowBoundsEnabled 允许在嵌套语句中使用分页(RowBounds)。默认false
mapUnderscoreToCamelCase 是否开启自动驼峰命名规则(camelcase)映射。默认 false
localCacheScope SESSION(默认)|STATEMENT 。默认 SESSION
jdbcTypeForNull 没指定JDBC类,未空指定JDBC类型。 NULL|VARCHAR|OTHER 。默认OTHER
lzyLoadTriggerMethods 指定哪个对象的方法触发一次延迟加载。list集合 。默认:equals,clone,hashCode,toString
defaultScriptingLanguage 动态SQL生成默认语言。默认 org.apache.ibatis.scripting.xmltags.XMLDynamicLanguageDriver
callSettersOnNulls 结果集中值为null时是否调用映射对象的setter。默认false
logPrefix 日志前缀 , String 默认未设置
logImpl 日志实现类 SLF4J|LOG4J|LOG4J2|JDK_LOGGING|COMMONS_LOGGING|STDOUT_LOGGIN|NO_LOGGING 。默认未设置
proxyFactory 延迟加载能力的对象用到的代理工具 CGLIB|JAVASSIST 。默认 JAVASSIST

3.typeAliases元素
作用是配置类型别名,通过与MyBatis的SQL映射文件相关联,减少多余的完整类名,以简化操作。
a.
b. 这种方式,会使用Bean的手写字母,比如 org.test.domain.User ,就是user
c.注解方式。@Alias(“user”)

4.typeHandlers 类型处理器。该部分用于进行预处理、结果取值转换Java类型的处理器,一般采用默认即可。
5.objectFactory 对象工厂。 mybatis每次创建对象实例的上海,都会使用对象工厂实例来完成。若想覆盖默认,可自定义。
a.继承 DefaultObjectFactory类。
b.配置 。property是对应类中 setProperties方法。
5.environments 配置环境,可配置多种环境。













关键,默认环境ID ;每个environment都有ID,事务管理器,数据源。
事务管理器, JDBC \ MANAGED 。JDBC使用JDBC的提交和回滚,依赖数据源得到的连接来管理事务。 MANAGED ,从不提交会回滚连接,让容器来管理事务。比如JAEE应用服务器的上下文,默认情况会关闭连接,可以将closeConnection设为false来阻止。



dataSource 数据源连接有UNPOOLED\POOLED\JNDI 三种类型。
主要说一下POOLED的,配置,poolMaximumActiveConnections 默认10,poolMaximumIdleConnections ,poolMaximumCheckoutTime 默认20000ms ,poolTimeToWait 默认20000ms ,poolPingQuery 默认 NO PING QUERY SET, poolPingEnabled 开启侦测查询 ,默认 false 。poolPingConnectionsNotUsedFor 默认0,。

6.mpper元素
Mpper映射器用来定义SQL的映射语句,我们只需要告诉MyBatis去哪里找到这些SQL语句,即去哪里找相应的SQL映射文件,可以使用类路径或者URL等。

使用资源文件
使用绝对路径
使用类
使用包

mybatis开发流程

猜你喜欢

转载自blog.csdn.net/weixin_42481081/article/details/82562947