配置环境(environments)
注: 每个SqlSessionFactory只能选择一种环境
MyBatis事务管理器有:JDBC、 MANAGED
默认管理器:JDBC
连接池:POOLED、UNPOOLED、JNDI
默认连接池:POOLED
属性Properties
可以通过配置文件来读取属性
- 编写配置文件
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8
username=root
password=123456
- 在核心配置文件中,引入资源文件
<properties resource="db.propertise" />
- 也可在properties中设置相关属性
<properties resource="db.propertise">
<property name="password" value="123456"/>
</properties>
若资源文件,与propertys的相关属性相同时,优先使用资源配置文件中属性
类型别名(typeAliases)
作用
- 为Java类全名设置更短的名称
- 减少类全名的冗余
设置别名
- 具体类
<typeAliases>
<typeAlias type="pojo.User" alias="user"/>
</typeAliases>
- 扫描包(该方法默认类别名为实体类类名的小写形式)
<typeAliases>
<!--<typeAlias type="pojo.User" alias="user"/>-->
<package name="pojo" />
</typeAliases>
当实体类较少时,推荐使用一种方法,可以自定义别名;实体类较多做时,推荐使用第二种
属性 设置(Settings)
作用:用来注册绑定接口实现的配置文件
- 方式一 :通过过resources
<mappers>
<mapper resource="Dao/UserMapper.xml" />
</mappers>
- 方式二:通过Class属性绑定
<mappers>
<!--<mapper resource="Dao/UserMapper.xml" />-->
<mapper class="Dao.UserMapper"/>
</mappers>
- 方式三:通过package
<mappers>
<!--<mapper resource="Dao/UserMapper.xml" />-->
<!--<mapper class="Dao.UserMapper"/>-->
<package name="Dao" />
</mappers>
方式二与方式三需要注意:接口与具体实现的配置文件必须同名,且必须在同一个包下
生命周期、作用域
- SqlSessionFactoryBuilder: 一旦建立SqlSessionFactory后,就不再需要SqlSessionFactoryBuilder,用作于局部变量
- SqlSessionFactory:一旦创建就在应用运行期间一直存在,没有任何理由丢弃它或者重新建立一个
- SqlSession:可以看做为连接到连接池的请求,其实例是线程不安全的,不适合共享,用完应该关闭;
当实体类与数据库字段名不一致时,如何查询
影响:当字段名与属性名不一致时,查询时在实体类中不一致属性名对应的值为null;
- 解决方法一 : 起别名
<select id="getUserList" resultType="user">
select id,username,pwd as password from mybatis.user
</select>
- 使用resultMap 来解决
//建立resultMap ,配置相关信息,实体类中属性名为password,数据库字段名为:pwd
<resultMap id="resultmap" type="user">
<result column="pwd" property="password"/>
</resultMap>
<!--select查询语句-->
<select id="getUserList" resultMap="resultmap">
select * from mybatis.user
</select>