MyBatis框架使用总结与配置文件解析
需积分: 6 191 浏览量
更新于2024-10-26
收藏 3.79MB RAR 举报
资源摘要信息:"MyBatis_Review.rar"
MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
### 配置文件写法
MyBatis的配置文件是整个框架运行的基础,其中包含了数据库连接信息、事务管理器、映射器等关键配置。一个典型的MyBatis配置文件(mybatis-config.xml)通常包含以下几个主要部分:
1. **properties**:配置数据库连接信息,如数据库URL、用户名、密码等。
2. **settings**:设置全局属性,如映射器的延迟加载、缓存开关、别名、日志工厂等。
3. **typeAliases**:为Java类定义别名,简化复杂类型的全限定名。
4. **typeHandlers**:配置类型处理器,用于Java类型与JDBC类型之间的转换。
5. **objectFactory**:对象工厂,用于创建目标对象实例。
6. **plugins**:配置插件,可以拦截Executor、StatementHandler、ParameterHandler和ResultSetHandler的调用。
7. **environments**:配置不同的运行环境,如开发环境、测试环境和生产环境。
8. **environment**:每个环境的具体配置,包括事务管理器和数据源。
9. **transactionManager**:配置事务管理方式,MyBatis支持JDBC事务管理和MANAGED事务管理。
10. **dataSource**:配置数据源,MyBatis内置了UNPOOLED、POOLED和JNDI数据源。
11. **mappers**:指定映射文件或接口的位置,让MyBatis知道如何找到映射文件。
### session的获得方法
在MyBatis中,SqlSession是一个非常重要的概念,它是应用程序与持久层之间执行交互操作的一个单线程对象。以下是如何获取SqlSession的常见方式:
1. **SqlSessionFactoryBuilder**: 这是一个用于构建SqlSessionFactory的工具类。通常在初始化MyBatis时,通过读取配置文件来创建SqlSessionFactory对象。
```java
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
```
2. **SqlSessionFactory**: 一旦创建了SqlSessionFactory,在应用的整个运行期间,它应该是单例的。通过SqlSessionFactory对象,可以获取到SqlSession实例。
```java
try (SqlSession session = sqlSessionFactory.openSession()) {
// 使用session进行数据库操作
}
```
3. **SqlSessionTemplate**: 在Spring框架整合MyBatis时,常常使用SqlSessionTemplate来代替直接使用SqlSession,它提供了线程安全的SqlSession操作。
```java
@Autowired
private SqlSessionTemplate sqlSessionTemplate;
// 在方法中直接注入sqlSessionTemplate,进行数据库操作
```
### 固定语法
在MyBatis中,有一些固定的语法需要掌握,主要包括以下几个方面:
1. **Mapper文件**:映射文件是MyBatis的核心组件,它定义了SQL语句和操作的映射规则。通常,一个Mapper文件中包含以下几个元素:
- `namespace`: 命名空间,通常与Mapper接口的全限定名相同。
- `select|insert|update|delete`: 定义操作数据库的SQL语句。
- `id`: 唯一标识一个SQL语句的ID,它应该与Mapper接口中的方法名相同。
- `parameterType`: 指定输入参数的类型。
- `resultType`: 指定输出结果的类型。
- `#{}`: 在SQL语句中设置参数占位符,其中的值对应于方法的参数。
- `<resultMap>`: 定义复杂的映射关系,可以实现高级的类型转换、级联等。
2. **动态SQL**: MyBatis支持动态SQL的构建,可以实现基于条件的复杂查询。主要标签包括:
- `<if>`: 根据条件判断是否包含某段SQL代码。
- `<choose>`(when, otherwise): 类似于Java中的switch语句。
- `<where>`: 自动添加WHERE关键字,并且会忽略条件中的AND或OR。
- `<set>`: 在UPDATE语句中用于包含SET关键字的条件。
- `<foreach>`: 循环迭代指定的集合或数组,常用于IN语句或者批量插入。
3. **缓存机制**: MyBatis提供了两级缓存机制,第一级缓存是SqlSession级别的缓存,第二级缓存是Mapper级别的缓存,可以被同一个SqlSessionFactory创建的所有SqlSession共享。
通过理解和掌握上述知识点,可以更好地使用MyBatis框架进行数据库的操作和管理。这些知识点在MyBatis框架的应用中至关重要,是进行高效数据库编程的基础。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2022-09-21 上传
2022-09-24 上传
2022-09-24 上传
2022-09-23 上传
2019-11-12 上传
2019-08-05 上传
JLU_LYM
- 粉丝: 99
- 资源: 3
最新资源
- headline-inspirator:将押韵词替换为相关短语,从而为标题写作带来灵感
- Foros Del Web Skin-crx插件
- CARBOGRES-SAS-
- amazon-automation:在亚马逊上进行自动购买的脚本
- COE-pdf-maker:React专为牙医诊所设计的项目,可在内部自动生成PDF文档
- 素雅重阳节PPT模板
- angularD:角度演示
- ri.vim:从Vim浏览ri文档
- vue-store-structure:看到商店拆分很容易使用状态,获取器,操作,变异和模块
- React-Admin:使用 ReactJS 的管理模板
- 问卷调查
- serialize-stt-words
- 微软经典商务下载PPT模板
- Dota2 Items-crx插件
- commerce-back-end
- vue-formbuilder:ElementUI 表单生成器