Mybtatis配置学习笔记

来源:互联网 发布:收费软件 编辑:程序博客网 时间:2024/05/21 07:13
1.<dataSource type="POOLED">的type属性、其有三种取值: 
  • a:如果将类型设置成UNPOOLEDMyBatis会为每一个数据库操作创建一个新的连接,并关闭它。该方式
    适用于只有小规模数量并发用户的简单应用程序上。
    b: 如果将属性设置成 POOLEDMyBatis会创建一个数据库连接池,连接池中的一个连接将会被用作数据
    库操作。一旦数据库操作完成,
    MyBatis 会将此连接返回给连接池。在开发或测试环境中,经常使用此
    种方式。
    c:如果将类型设置成 JNDIMyBatis从在应用服务器向配置好的 JNDI数据源 dataSource 获取数据库
    连接。在生产环境中,优先考虑这种方式。


2.在 <transactionmanager type="JDBC"> </transactionmanager> 这个配置中有type也有JDBC,JTA,EXTERNAL.我想问下基于JDBC,及JTA的事务可以应用到哪中程度.而对EXTERNAL在什么情况下会用到?

JDBC使用 数据库自己的事务(局部事务),connect.beginTranstion(), connect.commit()等 

MANAGED : 这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让 容器来管理事务的整个生命周期(比如 Spring 或 JEE  应用服务器的上下文) 默认 情况下它会关闭连接。 然而一些容器并不希望这样, 因此如果你需要从连接中停止 它,将 closeConnection 属性设置为  false。例如:

<transactionManager type="MANAGED"><property name="closeConnection" value="false"/></transactionManager>

常用的是External,应为在我的应用中,事务都是用spring托管的,如果不是,那就就用jdbc,如果在app server中,你又不想使用容器托管事务,那就用JTA





可以同时配置两个数据库,
<environments default="shoppingcart">
<environment id
="shoppingcart">
<transactionManager type
="MANAGED" />
<dataSource type
="JNDI">
<property name
="data_source" value="java:comp/jdbc/ ShoppingcartDS" />
</dataSource>
</environment>
<environment id
="reports">
<transactionManager type
="MANAGED" />
<dataSource type
="JNDI">
<property name
="data_source" value="java:comp/jdbc/ReportsDS" />
</dataSource>
</environment>
我们可以如下为每个环境创建一个 SqlSessionFactory:
inputStream = Resources.getResourceAsStream("mybatis-config.xml");
defaultSqlSessionFactory = 
new SqlSessionFactoryBuilder().
build(inputStream);
cartSqlSessionFactory = 
new SqlSessionFactoryBuilder().build(inputStream, "shoppingcart");
reportSqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream,"reports");
3.类型别名typeAliases
SQLMapper 配置文件中,对于 resultType parameterType 属性值,我们需要使用JavaBean 的完全限定名。 
resultType为实体类的路径

4.SQL 映射定义Mappers
Mapper XML 文件中包含的SQL 映射语句将会被应用通过使用其statementid 来执行。我们需要在mybatisconfig.xml 文件中配置SQL Mapper 文件的位置。
XML Code
<mappers>
<mapper resource
="com/mybatis3/mappers/StudentMapper.xml"/>
<mapper url
="file:///D:/mybatisdemo/app/mappers/TutorMapper.xml"/>
<mapper class
="com.mybatis3.mappers.TutorMapper"/>
<package name
="com.mybatis3.mappers"/>
</mappers>
5.environment
MyBatis 支持配置多个 dataSource 环境,可以将应用部署到不同的环境上,如DEV(开发环境)TEST(测试换将),
QA(质量评估环境),UAT(用户验收环境),PRODUCTION(生产环境),可以通过将默认environment 值设置成想要的
environment id



以上每一个<mapper> 标签的属性有助于从不同类型的资源中加载映射mapper
resource 属性用来指定在 classpath 中的 mapper 文件。
url 属性用来通过完全文件系统路径或者web URL 地址来指向 mapper 文件
class 属性用来指向一个mapper 接口
package 属性用来指向可以找到 Mapper 接口的包名