全局配置文件.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、mybatis可以使用properties来引入外部properties配置文件的内容
resource:引入类路径下的资源
url:引入网络路径或者磁盘路径下的资源
-->
<properties resource="dbconfig.properties"></properties>
<!--
2、settings包含了很多重要的设置项
setting:用来设置每一个设置项
name:设置项名
value:设置项取值
-->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<!-- 3.typeAliases:别名处理器:可以为我们的Java类型起别名
别名不区分大小写
-->
<typeAliases>
<!--
第一种:typeAlias:为某个java类型起别名
type:指定要起别名的类型全类名;默认别名就是类名小写,employee
alias:指定新的别名
-->
<!-- <typeAlias type="com.atguigu.mybatis.bean.Employee" alias="emp"/>-->
<!-- 第二种:package: 为某个包下的所有类批量起别名
name:指定包名(为当前包以及下面所有的后代包的每一个类都起一个默认别名(类名小写))
-->
<package name="com.atguigu.mybatis.bean"/>
<!-- 第三种:批量起别名的情况下,使用@Alias注解为某个类型指定新的别名 -->
</typeAliases>
<!-- 类型处理器 <typeHandlers></typeHandlers> -->
<!-- 4.environments:环境们,mybatis可以配置多种环境,default指定使用某种环境
environment:配置一个具体的环境配置,必须有两个标签;id表示当前环境的唯一标识
transactionManager 事务管理器
type:事务管理的类型;JDBC (JdbcTransactionFactory) | MANAGED(ManagedTransactionFactory)
自定义事务管理器:实现TransactionFactory接口,type指定为全类名
dataSource:数据源;
type:数据源类型;UNPOOLED(不使用连接池计数)( UnpooledDataSourceFactory )
|POOLED(使用连接池计数) ( PooledDataSourceFactory )
|JNDI ( JndiDataSourceFactory )
自定义数据源:实现DataSourceFactory接口,type是全类名
-->
<environments default="development">
<!-- id="test" 可作为测试人员环境 仅需要更改 default -->
<environment id="test">
<transactionManager type=""></transactionManager>
<dataSource type=""></dataSource>
</environment>
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<!--
Mysql使用jdbc连接数据库
-->
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<databaseIdProvider type="DB_VENDOR">
<!-- 为不同的数据库厂商起别名 -->
<property name="MySQL" value="mysql"/>
<property name="SQL Server" value="sqlserver"/>
<property name="Oracle" value="oracle"/>
</databaseIdProvider>
<!-- 6、mappers : 将sql映射注册到全局配置中 -->
<!--将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(mybatis-config)中-->
<mappers>
<!-- mapper :注册一个sql映射
注册配置文件
resource:引用类路径下的sql映射文件
url:引用网络或者磁盘路径下的sql映射文件
<mapper url="file:///var/mappers/AuthorMapper.xml"/>
注册接口
class:引用(注册)接口
1。有sql映射文件,映射文件名必须与接口同名,并且放在接口同一目录底下
2。没有sql映射文件,所有的sql都是利用注解写在接口上的
推荐:比较重要的Dao接口我们来写sql映射文件
不重要的/简单的Dao接口为了开发快速可以使用注解
<mapper resource="mybatis/mapper/EmployeeMapper.xml"/>
<mapper class="com.atguigu.mybatis.dao.EmployeeMapperAnnotation"/>
-->
<!-- package:批量注册 -->
<package name="com.atguigu.mybatis.dao"/>
</mappers>
</configuration>
数据库设计表
- 此处简单做个测试并简短说明记录一下
- 上述代码第二点mapUnderscoreToCamelCase 驼峰转换获取数据库里面的数据。
- 数据库中一个表某列设置为last_name,必须要这么写才可以进行自动驼峰转换
- 可在xml文件中设置settings的mapUnderscoreToCamelCase可以将数据库中user_name转化成userName与实体类属性对应
- 如果数据库使用如user_name的命名方式,实体类采用驼峰命名。配置后无需写数据库字段和实体类属性对应
动态绑定全局配置文件.java
运行效果图
- 没设置好可能会读取不到数据库里的数据或者是直接导致出现错误