文章目录
1、SqlMapConfig.xml 中配置的内容和顺序
-properties(属性)
--property
-settings(全局配置参数)
--setting
-typeAliases(类型别名)
--typeAliase
--package
-typeHandlers(类型处理器)
-objectFactory(对象工厂)
-plugins(插件)
-environments(环境集合属性对象)
--environment(环境子属性对象)
---transactionManager(事务管理)
---dataSource(数据源)
-mappers(映射器)
--mapper
--package
2、properties(属性)
在使用 properties 标签配置时,我们可以采用两种方式指定属性配置。
(1)第一种
可以在标签内部配置连接数据库的信息。
<properties>
<property name="driver" value="com.mysql.cj.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/eesy_mybatis?useSSL=false&serverTimezone=UTC"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</properties>
//下边直接调用
<property name="driver" value="${driver}"></property>
(2)第二种
(1) 在 classpath 下定义 jdbcConfig.properties 文件
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/eesy_mybatis?useSSL=false&serverTimezone=UTC
jdbc.username=root
jdbc.password=root
(2)properties 标签配置
<!--方法二、properties的两个属性:
用于指定配置文件的位置,是按照类路径的写法来写,并且必须存在于类路径下。
以下两个都可以:
属性1:resource="jdbcConfig.properties"
<properties resource=""></properties>
属性2:url="file:\P:\src\main\resources\jdbcConfig.properties"
<properties url=""></properties>
//引用方式和上边不同。区别在于
引用类型:value="${jdbc.driver}"
<property name="driver" value="${jdbc.driver}"></property>
普通方式:是字符串。
<property name="username" value="root"></property>
-->
<properties resource="jdbcConfig.properties"></properties>
<!--<properties url="绝对路径"></properties>-->
(3)此时我们的 dataSource 标签就变成了引用上面的配置
<!-- 配置连接数据库的四个基本信息 -->
<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>
3、typeAliases(类型别名)
在前面我们讲的 Mybatis 支持的默认别名,我们也可以采用自定义别名方式来开发。
在 SqlMapConfig.xml 中配置自定义别名:
<!-- 使用typeAliases配置别名,它只能配置domain中类的别名-->
<typeAliases>
<!--
typeAlias用于配置别名。
type属性:指定的是实体类全限定类名。
alias属性:指的是别名,当指定了别名就不在区分大小写
例如:别名user 使用时可以是USER UsEr...
注意:
typeAliases标签必须在properties标签之下
起别名之后也可以不用,用实体类全限定别名 -->
<!--<typeAlias type="com.song.domain.User" alias="user"></typeAlias>-->
<!-- package:用于配置别名的包,
当指定之后,该包下的实体类都会注册别名
类名就是别名不区分大小写 -->
<package name="com.song.domain"></package>
</typeAliases>
4、mappers(映射器)
(1)mapper resource=" "
使用相对于类路径的资源
如:<mapper resource="com/itheima/dao/IUserDao.xml" />
(2)mapper class=" "
使用 mapper 接口类路径
如:<mapper class="com.itheima.dao.UserDao"/>
注意:此种方法要求 mapper 接口名称和 mapper 映射文件名称相同,且放在同一个目录中。
(3)package name=""
注册指定包下的所有 mapper 接口
<package name="cn.itcast.mybatis.mapper"/>
注意:此种方法要求 mapper 接口名称和 mapper 映射文件名称相同,且放在同一个目录中。
5、SQLMapConfig.xml配置文件
<!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
<mappers>
<!-- 使用IUserDao.xml配置文件映射如下 -->
<!-- <mapper resource = "com/song/dao/IUserDao.xml"/> -->
<!-- 如果是用注解来配置的话,此处应该使用class属性指定被注解的dao全限定类名 -->
<!--<mapper class = "com.song.dao.IUserDao"/>-->
<!--package标签是用于指定dao接口所在的包
当指定完成之后就不需要再写mapper以及resource或者class了-->
<package name="com.song.dao"></package>
</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">
<!-- mybatis的主配置文件 -->
<configuration>
<!-- 配置properties注释((((&&&mappers和properties中URL属性和resource属性用法相同&&&))))
方法一、可以在标签内部配置连接数据库的信息。也可以通过属性引用外部配置文件信息
<properties>
<property name="driver" value="com.mysql.cj.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/eesy_mybatis?useSSL=false&serverTimezone=UTC"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</properties>
//下边直接调用
<property name="driver" value="${driver}"></property>
方法二、properties的两个属性:
用于指定配置文件的位置,是按照类路径的写法来写,并且必须存在于类路径下。
以下两个都可以:
属性1:resource="jdbcConfig.properties"
<properties resource=""></properties>
属性2:url="file:\P:\src\main\resources\jdbcConfig.properties"
<properties url=""></properties>
//引用方式和上边不同。区别在于
引用类型:value="${jdbc.driver}"
<property name="driver" value="${jdbc.driver}"></property>
普通方式:是字符串。
<property name="username" value="root"></property>
url属性:
是要求按照Url的写法来写地址
URL:统一资源定位符,他是可以唯一标志一个资源的位置
它的写法:
http://localhost:8080/mybatisservlet/demoServlet
协议 主机 端口 URI
file:\\\P:\eclipse-javaEE\Mybatis\day02_eesy_05mybatisCRUD_properties\src\main\resources
uri:统一资源标识符。他是在应用中可以唯一定位一个资源的
-->
<properties resource="jdbcConfig.properties"></properties>
<!-- 使用typeAliases配置别名,它只能配置domain中类的别名-->
<typeAliases>
<!--
typeAlias用于配置别名。
type属性:指定的是实体类全限定类名。
alias属性:指的是别名,当指定了别名就不在区分大小写
例如:别名user 使用时可以是USER UsEr...
注意:
typeAliases标签必须在properties标签之下
起别名之后也可以不用,用实体类全限定别名 -->
<!--<typeAlias type="com.song.domain.User" alias="user"></typeAlias>-->
<!-- package:用于配置别名的包,
当指定之后,该包下的实体类都会注册别名
类名就是别名不区分大小写 -->
<package name="com.song.domain"></package>
</typeAliases>
<!-- 配置环境 -->
<environments default="mysql">
<!-- 配置MySQL的环境 -->
<environment id="mysql">
<!-- 配置事务的类型 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据源(连接池) -->
<dataSource type="POOLED">
<!-- 配置连接数据库的四个基本信息 -->
<property name="driver" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</dataSource>
</environment>
</environments>
<!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
<mappers>
<!-- 使用IUserDao.xml配置文件映射如下 -->
<!-- <mapper resource = "com/song/dao/IUserDao.xml"/> -->
<!-- 如果是用注解来配置的话,此处应该使用class属性指定被注解的dao全限定类名 -->
<!--<mapper class = "com.song.dao.IUserDao"/>-->
<!--package标签是用于指定dao接口所在的包
当指定完成之后就不需要再写mapper以及resource或者class了-->
<package name="com.song.dao"></package>
</mappers>
</configuration>