【Mybatis】(三)配置解析
配置解析
1.核心配置文件
要掌握

2.环境配置(environments)
MyBatis可以配置成适应多种环境
不过要记住:尽管可以配置多个环境,但每个SqlSessionFactory实例只能选择一种环境。
学会配置多套运行环境。(修改environments标签的default值即可)
Mybatis默认的事务管理器就是JDBC,连接池:POOLED
3.属性(properties)
可以通过properties属性实现引用配置文件
这些属性可以在典型的java属性文件(db.properties)中配置,也可以通过properties元素的子元素来传递。
-
编写一个配置文件
db.properties
driver=com.mysql.jdbc.Driver jdbc-url=jdbc:mysql://localhost:3306/MyBatiss?useSSL=true&useUnicode=true&characterEncoding=UTF-8在mybatis配置文件中引入
<properties resource="db.properties"> <property name="username" value="root"/> <property name="password" value="root"/> </properties> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${jdbc-url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> -
可以引入外部文件
-
可以在其中增加一些属性配置
-
如果两个文件有相同字段,优先使用外部配置文件的。
4.类型别名(typeAliases)
-
类型别名就是为了减少类完全限定名的冗余。
<!--给实体起别名--> <typeAliases> <typeAlias type="pojo.User" alias="User"/> </typeAliases>就可以直接这么使用
<select id="getUserList" resultType="User"> select * from mybatiss.user </select> -
也可以指定一个包名,MyBatis会在包名下面搜索需要的Java Bean,其默认别名就是这个类的类名,首字母小写。
<!--给实体起别名--> <typeAliases> <package name="pojo"/> </typeAliases>使用
<select id="getUserList" resultType="user"> select * from mybatiss.user </select>*当实体类多的时候,建议用第二种。
-
当扫描包时,想给类起别名可以用注解
@Alias("uuuser") public class User {...}
5.设置
日志实现

6.其他配置
- plugins插件
- MyBatis Generator Core 自动生成sql语句
- MyBatis Plus 简化mybatis开发,不用写简单增删改查
7.映射器(mappers)(见文档)
MapperRegistry:注册绑定我们的Mapper文件。
-
方式一(推荐):使用resource
-
方式二:使用class
注意点:
- 接口和Mapper配置文件必须同名
- 接口和Mapper配置文件必须在同一个包下
-
方式三:使用扫描包进行注入绑定
注意点:(同方二)
8.作用域和生命周期


-
SqlSessionFactoryBuilder
-
一旦创建了SqlSessionFactory,就不再需要它了。
-
局部变量
-
-
SqlSessionFactory
- 可以想象为:数据库连接池
- 一旦被创建就应该在应用的运行期间一直存在。
- 最佳作用域是应用作用域。
-
SqlSession
-
连接到连接池的一个请求。
-
SqlSession的实例不是线程安全的,因此不能被共享。其最佳作用域是请求或方法作用域。
-
用完之后就关闭,否则资源被占用
-

浙公网安备 33010602011771号