一、全局配置文件mybatis-config.xml
1.dtd约束
xml文件的声明处引入dtd约束文件 ===》 规定xml中语法规则。(会自动提示)
http://mybatis.org/dtd/mybatis-3-config.dtd
idea中复制项目时,在工作空间中直接复制,然后修改名称;然后把里边该删除的文件删除(例如:.idea文件夹、删掉.iml为结尾的文件等),然后在idea中import导入选择create,然后一直点next就行。(复制完别忘了手动导入的jar包)
上图情况就需要引入dtd约束。步骤:
1).File--->Settings--->Languages & Frameworks--->Schemas and DTDs--->点击+号--->把复制的dtd约束黏贴--->OK
2).导入本地dtd文件的也行
3).properties标签
在类路径下建一个dbconfig.properties文件
jdbc.driver = com.mysql.jdbc.Driver jdbc.url = jdbc:mysql://localhost:3306/mybatis_sgg jdbc.username = root jdbc.password = root
2.settings运行时配置
settings包含了很多的设置项
setting:用来设置每一个设置项
name:设置项名
value:设置项的取值
例如:设置驼峰命名法(让数据库表的字段命名,和JavaBean的命名形式为驼峰命名)
<settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings>
3.typeAliases(别名处理器)--->为我们的java类型起别名(别名不区分大小写)
typeAlias:为某个java类型起别名
type:指定要起别名的类型全类名;默认别名就是类名小写;
alias:指定新的别名
package:为某个包下的所有类批量起别名
name:指定包名(为当前包以及下面所有的后代包的每一个类都起一个默认的别名(类名小写))
<typeAliases> 1.<!--单个起别名--> <!--<typeAlias type="com.atguigu.mybatis.bean.Employee" alias="ha"></typeAlias>--> 2.<!--批量起别名--> <package name="com.atguigu.mybatis"></package> 3.<!-- 批量起别名的情况下,使用@Alias注解为某个类型指定新的别名 --> </typeAliases>
(3种)
4.typeHandlers(类型处理器)
数据库数据类型 与 java数据类型之间的处理
5.plugins(插件)
6.environments(环境们,MyBatis可以配置多种环境,default指定使用某种环境)
environment:配置一个具体的环境;(必须有下边两个标签)
transactionManager:事务管理器;
type:事务管理器的类型;JDBC | MANAGED
dataSource:数据源;
type:数据源类型;UNPOOLED(不适用连接池UnpooledDataSourceFactory) | POOLED(使用连接池PooledDataSourceFactory) | JNDI(JndiDataSourceFactory)
7.databaseIdProvider(数据库厂商标识)
支持多数据库厂商
type=“DB_VENDOR”:作用就是得到数据库厂商的标识,MyBatis就能根据数据库厂商的标识来执行不同的sql。
<!-- databaseIdProvider:支持多数据库厂商 type:作用就是得到数据库厂商的标识,mybatis就能根据数据库厂商的标识来执行不同的sql。 --> <databaseIdProvider type="DB_VENDOR"> <!-- 为不同的数据库厂商起别名 --> <property name="MySQL" value="mysql"/> <property name="Oracle" value="oracle"/> <property name="SQL Server" value="sqlserver"/> </databaseIdProvider>
在mapper.xml文件中,sql标签上加上属性databaseId=“数据库厂商的别名”。例:
<select id="getEmpById" resultType="emp" databaseId="mysql"> select * from tbl_employee where id = #{id} </select>
8.mappers(将SQL映射注册到全局配置中)
<!-- 将我们写好的sql 映射文件一定要注册到全局配置为中--> <!-- mappers:将sql映射注册到全局配置中 --> <mappers> <!-- mapper:注册一个SQL映射 注册配置文件 resource:引用类路径下的SQL映射文件 url:引用网络路径或者磁盘路径下的SQL映射文件 注册接口 class:直接引用(注册)接口,要求: 1、有sql映射文件,映射文件名必须和接口同名,并且放在与接口同一目录下. 2、没有sql映射文件,所有的SQL都是利用注解写在接口上 --> <!--<mapper resource="mybatis/mapper/EmployeeMapper.xml"/>--> <!--<mapper class="com.atguigu.mybatis.dao.EmployeeMapper"/>--> <!--<mapper class="com.atguigu.mybatis.dao.EmployeeMapperAnnotation"/>--> <!-- 批量注解 --> <package name="com.atguigu.mybatis.dao"/> </mappers>
特别去注意,深入理解这几种注册。
还有就是这些标签的先后顺序: