Mybatis初级---浅析配置文件、对数据库进行简单的增删改查
一、全局配置文件
1.1 environments
定义开发环境,可以写很多个环境,但每一个SqlSessionFactory 实例只能选择一种环境,
environments下会有很多个environment标签用于配置环境,比如说一个名叫p1的环境:
MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中, 现实情况下有多种理由需要这么做。例如,开发、测试和生产环境需要有不同的配置;或者想在具有相同 Schema 的多个生产数据库中使用相同的 SQL 映射。还有许多类似的使用场景。
1.2 transactionManager
事务管理器,分两类
JDBC
– 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域。MANAGED
– 这个配置几乎没做什么。它从不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。 默认情况下它会关闭连接。然而一些容器并不希望连接被关闭,因此需要将 closeConnection 属性设置为 false 来阻止默认的关闭行为。
1.3 dataSource
数据源,使用标准的JDBC 数据源接口来配置 JDBC 连接对象的资源。
大多数 MyBatis 应用程序会按示例中的例子来配置数据源。虽然数据源配置是可选的,但如果要启用延迟加载特性,就必须配置数据源。
有三种内建的数据源类型(也就是 type="[UNPOOLED|POOLED|JNDI]"):
UNPOOLED
– 没有使用连接池,这个数据源的实现会每次请求时打开和关闭连接。虽然有点慢,但对那些数据库连接可用性要求不高的简单应用程序来说,是一个很好的选择。 性能表现则依赖于使用的数据库,对某些数据库来说,使用连接池并不重要,这个配置就很适合这种情形。POOLED
– 使用连接池,这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。 这种处理方式很流行,能使并发 Web 应用快速响应请求。JNDI
– 这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用。
1.4 mappers
映射器,用于注册映射,或者说给个路径去找XxxMapper.xml配置文件
我们需要告诉 MyBatis 到哪里去找到这些语句。 在自动查找资源方面,Java 并没有提供一个很好的解决方案,所以最好的办法是直接告诉 MyBatis 到哪里去找映射文件。 你可以使用相对于类路径的资源引用,或完全限定资源定位符(包括
file:///
形式的 URL),或类名和包名等。
二、XxxMapper.xml配置文件
XxxMapper.xml对应的是XxxMapper接口
比如我这里PersonMapper接口对应的是PersonMapper.xml配置文件
2.1 mapper
mapper是根标签,里面有一个很重要的属性namepace
namespace:和哪个接口有映射关系
2.2 select、insert、update、delete
这些标签其实分别对应的就是数据库的查、增、改、删,里面最常用的属性有:
- id:对应接口的方法名
- parameterType:对应方法参数类型
- resultType/resultMap:对应方法返回值类型
- useGeneratedKeys:是否获取主键值
- keyColumn:表中哪个字段为主键
- keyProperty:获取得的主键值存到当前对象中的哪个属性
XxxMapper.xml和dao(即Mapper)接口的文件名一样;
XxxMapper.xml的命名空间namespace等于dao接口的全限定名(类路径);
XxxMapper.xml的id等于接口的方法名;
XxxMapper.xml的parameterType等于方法的参数类型;
XxxMapper.xml的resultType/resultMap等于方法的返回值类型。
更多详细的对于配置文件的解析,可以前往mybatis中文文档:(https://mybatis.org/mybatis-3/zh/configuration.html#environments)
三、对数据库的增删改查
使用mybatis查询数据库非常的简单,看一下目录结构你就明白了
全局配置文件mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- environments 多环境配置
environment 配置数据源
transactionManager 事务管理器
dataSource 数据源
-->
<environments default="p1">
<environment id="p1">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver