mybatis 学习二 conf xml 配置信息
xml映射配置文件
* settings 设置
* typeAliases 类型命名
* typeHandlers 类型处理器
* objectFactory 对象工厂
* plugins 插件
* environments 环境
* environment 环境变量
* transactionManager 事务管理器
1,properties 属性
<property name="driver" value="xxxxxxxxx"/>
2,settings 设置
<settings>
<!-- 默认true 二级缓存是否可以开启,true代表可以开启,需要开启的话就在mapperxml里面增加cache标签即可开启,如果不加,那么那个mapper就不开启 -->
<setting name="cacheEnabled" value="true"/>
<!--默认false 懒加载开关,如果true那么如果一个所有关联的对象都会延迟加载,用到的时候才去加载,如果false,那么就直接查询出来了 但是注意开启的时候吧cgligjar包给弄过来-->
<setting name="lazyLoadingEnabled" value="true"/>
<!-- 默认true 有懒加载属性的加载方式,比如class类中有student,teacher两个对象属性,并且class开启懒加载,如果这个为true的话,当我只使用student对象的时候,整个class类都会
被加载出来,但是这个为false的话,就只会架子啊student对象,teacher对象不加载 -->
<setting name="aggressiveLazyLoading" value="false"/>
</settings>
3,typeAliases 类型命名
<typeAliases>
<package name="com.cn.liubb"/>
</typeAliases> <typeAliases>
<typeAlias alias="Author" type="domain.blog.Author"/>
</typeAliases>
并且mybatis已经为许多常见的 Java 类型内建了相应的类型别名。它们都是大小写不敏感的,需要注意的是由基本类型名称重复导致的特殊处理。比如 string》String之类的
4,typeHandlers 类型处理器
public class BooleanHandler implements TypeHandler<Boolean> {
@Override
public void setParameter(PreparedStatement ps, int i, Boolean parameter,
JdbcType jdbcType) throws SQLException {
if(parameter){
ps.setString(i, "Y");
}else{
ps.setString(i, "N");
}
}
@Override
public Boolean getResult(ResultSet rs, String columnName)
throws SQLException {
String a = rs.getString(columnName);
return "Y".equals(a)?true:false;
}
@Override
public Boolean getResult(ResultSet rs, int columnIndex) throws SQLException {
return "Y".equals(rs.getString(columnIndex))?true:false;
}
@Override
public Boolean getResult(CallableStatement cs, int columnIndex)
throws SQLException {
return "Y".equals(cs.getString(columnIndex))?true:false;
}
}
将每个方法里面多做一层转换即可实现自己要的类型。
<typeHandlers>
<typeHandler handler="com.cn.liubb.BooleanHandler" jdbcType="VARCHAR" javaType="boolean"/>
</typeHandlers>
并且需要在mapperxml里指定一下才行
<resultMap type="User" id="usermap">
<result column="id" property="id"/>
<result column="name" property="name"/>
<result column="age" property="age"/>
<result column="hiredate" property="hiredate"/>
<result column="flag" property="flag" typeHandler="com.cn.liubb.BooleanHandler"/>
</resultMap>
<select id="getAllUsers" resultMap="usermap">
select * from users
</select>
5,对象工厂
每一次MyBatis创建一个结果对象的实例,都是用ObjectFactory来实现的。默认的对象工厂(我把ObjectFactory称为对象工厂)做的很少,只是通过类的默认构造方法来实例化类,或者通过一个有参构造方法如果参数映射存在。如果想要覆盖默认的对象工厂,你可以创建自己的类。
6,插件
7,环境
<!-- 环境里可以配置多个db信息,这里有个默认的即可 -->
<environments default="development"> <!-- 每一个配置的环境都有一个id 这个id在创建session工厂的时候会用到 sqlSessionFactoryBuilder.build(reader, environment);-->
<environment id="development"> <!-- 配置数据库连接信息 JDBC – 这个配置就是直接使用了 JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务范围。
MANAGED – 这个配置几乎没做什么。它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。
默认情况下它会关闭连接,然而一些容器并不希望这样,因此需要将 closeConnection 属性设置为 false 来阻止它默认的关闭行为 -->
<transactionManager type="JDBC" /> <!-- 这里配置使用数据源的几种类型 UNPOOLED 不适用连接池,来一个链接一个用完了断掉一个,POOLED 使用连接池,JNDI 有的web容器自己可以配置数据源 这个和他对应id一样就行 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}" />
<property name="username" value="${name}" />
<property name="password" value="${password}" />
</dataSource>
</environment> <environment id="product">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}" />
<property name="username" value="aaaa" />
<property name="password" value="aaaa" />
</dataSource>
</environment>
</environments>
使用的时候如下代码:
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
SqlSessionFactory sessionFactory2 = new SqlSessionFactoryBuilder().build(is1,"product");
8,mapper信息
<mappers>
<mapper resource="mapperxml/userMapper.xml"/>
<mapper resource="mapperxml/classMapper.xml"/>
<mapper class="com.cn.liubb.UserMapperI"/>
</mappers>
mybatis 学习二 conf xml 配置信息的更多相关文章
- mybatis 学习三 mapper xml 配置信息
mapper xml 映射文件 1,select 标签 简单是用就这样,其中resultType 代表从这条语句中返回的期望类型的类的完全限定名或别名.也可以使用resultMap对应的id ...
- ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET MVC 学习笔记-6.异步控制器 ASP.NET MVC 学习笔记-5.Controller与View的数据传递 ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用 ASP.NET MVC 学习笔记-3.面向对象设计原则
ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettin ...
- mybatis使用注解替代xml配置,动态生成Sql
mybatis使用注解替代xml配置时,遇到判断条件是否为null或者为空时,@Select很难搞定,不知道怎么办? mybatis3中增加了使用注解来配置Mapper的新特性,使用 SelectPr ...
- MyBatis应用程序根据XML配置文件创建SqlSessionFactory
MyBatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory在根据配置,配置来源于两个地方,一处是配置文件,一处是Java代码的注解,获取一个Sq ...
- mybatis 学习二 MyBatis简介与配置MyBatis+Spring+MySql
1.2.2建立MySql数据库 在C:\Program Files\MySQL\MySQL Server 5.7\bin下面: 首先连接MySQL: mysql -u root -p ...
- (原创)mybatis学习二,spring和mybatis的融合
mybatis学习一夯实基础 上文介绍了mybatis的相关知识,这一节主要来介绍mybaits和spring的融合 一,环境搭建 1,jar包下载,下载路径为jar包 2,将包导入到java工程中 ...
- MyBatis学习笔记-1 Idea配置MyBatis
一.创建工程 1.创建Java项目,勾选Java EE,Next,修改名称,Finish 2.在WEB-INF下创建两个文件夹classes和lib,分别用作输出文件目录和库文件目录 3.File-P ...
- MyBatis学习(二)---数据表之间关联
想要了解MyBatis基础的朋友可以通过传送门: MyBatis学习(一)---配置文件,Mapper接口和动态SQL http://www.cnblogs.com/ghq120/p/8322302. ...
- spring 5.x 系列第5篇 —— 整合 mybatis + druid 连接池 (xml配置方式)
源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 项目目录结构 1.创建maven工程,除了Spring基本依赖外,还需要导 ...
随机推荐
- Excel 文件下载
INCLUDE OLE2INCL * ALV输出 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PRO ...
- C语言程序设计50例(经典收藏)之1
题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. #includ ...
- 读paper:Deep Convolutional Neural Network using Triplets of Faces, Deep Ensemble, andScore-level Fusion for Face Recognition
今天给大家带来一篇来自CVPR 2017关于人脸识别的文章. 文章题目:Deep Convolutional Neural Network using Triplets of Faces, Deep ...
- virtualbox 桥接 (转)
virtualbox 自带的网络配置模式要么选择host-only,要么bridge,对于经常使用virtualbox的同学一定想要像vmware一样的nat配置,既可以让host访问guest,又可 ...
- 通过设置PHPSESSID保存到cookie实现免登录
$cookieParams = session_get_cookie_params(); session_set_cookie_params( 3600,// 设置sessionID在cookie中保 ...
- 20165101刘天野 2017-2018-2 《Java程序设计》第2周学习总结
# 20165101刘天野 2017-2018-2 <Java程序设计>第2周学习总结 教材学习内容总结 基本数据类型 逻辑类型:boolean 整型:byte.short.int.lon ...
- linux 压缩和归档
在linux下有几种压缩方式:gzip.bzip2.xz.zip gzip 压缩文件以.gz结尾, 只能压缩文件,不能压缩目录 用法: gzip:/path/to/somefile 用来压缩,完成 ...
- python第三篇:python、flask关系映射
python中关系映射主要包括三种:一对多关系映射.一对一关系映射.多对多关系映射. 一对多关系映射 一方:Student(学生) 添加关联属性和反向引用 多方:Article(文章) 添加外键关联 ...
- Android Studio 技巧备忘
1.日志输入匹配 在日志输入框,点击Edit Filter Configuration 输入syso,并匹配规则 这样就过滤出自己想要的日志
- Oracle忘记用户名密码
一.oracle 11g登录服务开启 成功安装Oracle 11g后,共有7个服务,这七个服务的含义分别为:1. Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写 ...