标签:from 继承 serve apache stat 全局 last 时间 nic
Mybatis的全局配置文件包含了影响Mybatis行为甚深的设置(settings)和属性(properties)信息。
文档的顶层结构如下:
Mybatis可以使用properties标签来引入外部的properties属性配置文件中的内容。
属性:
示例:
db.properties
jdbc.url=jdbc:mysql://192.168.134.100:3306/test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.username=root
jdbc.password=123456
<?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>
<!--
Mybatis可以使用properties标签来引入外部properties配置文件的内容
resource属性:引入类路径下的配置文件
url属性:引入网络或磁盘上的配置文件
-->
<properties resource="db.properties" ></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 使用${}引入db.properties属性文件中的内容 -->
<property name="driver" value="${jdbc.driverClass}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/sunxiaping/mapper/EmployeeMapper.xml"/>
</mappers>
</configuration>
这是Mybatis中极为重要的调整设置,它们会改变Mybatis的运行时行为。
示例:
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>
<!--
Mybatis可以使用properties标签来引入外部properties配置文件的内容
resource属性:引入类路径下的配置文件
url属性:引入网络或磁盘上的配置文件
-->
<properties resource="db.properties" ></properties>
<settings>
<!--
开启自动驼峰命名规则映射,可以将诸如last_name封装为lastName。
-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 使用${}引入db.properties属性文件中的内容 -->
<property name="driver" value="${jdbc.driverClass}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/sunxiaping/mapper/EmployeeMapper.xml"/>
</mappers>
</configuration>
<?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>
<!--
Mybatis可以使用properties标签来引入外部properties配置文件的内容
resource属性:引入类路径下的配置文件
url属性:引入网络或磁盘上的配置文件
-->
<properties resource="db.properties" ></properties>
<settings>
<!-- 开启自动驼峰命名规则映射 -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<typeAliases>
<!--
类型别名是为Java类型设置一个短的名字,可以方便我们引用某个类
-->
<typeAlias type="com.sunxiaping.domain.Employee" alias="emp"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 使用${}引入db.properties属性文件中的内容 -->
<property name="driver" value="${jdbc.driverClass}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/sunxiaping/mapper/EmployeeMapper.xml"/>
</mappers>
</configuration>
<?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>
<!--
Mybatis可以使用properties标签来引入外部properties配置文件的内容
resource属性:引入类路径下的配置文件
url属性:引入网络或磁盘上的配置文件
-->
<properties resource="db.properties" ></properties>
<settings>
<!-- 开启自动驼峰命名规则映射 -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<typeAliases>
<!--
通过package标签的name属性指定需要生成别名的包,默认会创建一个别名,就是类名的小写
-->
<package name="com.sunxiaping"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 使用${}引入db.properties属性文件中的内容 -->
<property name="driver" value="${jdbc.driverClass}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/sunxiaping/mapper/EmployeeMapper.xml"/>
</mappers>
</configuration>
package com.sunxiaping.domain;
import org.apache.ibatis.type.Alias;
@Alias("emp")
public class Employee {
private Integer id;
private String lastName;
private String email;
private String gender;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Employee{" +
"id=" + id +
", lastName=‘" + lastName + ‘\‘‘ +
", email=‘" + email + ‘\‘‘ +
", gender=‘" + gender + ‘\‘‘ +
‘}‘;
}
}
别名 | 映射的类型 |
---|---|
_byte | byte |
_long | long |
_short | short |
_int | int |
_integer | int |
_double | double |
_float | float |
_boolean | boolean |
string | String |
byte | Byte |
long | Long |
short | Short |
int | Integer |
integer | Integer |
double | Double |
float | Float |
boolean | Boolean |
date | Date |
decimal | BigDecimal |
bigdecimal | BigDecimal |
object | Object |
map | Map |
hashmap | HashMap |
list | List |
arraylist | ArrayList |
collection | Collection |
类型处理器 | Java类型 | JDBC类型 |
---|---|---|
BooleanTypeHandler | java.lang.Boolean,boolean | 数据库兼容的BOOLEAN |
ByteTypeHandler | java.lang.Byte,byte | 数据库兼容的NUMERIC或BYTE |
ShortTypeHandler | java.lang.Short,short | 数据库兼容的NUMERIC或SHROT INTEGER |
IntegerTypeHandler | java.lang.Integer,int | 数据库兼容的NUMERIC或INTEGER |
LongTypeHandler | java.lang.Long,long | 数据库兼容的NUMERIC或Long INTEGER |
FloatTypeHandler | java.lang.Float,float | 数据库兼容的NUMERIC或FLOAT |
DoubleTypeHandler | java.lang.Double,double | 数据库兼容的NUMERIC或DOUBLE |
BigDecimalTypeHandler | java.lang.BigDecimal | 数据库兼容的NUMERIC或DECIMAL |
StringTypeHandler | java.lang.String | CHAR,VARCHAR |
日期类型的处理:JDK1.8以前一直是个头疼的问题。我们通常使用JSR310规范领导者Stephen Colebourne创建的Joda-Time来操作。JDK1.8已经实现全部的JST310规范了。日期时间处理上,我们可以使用Mybatis基于JSR310编写的各种日期时间类型处理器。Mybatis3.4以前的版本需要我们手动注册这些处理器,以后的版本都是自动注册的。
自定义类型处理器:我们可以重写类型处理器或者创建自己的类型处理器来处理器不支持的或非标准的类型。
Executor(update, query, flushStatements, commit, rollback,getTransaction, close, isClosed)
ParameterHandler(getParameterObject, setParameters)
ResultSetHandler(handleResultSets, handleOutputParameters)
StatementHandler(prepare, parameterize, batch, update, query)
Mybatis可以配置多种环境,比如开发、测试和生产环境需要有不同的配置。
每种环境使用一个environment标签进行配置并指定唯一标识符。
可以通过environments标签中的default属性指定一个环境的标识符来快速的切换环境。
environment:指定具体环境
示例:
<?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>
<!--
Mybatis可以使用properties标签来引入外部properties配置文件的内容
resource属性:引入类路径下的配置文件
url属性:引入网络或磁盘上的配置文件
-->
<properties resource="db.properties" ></properties>
<settings>
<!-- 开启自动驼峰命名规则映射 -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<typeAliases>
<!--
通过package标签的name指定需要生成别名的包,默认会创建一个别名,就是类名的小写
-->
<package name="com.sunxiaping"/>
</typeAliases>
<!--
environments,Mybatis可以配置多种环境
environment:配置一个具体的环境信息;必须有transactionManager和dataSource标签。属性id代表当前环境的标识,可以达到快速切换环境
transactionManager:事务管理器
type:事务管理器的类型,有JDBC和MANAGED两种类型,还可以自定义事务管理器
dataSource:数据源
type:数据源的类型,有UNPOOLED、POOLED、JNDI和自定义类型。
-->
<environments default="development">
<environment id="test">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 使用${}引入db.properties属性文件中的内容 -->
<property name="driver" value="${jdbc.driverClass}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 使用${}引入db.properties属性文件中的内容 -->
<property name="driver" value="${jdbc.driverClass}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/sunxiaping/mapper/EmployeeMapper.xml"/>
</mappers>
</configuration>
<databaseIdProvider type="DB_VENDOR">
<!--
为不同的数据库厂商起别名
-->
<property name="MySQL" value="mysql"/>
<property name="Oracle" value="oracle"/>
<property name="SQL Server" value="sqlserver"/>
</databaseIdProvider>
databaseIdProvider标签的属性type的值是DB_VENDOR,会通过DatabaseMetaData中的getDatabaseProductName()方法返回的字符串进行设置。由于通常情况下这个字符串非常长而且相同产品的不同版本会返回不同的值,所以最好通过设置属性别名来使其变短。
Mybatis的匹配规则如下:
示例:
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>
<!--
Mybatis可以使用properties标签来引入外部properties配置文件的内容
resource属性:引入类路径下的配置文件
url属性:引入网络或磁盘上的配置文件
-->
<properties resource="db.properties"></properties>
<settings>
<!-- 开启自动驼峰命名规则映射 -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<typeAliases>
<!--
通过package标签的name指定需要生成别名的包,默认会创建一个别名,就是类名的小写
-->
<package name="com.sunxiaping"/>
</typeAliases>
<!--
environments,Mybatis可以配置多种环境
environment:配置一个具体的环境信息;必须有transactionManager和dataSource标签。属性id代表当前环境的标识,可以达到快速切换环境
transactionManager:事务管理器
type:事务管理器的类型,有JDBC和MANAGED两种类型,还可以自定义事务管理器
dataSource:数据源
type:数据源的类型,有UNPOOLED、POOLED、JNDI和自定义类型。
-->
<environments default="development">
<environment id="test">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 使用${}引入db.properties属性文件中的内容 -->
<property name="driver" value="${jdbc.driverClass}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 使用${}引入db.properties属性文件中的内容 -->
<property name="driver" value="${jdbc.driverClass}"/>
<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":VendorDatabaseIdProvider
- 作用: 得到数据库厂商的标识(驱动,Connection接口中的getMetaData()返回了DatabaseMetaData,DatabaseMetaData中有getDatabaseProductName()方法),
Mybatis就能数据数据库厂商标识来指定不同的SQL
-->
<databaseIdProvider type="DB_VENDOR">
<!--
为不同的数据库厂商起别名
-->
<property name="MySQL" value="mysql"/>
<property name="Oracle" value="oracle"/>
<property name="SQL Server" value="sqlserver"/>
</databaseIdProvider>
<mappers>
<mapper resource="com/sunxiaping/mapper/EmployeeMapper.xml"/>
</mappers>
</configuration>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sunxiaping.mapper.EmployeeMapper">
<select id="findById" resultType="com.sunxiaping.domain.Employee">
SELECT id,last_name as lastName,email,gender
FROM employee
WHERE id = #{id,jdbcType=INTEGER}
</select>
<!--
select标签中databaseId用来指定在那种数据库环境下执行
-->
<select id="findById" resultType="com.sunxiaping.domain.Employee" databaseId="mysql">
SELECT id,last_name as lastName,email,gender
FROM employee
WHERE id = #{id,jdbcType=INTEGER}
</select>
<!--
select标签中databaseId用来指定在那种数据库环境下执行
-->
<select id="findById" resultType="com.sunxiaping.domain.Employee" databaseId="oracle">
SELECT id,last_name as lastName,email,gender
FROM employees
WHERE id = #{id,jdbcType=INTEGER}
</select>
</mapper>
<mappers>
<mapper resource="com/sunxiaping/mapper/EmployeeMapper.xml"/>
</mappers>
<mappers>
<package name="com.sunxiaping.mapper"/>
</mappers>
<?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>
<!--
Mybatis可以使用properties标签来引入外部properties配置文件的内容
resource属性:引入类路径下的配置文件
url属性:引入网络或磁盘上的配置文件
-->
<properties resource="db.properties"></properties>
<settings>
<!-- 开启自动驼峰命名规则映射 -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<typeAliases>
<!--
通过package标签的name指定需要生成别名的包,默认会创建一个别名,就是类名的小写
-->
<package name="com.sunxiaping"/>
</typeAliases>
<!--
environments,Mybatis可以配置多种环境
environment:配置一个具体的环境信息;必须有transactionManager和dataSource标签。属性id代表当前环境的标识,可以达到快速切换环境
transactionManager:事务管理器
type:事务管理器的类型,有JDBC和MANAGED两种类型,还可以自定义事务管理器
dataSource:数据源
type:数据源的类型,有UNPOOLED、POOLED、JNDI和自定义类型。
-->
<environments default="development">
<environment id="test">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 使用${}引入db.properties属性文件中的内容 -->
<property name="driver" value="${jdbc.driverClass}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!-- 使用${}引入db.properties属性文件中的内容 -->
<property name="driver" value="${jdbc.driverClass}"/>
<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":VendorDatabaseIdProvider
- 作用: 得到数据库厂商的标识(驱动,Connection接口中的getMetaData()返回了DatabaseMetaData,DatabaseMetaData中有getDatabaseProductName()方法),
Mybatis就能数据数据库厂商标识来指定不同的SQL
-->
<databaseIdProvider type="DB_VENDOR">
<!--
为不同的数据库厂商起别名
-->
<property name="MySQL" value="mysql"/>
<property name="Oracle" value="oracle"/>
<property name="SQL Server" value="sqlserver"/>
</databaseIdProvider>
<!--
mappers将SQL映射注册到全局配置中
-->
<mappers>
<!--
mapper:注册一个SQL映射
- resource:引用类路径下的SQL映射文件
- url:引用网络路径下的SQL映射文件
- class:引用接口,
- 有SQL配置文件,接口和配置文件必须放在同一目录下,且接口名和配置文件的名称必须相同
- 没有SQL配置文件,所有的SQL都是利用注解写在接口上
-->
<!-- mapper resource="com/sunxiaping/mapper/EmployeeMapper.xml"/>-->
<!--
package:批量注册,如果有SQL配置文件,接口和配置文件必须放在同一目录下,且接口名和配置文件的名称必须相同
-->
<package name="com.sunxiaping.mapper"/>
</mappers>
</configuration>
标签:from 继承 serve apache stat 全局 last 时间 nic
原文地址:https://www.cnblogs.com/xuweiweiwoaini/p/13660074.html