配置文件mybatis-config.xml
包含了会深深影响MyBatista行为的设置和属性信息
environment标签
MyBatis可以配置成适应多种连接数据库的环境,但是每个SqlSessionFactory实例只能选择一种环境,可以用default进行指定默认使用的环境.
——transactionManager:设置事务管理方式,type=”JDBC|MANAGED”,Mybatis默认的事务管理器就是JDBC。
——JDBC:事务的提交或回滚需要手动提交
——MANAGED:被管理,例如Spring
——dataSource:配置数据源
SSM整合之后,MyBatis不需要使用数据源,因为Spring在整合时,Spring本身有数据源
——type=”POOLED|UNPOOLED|JNDI”设置数据源类型
——POOLED:表示使用数据库连接池缓存数据库连接
——UNPOOLED:表示不使用连接池
——JNDI:表示使用上下文中的数据源
——property:设置数据库信息
当然同样也可以外部使用properties文件来设置数据库信息,为了防止重名问题,在前面加个前缀
我们在配置文件中加入引入properties的标签properties,但是!并不能随便找位置引入,比如我们随便放在mapper标签后方,可以看出报错
提示信息说标签必须按照给出的顺序,所以properties应该放在第一位
例如查询功能,一定要写上返回类型,返回的类型一定是全限定类名,当包过多时,全限定类名很长很长,于是可以使用别名简化
typeAliases标签
type=全限定名,alias=别名(可写可不写,如果不写,默认别名为其类名,同样不区分大小写),且类型别名不区分大小写
如果要设置的别名很多,也可以用以包为单位设置默认类名的别名
mappers标签
与Mapper接口相对应,随着项目越来越大,Mapper接口越来越多,映射文件也多,标签也要很多吗?其实同样可以 以包为单位进行映射
Resource不能以package的方式创建包,只能以目录的方式,所以不能用点,而是用/
那么,使用以包为单位的方式引入映射文件时,一定要注意!!
- mapper接口所在的包要和映射文件所在的包一致
- mapper接口要和映射文件的名字一致
不一致,修改包名
idea设置核心配置文件的模板
那么就可以直接创建核心配置文件了
映射文件中的查询语句中一定要写返回类型,那么resultType和resultMap有什么区别?
前面学习中,我们知道POJO类中的属性名一定要与数据库表中的字段名一致(一对一进行映射),那么如果不一致时,则可以使用resultMap