其他概念:
1、接口式编程
原生: Dao ------------------> DaoImpl
Mybatis Mapper -------------> xxMapper.xml
2、SqlSession代表和数据库的一次会话,用完须关闭
3、SqlSession和Connection两者都不是线程安全的,每次使用都应该去获取新的对象
4、Mapper接口没有实现类,但是mybatis会为它生成一个代理对象。(将接口与xml进行绑定)
EmployeeMapper empMapper = sqlSession.getMapper(EmployeeMappper.getClass);
5、两个重要的配置文件
mybatis的全局配置文件:数据库连接池信息、事务管理器信息、系统运行环境信息等
sql映射文件:保存了每一个sql语句的映射信息:将sql抽取出来
Mybatis全局配置文件
5、mybatis可使用properties标签引入外部properties配置文件的内容
<properties resource="dbconfig.properties"></properties>
resource:引入类路径下的资源
url:引入网络路径下或者磁盘路径下的资源
6、settings运行时行为的配置标签
setting:用来设置每一个设置项
name:设置项名
value:设置项取值
7、typeAliases标签:别名处理器:可以为我们的Java类型起别名(推荐批量起别名方式)
<package name="com.xuan.mybatis.bean"/>
package:为某个包下所有的类批量起别名
name:指定包名(为当前包以及下面所有的子包的每一个类都起一个默认的别名(类型小写 ))
注意:批量起别名的情况下,使用 @Alisa注解为某个类型指定新的别名(防止出现同一个包下出现两个相同名字的类)
8、environments标签:可以为mybatis配置多种环境(开发环境、测试环境等),default指定使用某种环境
environment:配置一个具体的环境信息;必须包含两个标签(transactionManager、dataSource),id代表当前环境唯一标识
transactionManager:事务管理器
dataSource:数据源
9、databaseIdProvider标签:支持多数据厂商的 type属性作用就是得到数据库厂商的标识(Mysql、Oracle、SQL server…)
<databaseIdProvider>
<!--为不数据库厂商起别名-->
<property name="Mysql" value="mysql"/>
<property name="Oracle" value="oracle"/>
<property name="SQL server" value="sqlserver"/>
</databaseIdProvider>
10、mappers标签:将sql映射注册到全局配置中
mapper:注册一个sql映射
resource属性:引用类路径下的sql映射文件
url属性:引用网络路径或磁盘路径下的sql映射文件
class属性:引用(注册)接口
1、有sql映射文件、映射文件名必须或接口同名,并且要放在与接口同一目录下;
2、没有sql映射文件,所有的sql都是利用注解写在接口上;
推荐:
a)比较重要、复杂的Dao接口使用sql映射文件来编写
b)不重要、简单的Dao接口为了开发快速可以使用注解