MyBatis(2)-全局配置文件
本文的代码是在MyBatis(1)-简单入门基础之上进行学习的,如有不懂请先看此博文MyBatis(1)-简单入门!
1)配置文件的安装 --->在联网的情况下,点击去下载http://mybatis.org/dtd/mybatis-3-config.dtd --->未联网:去mybatis的jar包->org.apache.ibatis.builder.xml->文件夹下的两个.dtd文件解压 点击选中我们的dtd地址选中->preferences->XML->XML Catalog->ADD->Location是文件的地址,Key type必须选中URI,Key就是我们的dtd地址->选择合适的地址 引入成功之后,我们输入在myeclipse中键盘Alt+/会有提示,需要关闭重启 目录如下: 2)属性讲解: 2.1)properties properties:可以使用properties来引入外部的properties配置文件内容 属性: resource:引用类路径下的资源 url:引入网络或者磁盘路径下的资源 db.properties在同一目录下,所以可以直接写处文件的名字 假设db.properties在com.MrChengs.db目录下 此时resource="com.MrChengs/db/db.properties" 在于spring整合的时候就会相对比较少的使用这个属性! 2.1.1)首先建立db.properties文件,其目录如下图所示 注意:配置文件的位置,在resource里面的路径问题 db.propertiesjdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis jdbc.username=root jdbc.password=9876
2.1.2)在mybatis-config.xml文件中加入
<properties resource="db.properties" ></properties>
2.2.3)得到我们的数据信息
<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>
此时我们再次运行之前的测试代码,一样可以查询出结果
/------------------------------------------------------------分割线------------------------------------------------------------/
2.2)settings
这是MyBatis中极为重要的调整设置,他会改变MyBatis的运行行为 用来设置每一个设置项的 有很多的属性标签 name:设置项的名字 value:设置项的取值 实例:mybatis-config.xml加入<settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings>假设我们数据库的字段和类的字段不一样:数据库----last_name 类----lastName 此时使用这个驼峰命名发,即可匹配到两者之间的关系,否杂而在查询的时候可能会显示为null 此处不在做详细的测试,可以参考相关的文档。 /------------------------------------------------------------分割线------------------------------------------------------------/ 2.3)typeAliases(别名处理器) 把java类型起一个简单的名字,可以减少工作量 2.3.1)单个类起别名: 2.3.1.1在mybatis-config.xml文件中: 此时使用默认的系统命名法
<typeAliases> <!-- 为某个java类型起别名 type:指定起别名的全类名,默认就是类名小写 可以用alias为起指定新的别名 我们此时给Employee起别名 --> <typeAlias type="com.MrChengs.bean.Employee"/> </typeAliases>2.3.1.2)在EmployeeMapper.xml文件中
<!-- 接口式编程 --> <select id="getEmployee" resultType="employee"> select id,name,gender,email from test where id = #{id} </select>
我们继续使用上次的查询方法进行修改,在默认不命名的情况下,是类的小写!
此时可以查询成功!
2.3.2)使用alias
2.3.2.1)在mybatis-config.xml文件中,是在2.3.1中的实例中加入alias
此时把其类命名为emp
<typeAlias type="com.MrChengs.bean.Employee" alias="emp"/>
2.3.2.2)在EmployeeMapper.xml文件中
<select id="getEmployee" resultType="emp"> select id,name,gender,email from test where id = #{id} </select>
此时可以查询成功! 2.3.3)多个类一起起别名时 2.3.3.1)在mybatis-config.xml
<typeAliases> <!-- package:为某个包下的 所有类批量起别名 name:指定包名(为当前包以及下面所有的后代包的每一个类都起一个别名(默认类名小写) --> <package name="com.MrChengs.bean"/> </typeAliases>
2.3.3.2)EmployeeMapper.xml文件中
<select id="getEmployee" resultType="Employee"> select id,name,gender,email from test where id = #{id} </select>
此时查询是可以成功的!
2.3.4)在多各类一起起别名时
容易产生一个问题,假设此时子包里和父包了都有一个同名类
此时MyBatis会很难进行区分,所有有以下的方法:
2.3.4.1)在Employee.java中
并且使用@Alias进行重命名
2.3.4.2)EmployeeMapper.xml文件中引用我们所创建的新的别名"empl"
<select id="getEmployee" resultType="empl"> select id,name,gender,email from test where id = #{id} </select>
此时会编译得到我们想要的答案!
注意:在起别名的时候,不区分大小写!
/------------------------------------------------------------分割线------------------------------------------------------------/
2.4)typeHandlers
架起java类型和数据库类型的映射 使用方法:
/------------------------------------------------------------分割线------------------------------------------------------------/
2.5)plugins
待补充。。。
/------------------------------------------------------------分割线------------------------------------------------------------/
2.6)environments 环境
可以配置多种环境 <environments default="development"> default:可以指定使用那种环境,可以进行快速的切换 environment:配置一个具体的环境,可以配置多个具体环境,且必须配置 id:代表当前环境的唯一标识 transactionManager:事物管理器 type:事物管理器的类型,有两个取值 JDBC(使用mysql)/MANAGED(使用j2ee自带的) dataSource:数据源 type:数据源类型 POOLED(使用连接池)/JNDI/UNPOOLEN(不使用连接池) property:数据源的相关信息<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>
具体的讲解如上!
/------------------------------------------------------------分割线------------------------------------------------------------/
2.7)databaseIdProvider
代码在environments标签下面 可移植性的重要性 支持多数据库的厂商的 2.7.1)在mybatis-config.xmltype="DB_VENDOR"固定值,作用是得到数据库厂商的标识来执行不同的SQL语句
<databaseIdProvider type="DB_VENDOR"> <!-- 为不同数据库起别名 --> <property name="MySQL" value="mysql"/> <property name="SqlSever value="sqlSever"/> </databaseIdProvider>
2.7.2)引用方式
假设此时databaseId=sqlSever,则执行的是SqlSever数据库!
/------------------------------------------------------------分割线------------------------------------------------------------/
2.8)mappers
将sql映射注册到全局配置中 mapper注册一个sql映射 resource:引用类路径下的sql映射文件 uri:引用网络或这磁盘路径下的sql映射文件 class:引用注册(接口) 有sql映射文件名必须和接口同名,并放在同意目录下 一般的mapper都放在mapper包里面 假设在mybatis.mapper包里面 则resource="mybatis/mapper/xxxx.xml 在mybatis-config.xml文件的最底部<mappers> <mapper resource="EmployeeMapper.xml" /> </mappers>
此时此刻配置文件差不多讲到这里要结束了
此时此刻,把本次博文是修改到的代码奉上,结合MyBatis(1)-简单入门!
3.1)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> <!-- 1.properties:可以使用properties来引入外部的properties配置文件内容 属性: resource:引用类路径下的资源 url:引入网络或者磁盘路径下的资源 db.properties在同一目录下,所以可以直接写处文件的名字 假设db.properties在com.MrChengs.db目录下 此时resource="com.MrChengs/db/db.properties" --> <properties resource="db.properties" ></properties> <!-- 2.settings设置 这是MyBatis中极为重要的调整设置,他会改变MyBatis的运行行为 用来设置每一个设置项的 name:设置项的名字 value:设置项的取值 --> <settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> <!-- 3.typeAliases:别名处理器 --> <typeAliases> <!-- 为某个java类型起别名 type:指定起别名的全类名,默认就是类名小写 可以用alias为起指定新的别名 我们此时给Employee起别名 --> <typeAlias type="com.MrChengs.bean.Employee" alias="emp"/> <!-- package:为某个包下的 所有类批量起别名 name:指定包名(为当前包以及下面所有的后代包的每一个类都起一个别名(默认类名小写) --> <package name="com.MrChengs.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> </environments> <!-- 5.databaseIdProvider 支持多数据库的厂商的 type="DB_VENDOR"固定值,作用是得到数据库厂商的标识来执行不同的SQL语句 --> <databaseIdProvider type="DB_VENDOR"> <!-- 为不同数据库起别名 --> <property name="MySQL" value="mysql"/> </databaseIdProvider> <!-- 将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中 --> <mappers> <mapper resource="EmployeeMapper.xml" /> </mappers> </configuration>
3.2)EmployeeMapper.xml
<?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.MrChengs.dao.EmployeeMapper"> <!-- 原生 --> <select id="getId" resultType="com.MrChengs.bean.Employee"> select id,name,gender,email from test where id = #{id} </select> <!-- 接口式编程 --> <select id="getEmployee" resultType="empl" databaseId="mysql"> select id,name,gender,email from test where id = #{id} </select> </mapper>
本次博文到此结束,谢谢您的浏览,如果问题,请提出,博主及时修改。
- 【Mybatis】全局配置文件
- mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析
- mybatis--全局配置文件详解
- 框架学习系列 mybatis 第十篇 mybatis 全局配置文件
- MyBatis之全局配置文件(Configuration XML)之引入外部配置文件(properties)
- Spring+SpringMVC+MyBatis深入学习及搭建(三)——MyBatis全局配置文件解析
- mybatis--4.全局配置文件
- mybatis全局配置文件与映射文件详解
- mybatis全局配置文件详解
- mybatis-全局配置文件-mybatis-config.xml-settings-4
- mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析
- Mybatis学习(3)关于mybatis全局配置文件SqlMapConfig.xml
- mybatis全局配置文件的内容
- mybatis-全局配置文件-mybatis-config.xml-properties-3
- mybatis-Config.xml全局配置文件解析
- mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析
- mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析
- mybatis全局配置文件参考
- Mybatis学习总结(三)——SqlMapConfig.xml全局配置文件解析
- Spring+SpringMVC+MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析