mybatis配置文件解释

1. properties

可外部配置属性,可动态替换既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递

eg:

mybatis配置文件解释

db.properties即:

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://127.0.0.1:3306/mybatis

username=root

password=123456

 

# mysql2

driver2=com.mysql.jdbc.Driver

url2=jdbc:mysql://127.0.0.1:3306/mybatis

username2=root

password2=123456

mybatis.xml中添加

<!-- 添加数据库连接相关配置信息 -->

<configuration>

<properties resource="db.properties"></properties>

<environment id="development">

 

<!-- 加入事务控制 -->

<transactionManager type="jdbc" />

<!-- 配置数据库连接信息 -->

<dataSource type="pooled">

 

<!-- <property name="driver" value="com.mysql.jdbc.Driver" />

<property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis" />

<property name="username" value="root" />

<property name="password" value="123456" />-->

<!--多个资源数据库配置-->

<property name="driver" value="${driver}"/>

<property name="url" value="${url}"/>

<property name="username" value="${username}"/>

<property name="password" value="${password}"/>

</dataSource>

 

</environment>

</configuration>

2.settings

这是 MyBatis 修改操作运行过程细节的重要的步骤,一般使用默认

3.typeAliases(重点)

类型别名

类型别名是为 Java 类型设置一个短的名字。它只和 XML 配置有关,存在的意义

仅在于用来减少类完全限定名的冗余

Configuration 标签下添加

<!--别名,包扫描-->

<typeAliases>

<package name="com.shsxt.po"/>

</typeAliases>

<!--非包扫描-->

<typeAliases>     

<!--<typeAlias alias="User" type="com.shsxt.po.User"></typeAlias>

<typeAlias alias="Account" type="com.shsxt.po.Account"></typeAlias>

<typeAlias alias="School" type="com.shsxt.po.School"></typeAlias>-->

 

<!-- 包扫描 默认时以po首字母小写形式引用-->

<package name="com.shsxt.po"/>

</typeAliases>

4.typeHandlers 类型处理器

处理从数据库或结果集中得到的值,到Java文件的类型转化

有默认的数据类型处理器

5. 对象工厂(objectFactory)

通过默认构造方法或者在参数映射存在的时候通过参数构造方法来实例化

根据一个类的类型得到一个类的实例

类似于 spring 工厂实例化bean

6. plugins 插件

MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,

MyBatis 允许使用插件来拦截的方法调用

7. 配置环境(environments) (熟悉 配多个数据源)
MyBatis 可以配置成适应多种环境
不过要记住: 尽管可以配置多个环境, 每个 SqlSessionFactory 实例只能选
择其一。
所以, 如果你想连接两个数据库, 就需要创建两个 SqlSessionFactory 实
例, 每个数据库对应一个。 而如果是三个数据库, 就需要三个实例, 依此类
推, 记起来很简单:
 

<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>

<environment id="test">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver2}" />
<property name="url" value="${url2}" />
<property name="username" value="${username2}" />
<property name="password" value="${password2}" />
</dataSource>
</environment>

</environments>
.....
## development
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&characterEncodi
ng=utf8
username=root
password=root

## test
driver2=com.mysql.jdbc.Driver
url2=jdbc:mysql://127.0.0.1:3306/mybatis2?useUnicode=true&characterEnco
ding=utf8
username2=root
password2=root

 

测试 sqlSessionFactory
 

public void test02() {
InputStream in;
try {
      in =         Resources.getResourceAsStream(this.getClass().getClassLoader(),"config.xml");
// 默认开发库
//SqlSessionFactory sqlSessionFactory=

                                                           new SqlSessionFactoryBuilder().build(in);                             //build(in) 默认development开发库
// 测试库
SqlSessionFactory sqlSessionFactory=

                                                      new SqlSessionFactoryBuilder().build(in,"test");
UserDao userDao=new UserDaoImpl(sqlSessionFactory);
User user= userDao.queryUserById(1);
System.out.println(user);
} catch (IOException e) {
e.printStackTrace();
}
}

8. 事务管理器(transactionManager) (了解)
在 MyBatis 中有两种类型的事务管理器(也就
type=”[JDBC|MANAGED]”)

如果你正在使用 Spring + MyBatis, 则没有必要配置事务管理器, 因为
Spring 模块会使用自带的管理器来覆盖前面的配置。
 

9.dataSource 数据源(了解)

dataSource 元素使用标准的 JDBC 数据源接口来配置 JDBC 连接对象的资源。
数据源类型有三种:UNPOOLED,POOLED,JNDI

UNPOOLED
这个数据源的实现只是每次被请求时打开和关闭连接。虽然有一点慢,它对在及时
可用连接方面没有性能要求的简单应用程序是一个很好的选择。

POOLED
这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连
接实例时所必需的初始化和认证时间。 这是一种使得并发 Web 应用快速响应请求的
流行处理方式。(一般选用这种)


JNDI
这个数据源的实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以
集中或在外部配置数据源,然后放置一个 JNDI 上下文的引用。

10.mappers 映射器(四种配置) (熟悉)

<!— sqlmapper 配置文件路径 -->
<mappers>
<mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
<mapper resource="org/mybatis/builder/BlogMapper.xml"/>
<mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>


<!—url 绝对路径形式-->
<mappers>
<mapper url="file:///var/mappers/AuthorMapper.xml"/>
<mapper url="file:///var/mappers/BlogMapper.xml"/>
<mapper url="file:///var/mappers/PostMapper.xml"/>
</mappers>


<!—接口 列表配置形式 注解 sql-->
<mappers>
<mapper class="org.mybatis.builder.AuthorMapper"/>
<mapper class="org.mybatis.builder.BlogMapper"/>
<mapper class="org.mybatis.builder.PostMapper"/>
</mappers>


<!—映射包下所有接口-->
<mappers>
<package name="org.mybatis.builder"/>
</mappers>