本文主要讲几个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=123456orcl.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.xmlurl:引用网路路径或者磁盘路径下的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 configurationPUBLIC "-//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. 字体系列之字体复合属性(CSS、HTML)

    字体系列之字体复合属性(CSS.HTML) <!DOCTYPE html> <html lang="en"> <head><meta ch ...

  2. 《PBI系列 天猫国际 搜索 属性分析 04》花随花心著

    商业智能数据分析师,花随花心. 大家好,我是花老师.今天,这堂课是整个PBI系列的第04课,核心关键词正如本文名字一样,天猫国际.搜索.属性分析.当然,这么讲肯定是不好理解的,不过没关系,稍后我会好好 ...

  3. ifcfg系列命令配置网络属性

    Linux网络属性配置: 将linux接到网络中的方式: 1. 本地通信:配置IP/NATMASK 2.跨网络通信:配置路由(网关) 3.基于主机名通信:配置DNS服务器地址(域名解析),linux可 ...

  4. Runtime 系列 3-- 给 category 添加属性

    Associated Objects的作用 Associated Objects的作用一般有如下三种: 为系统类添加私有变量以帮助实现细节: 为系统类添加公有属性: 为 KVO 创建一个关联的观察者. ...

  5. springboot2.0系列(二):配置属性

    为什么80%的码农都做不了架构师?>>>    前言 Spring Boot中核心思想:约定优于配置.那到底什么是约定优于配置? 约定优于配置(convention over con ...

  6. 浅谈Dynamic 关键字系列之二:调用属性,方法,字段

    新建类Product: class Product {public string name;public int Id { get; set; }public void ShowProduct(){C ...

  7. Spring Boot系列四 Spring @Value 属性注入使用总结一

    @Value注入 不通过配置文件的注入属性的情况 通过@Value将外部的值动态注入到Bean中,使用的情况有: 注入普通字符串 注入操作系统属性 注入表达式结果 注入其他Bean属性:注入beanI ...

  8. 把combobox控件添加到datagridview控件中_自定义系列:控件属性添加

    本文讲述如何在布局文件中添加原本所不具备的属性,以PagerTabStrip控件为例,增加textColor与textSize属性. 一.属性声明 新建res/values下的attrs.xml文件( ...

  9. MyBatis3系列__05查询补充resultMap与resultType区别

    1.查询补充 当你查询一条记录并且是简单查询时,情况相对简单,可以参考以下的例子: public Employee getEmpById(Integer id); 对应的xml文件中: <sel ...

最新文章

  1. android微博客户端下载,iBeebo微博客户端
  2. 详解vue 路由跳转四种方式 (带参数)
  3. python推荐系统-基于Python的推荐系统的设计与实现
  4. pdf转换为word问题
  5. 对Emlog 6.0 Beta的完整代码审计过程
  6. 圣思园java.doc_北京圣思园java课堂笔记.doc
  7. html定义盒子距离顶底端像素,css - 盒子内外边距
  8. python本地发布到服务器_使用pycharm在本地开发并实时同步到服务器
  9. 用C#打造QQ对战平台挤房器
  10. QAM信号的调制解调原理
  11. 软件外包还是自建团队
  12. python 移动平均线_Python中的SMA(短期移动平均线)
  13. 【虚拟机】无法连接虚拟设备 sata0:0,因为主机上没有相应的设备。 您要在每次开启此虚拟机时都尝试连接此虚拟设备吗?
  14. python socket基于TCP/IP协议实现多人聊天室
  15. 截图与贴图神器:Snipaste
  16. (转)Kangle配置文件
  17. c语言trim库函数用法,c语言编写trim 函数
  18. 会签是什么,何时使用会签,如何设计使用会签
  19. 弃掉Android 4.4获取系统图片出错之坑,实现 自定义相册库
  20. 2023秋招—大数据开发面经—网易云音乐

热门文章

  1. Java基础教程:Lambda表达式
  2. CVE-2016-1240 Tomcat 服务本地提权漏洞
  3. Openssl verify命令
  4. 字符串在JVM中如何存放 及常量池技术
  5. linux 上自动执行caffe,linux下caffe的命令运行脚本
  6. 二分查找的平均查找长度_二分查找(折半查找)代码实现
  7. tomcat相关问题汇总
  8. android os FileUriExposedException file storage emulated 0 test tx
  9. miniUI mini-monthpicker ie8兼容性问题
  10. 算法与数据结构(九) 图论:最短路径问题