MyBatis基础知识基础配置详解

作者: singworld 分类: MyBatis 发布时间: 2019-04-26 15:17

screenshot.jpeg

属性properties

  1. property子元素
<property name = "xxxx" value = "yyyyy">
引用
<property name = "zzzz" value = "${xxxx}">
  1. 使用properties文件
    创建xxxx.properties文件放在classpath目录下
    通过properties引入
<properties resource = "xxxx.properties">
引用
<property name = "zzzz" value = "${xxxx里面的name}">

自定义别名 alias

<typeAlias>
<typeAlias alias = "role" type = "com.xxx.Role">
<typeAlias alias = "user" type = "com.xxx.User">
</typeAlias>

如果太多需要配置怎么办? 包扫描自动配置别名

自动配置com.xxx包下的类,将第一个字母变为小写作为其别名

<typeAlias>
<package name = "com.xxx">
</typeAlias>

两个包内有相同类 别名冲突

@Alias("user2")
public Class User{

}

运行环境 environments (大部分使用Spring对数据源和数据库对事务进行管理)

  1. 事务管理器(transactionManager)
    主要工作提交(commit),回滚(rollback),关闭(close)
    事务管理器的两种配置方式
<transactionManager type = "JDBC">  //以JDBC方式
<transactionManager type = "MANAGED"> //ManagedTransaction对象实现
  1. 数据源(dataSource)
<dataSource type = "UNPOOLED"> //非数据库连接池 每次请求打开一个新的数据库连接
<dataSource type = "POOLED"> // 数据库连接池
<dataSource type = "JNDI"> // EJB或应用容器使用

数据库厂商标识 databaseIdProvider

<databaseIdProvider type = "DB_VENDOR">
    <property name = "Oracle" value = "oracle">
    <property name = "MySQL" value = "mysql">
    <property name = "DB2" value = "db2">
</databaseIdProvider>
使用JDBC创建数据库连接对象Connection,通过connection。getMetaData().getDatabaseProductName()获取数据库名称,value是别名
改造映射器SQL
<select id="getRole" parameterType="long" resultType="role" databaseId="oracle">
</select>

引入映射器对方法

映射器对定义命名空间namespace的方法,命名空间对应的是一个接口的全路径,而不是实现类
引入方法
1.用文件路径引入

<mappers>
    <mapper resource = "com/xxx/yyy/mapper/roleMapper.xml">
</mappers>

2.用包名引入

<mappers>
    <package name="com.xxx.yyy.mapper">
</mappers>

3.用类注册引入

<mappers>
    <mapper class = "com.xxx.yyy.maper.RoleMapper">
    <mapper class = "com.xxx.yyy.maper.UserMapper">
</mappers>

4.用userMapper.xml引入

<mappers>
    <mapper url ="File:///var/mappers/com/xxx/yyy/mapper/roleMapper.xml">
    <mapper url ="File:///var/mappers/com/xxx/yyy/mapper/RoleMapper.xml">
</mappers>

Leave a Reply

Your email address will not be published. Required fields are marked *