本文主要讲几个xml配置属性: 其都写在mybatis配置文件中

1.properties属性:其作用主要是可以动态引进外部的配置文件中的相关配置

       resource:引入类路径下的资源
url:引入网络路径或者磁盘路径下的资源

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

并且在类路径下创建对应的配置文件dbconfig.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.1.61:3306/mybatis_learn
jdbc.username=root
jdbc.password=123456 orcl.driver=oracle.jdbc.OracleDriver
orcl.url=jdbc:oracle:thin:@localhost:1521:orcl
orcl.username=scott
orcl.password=123456

然后将mybatis-config.xml中的数据库配置进行更改即可:

<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>

如果属性在不只一个地方进行了配置,那么 MyBatis 将按照下面的顺序来加载

  • 在 properties 元素体内指定的属性首先被读取。
  • 然后根据 properties 元素中的 resource 属性读取类路径下属性文件或根据 url 属性指定的路径读取属性文件,并覆盖已读取的同名属性。
  • 最后读取作为方法参数传递的属性,并覆盖已读取的同名属性。

    总结:通过方法参数传递的属性具有最高优先级,resource/url 属性中指定的配置文件次之,最低优先级的是 properties 属性中指定的属性。

2.settings设置:

该系列设置主要用来改变mybatis的行为,是极其重要的设置。截取几个属性展示如下:

//在这里 我们设置了开启驼峰命名,这样子在保证命名规范的情况下就无需再在sql中使用别名了
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

3.typeAliases:别名处理器

1.typeAlias:为某个java类型起别名

  type:指定要起别名的类型全类名;默认别名就是类名小写;
alias:指定新的别名

2.批量起别名时,只需定义JavaBean的包名即可

    package:为某个包下的所有类批量起别名
name:包名
批量起别名的情况下,使用@Alias注解为某个类型指定新的别名

这样,就可以在sql映射文件中将resultType写类的别名即可(不区分大小写);当然,还是推荐使用全类名的方式,便于定位。

4.typeHandlers:类处理器:将Java中的类和数据库的类型做映射,先不介绍

5.environments: 环境配置,可以配置生产环境和开发环境.default:指定一种环境,可以快速切换。

   environment:配置一个具体的环境信息,必须有两个标签:
** id;唯一标识;transactionManager:事务管理器;**
其中:type:事务管理器类型;
JDBC(JdbcTransactionFactory):直接使用JDBC的事务管理
MANAGED(ManagedTransactionFactory)
自定义事务管理器:实现TransactionFactory接口.type指定为全类名
dataSource:数据源;
type:数据源类型;UNPOOLED(UnpooledDataSourceFactory)
|POOLED(PooledDataSourceFactory)
|JNDI(JndiDataSourceFactory)
自定义数据源:实现DataSourceFactory接口,type是全类名

6.databaseIdProvider:支持多数据库厂商的

mybatis可以支持你配置多个数据库,配置方式与环境配置类似:
type="DB_VENDOR":VendorDatabaseIdProvider,作用就是得到数据库厂商的标识(驱动
getDatabaseProductName()),mybatis就能根据数据库厂商标识来执行不同的sql;
MySQL,Oracle,SQL Server,xxxx

7.mappers:映射器,绑定你自己写的sql配置文件

   mapper:注册一个sql映射
注册配置文件
resource:引用类路径下的sql映射文件mybatis/mapper/EmployeeMapper.xml
url:引用网路路径或者磁盘路径下的sql映射文件file:///var/mappers/AuthorMapper.xml
注册接口
class:引用(注册)接口,
1、有sql映射文件,映射文件名必须和接口同名,并且放在与接口同一目录下;
2、没有sql映射文件,所有的sql都是利用注解写在接口上;
推荐:
比较重要的,复杂的Dao接口我们来写sql映射文件
不重要,简单的Dao接口为了开发快速可以使用注解;

最后,贴一下代码:

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="dbconfig.properties"/> <settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings> <typeAliases>
<!--<typeAlias type="com.mybatis.com.mybatis.learn.dao.bean.Employee" alias="emp"></typeAlias>-->
<package name="com.mybatis.learn.bean"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
<environment id="produce">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments> <databaseIdProvider type="DB_VENDOR">
<!-- 为不同的数据库厂商起别名 -->
<property name="MySQL" value="mysql"/>
<property name="Oracle" value="oracle"/>
<property name="SQL Server" value="sqlserver"/>
</databaseIdProvider> <!-- 将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中 -->
<mappers>
<!--<mapper resource="EmployeeMapper.xml"/>-->
<!--<mapper class="com.mybatis.com.mybatis.learn.dao.dao.EmployeeAnnotationMapper"></mapper>-->
<package name="com.mybatis.learn.dao"/>
</mappers>
</configuration>

注解Mapper:

package com.mybatis.learn.dao;

import com.mybatis.learn.bean.Employee;
import org.apache.ibatis.annotations.Select; public interface EmployeeAnnotationMapper {
@Select(" select id, last_name lastName, gender, email from tbl_employee where id = #{id}")
public Employee getEmpByEmpId(Integer id);
}

MyBatis3系列__03几个常用的属性配置的更多相关文章

  1. SpringBoot常用应用属性配置表

    #========================================= #COMMON SPRING BOOT PROPERTIES # #This sample file is pro ...

  2. css3系列之text的常用属性 和 Multi-column(多列)

    text(文本) white-space: word-break word-wrap/overflow-wrap text-align: word-spacing letter-spacing tex ...

  3. css常用文本属性

    [CSS常用文本属性] 1. 字体.字号类: ① font-weight: 字体粗细. bold-加粗.normal-正常.lighter-细体 也可以使用100-900数值,400表示normal, ...

  4. CSS常用样式属性

    1.CSS字体和文本相关属性 属性 font-family 规定文本的字体系列,比如:“serif” ''sans-serif" font-size 规定文本的字体尺寸 font-style ...

  5. ES6系列之项目中常用的新特性

    ES6系列之项目中常用的新特性 ES6常用特性 平时项目开发中灵活运用ES6+语法可以让开发者减少很多开发时间,提高工作效率.ES6版本提供了很多新的特性,接下来我列举项目中常用的ES6+的特性: l ...

  6. 了解screen对象的常用视图属性

    前面的话 screen对象基本上只用来表明客户端的能力,其中包括浏览器窗口外部的显示器的信息,如像素高度和宽度等.每个浏览器中的screen对象都包含着各不相同的属性.本文将详细介绍screen对象的 ...

  7. 【转】MySQL数据类型和常用字段属性总结

    来源:http://www.jb51.net/article/55853.htm 这里先总结数据类型.MySQL中的数据类型大的方面来分,可以分为:日期和时间.数值,以及字符串.下面就分开来进行总结. ...

  8. MySQL数据类型和常用字段属性总结

    前言 好比C++中,定义int类型需要多少字节,定义double类型需要多少字节一样,MySQL对表每个列中的数据也会实行严格控制,这是数据驱动应用程序成功的关键.MySQL提供了一组可以赋给表中各个 ...

  9. 12-27cell常用的属性

    1.创建cell //    创建一个cell并且设置cell的风格 UITableViewCell *cell  = [[UITableViewCell alloc]initWithStyle:UI ...

随机推荐

  1. 视频显著性检测-----Predicting Video Saliency using Object-to-Motion CNN and Two-layer Convolutional LSTM

    帧内显著性检测: 将卷积网络的多层特征进行组合通过unsampling 得到粗显著性预测: 帧间显著性检测: (粗检测结果+新卷积网络的特征图,最后+之前卷积网络的卷积特征输入到LSTM中)进行预测. ...

  2. 转载:C++中堆和栈的区别

    C++中堆和栈的区别,自由存储区.全局/静态存储区和常量存储区     文章来自一个论坛里的回帖,哪个论坛记不得了!    在C++中,内存分成5个区,他们分别是堆.栈.自由存储区.全局/静态存储区和 ...

  3. AB PLC首次IP地址如何分配

    AB PLC首次IP地址如何分配,这里介绍的方法是针对CompactLogix和ControlLogix控制器 一.准备工作 AB PLC控制器一台,本文以5069-L330ER为例,将其通电: 笔记 ...

  4. 【1】学习C++时,一些零散知识点01

    1.编程理念 学习从学习完C后,接触了C++,最重要的便是编程理念的转变.C缩重视的是结构化编程,面对一个较大的程序,就将他分解成小型.便于管理的任务,如果分解后的任务还是偏难过大的话,那将这个任务继 ...

  5. HttpUtility.UrlEncode()关于空格的编码问题

    因为 HttpUtility.UrlEncode 在 Encode 的时候, 将空格转换成加号"+", 在 Decode 的时候将"+"号转为空格, 但是浏览器 ...

  6. Leetcode#500. Keyboard Row(键盘行)

    题目描述 给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词.键盘如下图所示. 示例1: 输入: ["Hello", "Alaska", &quo ...

  7. QQ小橙团队排表机器人使用方法

    版权声明 别瞎JB玩坏了...一个群一个群导入很累的 联系QQ: 986859110 目录 网页版使用说明 登录和权限操作 团队和模板选择操作 模板使用案例 团队面板操作 老板管理 人员管理 QQ群机 ...

  8. L2-008 最长对称子串 (25 分) (模拟)

    链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805067704549376 题目: 对给定的字符串,本题要求你输出 ...

  9. ZYNQ基础知识一

    参考:UG1181 Zynq-7000 Programable Soc Architrcture Porting Quick Start Guide                           ...

  10. Python字符串的两种方式——百分号方式,format的方式

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...