mybatis 全局配置文件
全局配置文件:
配置文件中各种标签的顺序旭遵守下面蓝色部分,可以没有相应标签,但是顺序必须是这样 (了解):
" class="reference-link">
dtd约束文件作用:规定xml中标签语法规则,为了” alt “+” / “ 有提示.
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
1)联网情况下可直接使用
2)未联网情况下:需绑定
第一步:导入mybatis.jar包中的dtd文件(无法直接复制粘贴,找到mybatis的路径,解压这dtd文件)。
第二部:配置
Key//mybatis.org/dtd/mybatis-3-config.dtd
" class="reference-link">settings设置
举例:获取数据库last_name字段属性
根据mapUnderscoreToCamelCase规范,则lastName即可。
作用:类型别名是为 Java 类型设置一个短的名字,可以方便我们引用某个类。
方法一:单个设置包下类的别名。
<typeAliases>
<!-- 1、typeAlias:为某个java类型起别名
type:指定要起别名的类型全类名;默认别名就是类名小写;employee
alias:指定新的别名
-->
<typeAlias type="com.atguigu.mybatis.bean.Employee" alias="emp"/>
</typeAliases>
方法二:类很多的情况下,可以批量设置别名这个包下的每一个类创建一个默认的别名,就是简单类名小写。
<typeAliases>
<package name="com.atguigu.mybatis.bean"/>
</typeAliases>
方法三:也可以使用@Alias注解为其指定一个别名
MyBatis可以配置多种环境,比如开发、测试和生 产环境需要有不同的配置。 每种环境使用一个environment标签进行配置并指 定唯一标识符 ,可以通过environments标签中的default属性指定,一个环境的标识符来快速的切换环境。
- environment-指定具体环境
id:指定当前环境的唯一标识 transactionManager、和dataSource都必须有
配置两个数据库:
dbconfig.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=!wyl72229992
orcl.driver=oracle.jdbc.OracleDriver
orcl.url=jdbc:oracle:thin:@localhost:1521:orcl
orcl.username=scott
orcl.password=123456
<environments default="dev_mysql">
<environment id="dev_mysql">
<transactionManager type="JDBC"></transactionManager>
<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>
<environment id="dev_oracle">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${orcl.driver}" />
<property name="url" value="${orcl.url}" />
<property name="username" value="${orcl.username}" />
<property name="password" value="${orcl.password}" />
</dataSource>
</environment>
</environments>
- databaseIdProvider环境
MyBatis 可以根据不同的数据库厂商执行不同的语句。
Type: DB_VENDOR
– 使用MyBatis提供的 VendorDatabaseIdProvider 解析数据库
厂商标识。也可以实现DatabaseIdProvider接口来自定义。
Property-name :数据库厂商标识
Property-value :为标识
<databaseIdProvider type="DB_VENDOR">
<!-- 为不同的数据库厂商起别名 -->
<property name="MySQL" value="mysql"/>
<property name="Oracle" value="oracle"/>
<property name="SQL Server" value="sqlserver"/>
</databaseIdProvider>
案例:一条sql语句,跨厂商运行=厂商别名+environment配置数据库+dbconfig.properties:
//为<environments default="dev_mysql">默认厂商
<select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee">
select * from tbl_employee where id = #{id}
</select>
//databaseId="mysql" 指定mysql厂商
<select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee"
databaseId="mysql">
select * from tbl_employee where id = #{id}
</select>
//databaseId="oracle" 指定oracle厂商
<select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee"
databaseId="oracle">
select EMPLOYEE_ID id,LAST_NAME lastName,EMAIL email
from employees where EMPLOYEE_ID=#{id}
</select>
mapper映射
注册一个sql映射
resource:引用类路径下的sql映射文件 例如:mybatis/mapper/EmployeeMapper.xml
url:引用网路路径或者磁盘路径下的sql映射文件 例如:file:///var/mappers/AuthorMapper.xml
<mappers>
<mapper resource="mybatis/mapper/EmployeeMapper.xml"/>
</mappers>
class:引用(注册)接口
1、有sql映射文件,映射文件名必须和接口同名,并且放在与接口同一目录下;(此种可以直接用resource=” “)
*如果将接口和实现类全部放在一个包里面,会显得很乱,则有以下策略:
此时在程序运行时,src与conf都为源文件,其文件夹下的所有包统一在bin目录(类路径)下(无src目录和conf目录)。
2、没有sql映射文件,所有的sql都是利用注解写在接口上;
public interface EmployeeMapperAnnotation {
@Select("select * from tbl_employee where id=#{id}")
public Employee getEmpById(Integer id);
}
<mappers>
<mapper class="com.atguigu.mybatis.dao.EmployeeMapperAnnotation"/>
</mappers>
推荐:
比较重要的,复杂的Dao接口我们来写sql映射文件
不重要,简单的Dao接口为了开发快速可以使用注解;
还没有评论,来说两句吧...