mybatis-config.xmlhtml
MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。java
configuration(配置) properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境配置) environment(环境变量) transactionManager(事务管理器) dataSource(数据源) databaseIdProvider(数据库厂商标识) mappers(映射器)
MyBatis 能够配置成适应多种环境mysql
不过要记住:尽管能够配置多个环境,但每一个 SqlSessionFactory 实例只能选择一种环境。sql
学会使用配置多套运行环境!数据库
Mybatis默认的事务管理器就是 JDBC , 链接池 : POOLED安全
事务管理器(transactionManager)服务器
在 MyBatis 中有两种类型的事务管理器(也就是 type="[JDBC|MANAGED]"):mybatis
JDBC – 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源得到的链接来管理事务做用域。
MANAGED – 这个配置几乎没作什么。它从不提交或回滚一个链接,而是让容器来管理事务的整个生命周期(好比 JEE 应用服务器的上下文)。 默认状况下它会关闭链接。
有三种内建的数据源类型(也就是 type="[UNPOOLED|POOLED|JNDI]")并发
UNPOOLED– 这个数据源的实现会每次请求时打开和关闭链接。app
POOLED– 这种数据源的实现利用“池”的概念将 JDBC 链接对象组织起来,避免了建立新的链接实例时所必需的初始化和认证时间。 这种处理方式很流行,能使并发 Web 应用快速响应请求。
JNDI – 这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器能够集中或在外部配置数据源,而后放置一个 JNDI 上下文的数据源引用
咱们能够经过properties属性来实现引用配置文件
这些属性都是可外部配置且可动态替换的,既能够在典型的 Java 属性文件中配置,亦可经过 properties 元素的子元素来传递。【db.properties】
编写一个配置文件
db.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8 username=root password=tashuo955
在核心配置文件中引入
<!--引入外部配置文件--> <properties resource="db.properties"> <property name="username" value="root"/> <property name="pwd" value="11111"/> </properties>
<!--能够给实体类起别名--> <typeAliases> <typeAlias type="com.loading.pojo.User" alias="User"/> </typeAliases>
也能够指定一个包名,MyBatis 会在包名下面搜索须要的 Java Bean,好比:
扫描实体类的包,它的默认别名就为这个类的 类名,首字母小写!
<!--能够给实体类起别名--> <typeAliases> <package name="com.loading.pojo"/> </typeAliases>
在实体类比较少的时候,使用第一种方式。
若是实体类十分多,建议使用第二种。
第一种能够DIY别名,第二种则·不行·,若是非要改,须要在实体上增长注解
@Alias("user") public class User {}
这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。
MapperRegistry:注册绑定咱们的Mapper文件;
方式一: 【推荐使用】
<!--每个Mapper.XML都须要在Mybatis核心配置文件中注册!--> <mappers> <mapper resource="com/loading/dao/UserMapper.xml"/> </mappers>
方式二:使用class文件绑定注册
<!--每个Mapper.XML都须要在Mybatis核心配置文件中注册!--> <mappers> <mapper class="com.loading.dao.UserMapper"/> </mappers>
注意点:
方式三:使用扫描包进行注入绑定
<!--每个Mapper.XML都须要在Mybatis核心配置文件中注册!--> <mappers> <package name="com.loading.dao"/> </mappers>
注意点:
生命周期,和做用域,是相当重要的,由于错误的使用会致使很是严重的并发问题。
SqlSessionFactoryBuilder:
SqlSessionFactory:
SqlSession
这里面的每个Mapper,就表明一个具体的业务!