一、全局配置文件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>
4.typeHandlers(类型处理器)
数据库数据类型 与 java数据类型之间的处理
用qq搜索群: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>
特别去注意,深入理解这几种注册。
还有就是这些标签的先后顺序: