A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Mybatis 框架  

1、 Mybatis 的理解
MyBatis 是支持定制化 SQL、 存储过程以及高级映射的优秀的持久层框架。 MyBatis 避免了
几乎所有的 JDBC 代码和手工设置参数以及抽取结果集。 MyBatis 使用简单的 XML 或注解
来配置和映射基本体, 将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射
成数据库中的记录。
Mybatis 的优点:
1、 简单易学。 mybatis 本身就很小且简单。 没有任何第三方依赖, 最简单安装只要两个 jar
加配置几个 sql 映射文件, 易于学习, 易于使用, 通过文档和源代码, 可以比较完全的掌握
它的设计思路和实现;
2、 灵活。 mybatis 不会对应用程序或者数据库的现有设计强加任何影响。 sql 写在 xml 里,
便于统一管理和优化。通过 sql 基本上可以实现我们不使用数据访问框架可以实现的所有功
能, 或许更多;
3、 解除 sql 与程序代码的耦合。 通过提供 DAO 层, 将业务逻辑和数据访问逻辑分离, 使系
统的设计更清晰, 更易维护, 更易单元测试。 sql 和代码的分离, 提高了可维护性;
4、 提供映射标签, 支持对象与数据库的 orm 字段关系映射;
5、 提供对象关系映射标签, 支持对象关系组建维护;
6、 提供 xml 标签, 支持编写动态 sql。
2、 Mybatis 的配置
MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)
信息。 文档的顶层结构如下:
configuration 配置
properties 属性
settings 设置
typeAliases 类型命名
typeHandlers 类型处理器
objectFactory 对象工厂
plugins 插件
environments 环境
environment 环境变量
transactionManager 事务管理器
dataSource 数据源
databaseIdProvider 数据库厂商标识
mappers 映射器
properties 属性
这些属性都是可外部配置且可动态替换的, 既可以在典型的 Java 属性文件中配置, 亦可通
过 properties 元素的子元素来传递。
settings 设置
这是 MyBatis 中极为重要的调整设置, 它们会改变 MyBatis 的运行时行为。
设置参数 描述 有效值 默 认
cacheEnabled 该配置影响的所有映射器中配置的缓存
的全局开关。
true|fa
lse
true
lazyLoadingEnabled 延迟加载的全局开关。 当开启时, 所有关
联对象都会延迟加载。
true|fa
lse
false
mapUnderscoreToCamelCase 是 否开 启 自 动驼 峰 命 名规 则 (camel
case ) 映 射 , 即 从 经 典 数 据 库 列 名
A_COLUMN 到经典 Java 属性名 aColumn
的类似映射。
true|fa
lse
false
typeAliases 类型命名
类型别名是为 Java 类型设置一个短的名字。 它只和 XML 配置有关, 存在的意义仅在于用
来减少类完全限定名的冗余。
environments 配置环境
MyBatis 可以配置成适应多种环境, 这种机制有助于将 SQL 映射应用于多种数据库之中,
现实情况下有多种理由需要这么做。 例如, 开发、 测试和生产环境需要有不同的配置; 或者
共享相同 Schema 的多个生产数据库, 想使用相同的 SQL 映射。 许多类似的用例。
不过要记住: 尽管可以配置多个环境, 每个 SqlSessionFactory 实例只能选择其一。
所以, 如果你想连接两个数据库, 就需要创建两个 SqlSessionFactory 实例, 每个数据库
对应一个。 而如果是三个数据库, 就需要三个实例, 依此类推, 记起来很简单: 每个数据库
对应一个 SqlSessionFactory 实例。
为了指定创建哪种环境, 只要将它作为可选的参数传递给 SqlSessionFactoryBuilder 即
可。
transactionManager 事务管理器
如果你正在使用 Spring + MyBatis, 则没有必要配置事务管理器, 因为 Spring 模块会使
用自带的管理器来覆盖前面的配置。
这两种事务管理器类型都不需要任何属性。 它们不过是类型别名, 换句话说, 你可以使用
TransactionFactory 接口的实现类的完全限定名或类型别名代替它们。
mappers 映射器
告诉 MyBatis 到哪里去找映射文件。 你可以使用相对于类路径的资源引用, 或完全限定资
源定位符(包括 file:/// 的 URL), 或类名和包名等。








1 个回复

倒序浏览
牛逼啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马