Mybatis-学习笔记(2)Mybatis配置文件
3》typeAliases:类型别名。2种指定方式。
1>给某个类起个别名
<typeAliases>
<typeAlias type="com.lfy.bean.Emp" alias="Emp"/>
</typeAliases>
2>指定包名
<!-- Mybatis将会搜索包名下需要的Java Bean,包下的Java Bean在没有注解的情况下,
会使用Bean的首字母小写来限定类名作为它的别名,如com.lfy.bean.Emp的别名
为emp;如果有注解别名,则以注解值为最终别名。 -->
<typeAliases>
<package name="com.lfy.bean.Emp"/>
</typeAliases>
@Alias("emp")
public class Emp{
...
}
Mybatis还为许多常见的类型内建了别名:
4》类型处理器
如何使用:
5》ObjectFactory对象工厂
Mybatis每次创建结果对象的新实例时,都会使用一个对象工厂实例来完成。默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认构造方法,要么在参数映射存在的时候通过参数构造方法实例化。如果想覆盖对象工厂的默认行为,则可以通过创建自己的对象工厂来实现。
public class ExampleObjectFactory extends DefaultObjectFactory{
//处理默认构造器
public Object create(Class type){
return super.create(type);
}
//处理带参构造器
public Object create(Class type,List<Class> contructorArgTypes,List<Object> constructorArgs){
return super.create(type,contructorArgTypes,constructorArgs);
}
//配置ObjectFactory
public void setProperties(Properties properties){
super.setProperties(properties);
} public <T> boolean isCollection(Class<T> type){
return Collection.class.isAssignableFrom(type);
}
}
配置文件中配置自定义的对象工厂:
<objectFactory type="com.lfy.factory.ExcempleObjectFactory">
<property name="someProperty" value="100"/>
</objectFactory>
6》environments配置环境:事务管理配置、数据源配置。
Mybatis的环境配置,实际是数据源的环境配置。可以将Mybatis配置到开发、测试、生产等多种环境的数据源,但SqlSessionFactory实例只能选择一个环境,即每个SqlSessionFactory对应一个数据库。如果想连接两个以上的数据库,只能创建多个SqlSessionFactory。
<environments default="oracle">
<environment id="oracle">
<!-- 指定事务管理类型,type="JDBC"指直接使用JDBC的提交与回滚 -->
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" />
<property name="username" value="scott" />
<property name="password" value="12345" />
</dataSource>
</environment>
<environment id="mysql">
<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/world" />
<property name="username" value="root" />
<property name="password" value="12345" />
</dataSource>
</environment>
</environments>
1)事务管理器有2种:
1>JDBC:直接使用了JDBC的提交和回滚设置,依赖于从数据源得到的连接来管理事务范围。
2>MANAGED:这个配置几乎没做什么。它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(如JAEE应用服务器的上下文)。默认情况下它会关闭连接,可以将closeConnection属性设置为false来阻止它默认的关闭行为。
<transactionManager type="MANAGED" >
<property name="closeConnection" value="false"/>
</transactionManager>
如果开发者使用Spring+Mybatis,则没有必要配置事务管理器,因为Spring模块会使用自带的管理器来覆盖前面的配置。
2)数据源配置,有3中数据源类型:
1>UNPOOLED:这种方式是每次被请求时打开和关闭连接。需要配置的5种连接属性:
2>POOLED:这种数据源的实现利用“池”的概念将JDBC连接对象组织起来,避免类创建新的连接实例时所必需的初始化和认证时间。这是一种使得并发Web应用快速响应请求的流行方式。还有更多的属性可以配置:
3>JNDI:这个数据源的实现是为了能在如EJB或应用服务器这类容器中使用。容器可以集中或在外部配置数据源,然后放置一个JNDI上下文的引用。它有两个属性:
举个例子:
<dataSource type="JNDI">
<property name="initial_context" value="java:/comp/env"/>
<property name="data_source" value="some_dataSource">
</dataSource>
7》mapper映射器
主要是告诉Mybatis去哪里找映射sql。
<mappers>
<!-- 注册empMapper.xml文件-->
<mapper resource="com/lfy/mapping/empMapper.xml"/>
<mapper class="com.lfy.mapping.EmpMapper"/>
</mappers>
Mybatis-学习笔记(2)Mybatis配置文件的更多相关文章
- Mybatis学习笔记(一) —— mybatis介绍
一.Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名 ...
- Mybatis学习笔记(八) —— Mybatis整合spring
一.整合思路 1.SqlSessionFactory对象应该放到spring容器中作为单例存在. 2.传统dao的开发方式中,应该从spring容器中获得sqlsession对象. 3.Mapper代 ...
- MyBatis学习笔记(一)——MyBatis快速入门
转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4261895.html 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优 ...
- 1.2(Mybatis学习笔记)Mybatis核心配置
一.Mybatis核心对象 1.1SqlSeesionFactory SqlSessionFactory主要作用是创建时SqlSession. SqlSessionFactory可通过SqlSessi ...
- Mybatis学习笔记(九) —— Mybatis逆向工程
一.什么是Mybatis逆向工程? 简单的解释就是通过数据库中的单表,自动生成java代码. 我们平时在使用Mabatis框架进行Web应用开发的过程中,需要根据数据库表编写对应的Pojo类和Mapp ...
- Mybatis学习笔记(二) —— mybatis入门程序
一.mybatis下载 mybaits的代码由github.com管理,下载地址:https://github.com/mybatis/mybatis-3/releases 下载完后的目录结构: 二. ...
- MyBatis学习笔记二:MyBatis生产中使用环境搭建
这里是在上一个环境的基础上修改的,这里就不在给出所有的配置,只给出哪里修改的配置 1.修改POJO对象为注解方式 2.创建Dao层接口 package com.orange.dao; import c ...
- MyBatis学习笔记一:MyBatis最简单的环境搭建
MyBatis的最简单环境的搭建,使用xml配置,用来理解后面的复杂配置做基础 1.环境目录树(导入mybatis-3.4.1.jar包即可,这里是为后面的环境最准备使用了web项目,如果只是做 my ...
- MyBatis学习笔记(七)——Mybatis缓存
转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4270403.html 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓 ...
- Mybatis学习笔记导航
Mybatis小白快速入门 简介 本人是一个Java学习者,最近才开始在博客园上分享自己的学习经验,同时帮助那些想要学习的uu们,相关学习视频在小破站的狂神说,狂神真的是我学习到现在觉得最GAN的老师 ...
随机推荐
- GUI学习之二十五——QFontDialog学习总结
今天学习字体对话框——QFontDialog()控件. QFontDialog()是继承自QDialog()的一个子类,用来选择给定的字体(包括字体.字号.样式等) 一.构造函数 QFontDialo ...
- 浅析拯救小矮人的 nlogn 算法及其证明
浅析拯救小矮人的 nlogn 算法及其证明 题型简介: 有 $ n $ 个人,第 $ i $ 个人身高 $ a_i $ 手长 $ b_i $ ,他们为了从一个高为 $ H $ 的洞中出去,决定搭人梯. ...
- php array_push()函数 语法
php array_push()函数 语法 作用:向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度.博智达 语法:array_push(array,value1,value2.. ...
- 洛谷P2258 子矩阵——题解
题目传送 表示一开始也是一脸懵逼,虽然想到了DP,但面对多变的状态不知从何转移及怎么合理记录状态.之(借鉴大佬思路)后,豁然开朗,于是在AC后分享一下题解. 发现数据范围出奇地小,不过越是小的数据范围 ...
- PHP快速教程
1.本文主要针对有C语言(或其他编程语言)基础的人快速学习PHP的,所以不会对一些基础知识作过多解释,比如“=”是赋值不是等于. 2.本文适合已学过一门编程语言,想要快速入门PHP的人. 3.基本上看 ...
- CG-CTF | SQL Injection
没错我又偷偷写了道web[并查集好难啊,脑阔疼QAQ] http://chinalover.sinaapp.com/web15/index.php?username=%5C&password= ...
- 普通用户sudo权限
需求: 1>创建一个saipu普通用户,不允许使用 rm 和 passwd root 和 sudo su - root 命令,其他命令均允许且 sudo 时不用输入密码 2>创建一个lwd ...
- 【30分钟学完】canvas动画|游戏基础(2):从零开始画画
前言 上篇主要是理论的概述,本篇会多些实践,来讲讲canvas的基础用法,并包含一些基础三角函数的应用,推荐没有canvas基础的朋友阅读,熟悉的朋友可以跳过. 本人能力有限,欢迎牛人共同讨论,批评指 ...
- css基础—字体那些事
css基础-字体那些事 1. 首先讲字的大小样式等 字体大小 font-size: 40px; 文字字体 font-family: "宋体",Arial; 文字样式 font-st ...
- grep的用法,小技巧,模板中含有\t时:grep -P "^\t" file
linux中grep和find的用法区别 本文章详细的介绍了关于在linux中的grep和find两个命令的用法介绍,以及后面总结了它们两年用法区别哦. 先我们来介绍一下关于grep用法和一些小注意事 ...