目录
核心配置文件
mybatis-config.xml ,下面只讲常用的
环境配置(environments)
Mybatis可以配置成适应多种环境,不过要记住,使用时只能使用其中的一套(有deafult的那套)
Mybatis中默认的事务管理器是JDBC,连接池是POOLED
事务管理器除了JDBC还有MANAGED(用于传统EJB项目),连接池当然也可以设置成UNPOOLED
属性(Properties)
我们可以通过properties来引用配置文件,这些属性都是可外部配置且可动态替换的。
一种方案是单独定义一个db.properties配置文件,然后在项目默认配置文件中引用之
注意:引用时xml规定了标签的顺序,<properties>标签必须在configuration标签紧下面,否则报错。
也可以在项目默认的xml配置文件中以<properties>标签的形式存在,
如果外部配置文件中写了用户名密码,你又以标签的形式在主配置文件中又写了一遍用户名密码,mybatis会优先采用外部配置文件里的信息。
类型别名(typeAliases)
在mapper.xml文件中,我们的每条sql都要标注实体类路径名,如果这名字太长,这样是不是太麻烦了
我们有三种方式可以简化类型别名
- 1.在主配置文件中给实体类起别名
注意书写位置一定要写在<properties>标签和<settings>标签之后,否则报错
- 2.也可以在typeAliases标签中只写包名,具体类名放在mapper中写
- 3.在第二中方案的基础上,通过给实体类添加Aliases注解的方式
前提是一定要在配置文件中指定是扫描包,然后你给实体类加注解时,起名就可以随意起了
设置(Settings)
这是Mybatis中极为重要的调整设置,它们会改变Mybatis的运行时行为
映射器(mappers)
映射器起到把我们自定义的mapper.xml注册到主配置文件中,供mybatis识别的作用。
有以下几种方式,推荐使用第一种
- resources
<!--每一个Mapper.XML都需要在Mybatis核心配置文件中注册!-->
<mappers>
<mapper resource="com/kuang/dao/UserMapper.xml"/>
</mappers>
- class
使用这种方式:接口和他的Mapper配置文件必须同名!接口和他的Mapper配置文件必须在同一个包下!
<!--每一个Mapper.XML都需要在Mybatis核心配置文件中注册!-->
<mappers>
<mapper class="com.kuang.dao.UserMapper"/>
</mappers>
- package
<!--每一个Mapper.XML都需要在Mybatis核心配置文件中注册!-->
<mappers>
<package name="com.kuang.dao"/>
</mappers>
转存失败重新上传取消
SqlSession的原理与使用
这里面的核心就是Builder、Factory、和SqlSession。我们讲解一下
- SqlSessionFactoryBuilder
就是用来创建SqlSessionFactory的,所以这东西的作用域为局部变量
- SqlSessionFactory
可以把它理解为数据库连接池,这个工厂一经创建后,在应用程序运行期间一直存在,因此最佳作用域是应用作用域,通过单例模式或静态单例模式使用
- SqlSession
连接池中的一条条请求,由于SqlSession存在并发性,因此线程不安全,不能被共享,所以最佳作用域是请求或方法作用域,用完之后马上关闭,防止资源占用出现并发问题
可以对比理解一下~