mybatis 全局配置文件

全局配置文件: 


配置文件中各种标签的顺序旭遵守下面蓝色部分,可以没有相应标签,但是顺序必须是这样 (了解):

  • xml引入dtd

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:http://mybatis.org/dtd/mybatis-3-config.dtd

  • settings设置

  举例:获取数据库last_name字段属性

 根据mapUnderscoreToCamelCase规范,则lastName即可。

  • typeAliases别名处理器

作用:类型别名是为 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注解为其指定一个别名

  • 数据库操作 

    • environments环境
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目录)。 

<mappers>
	<mapper class="com.atguigu.mybatis.dao.EmployeeMapper"/>
</mappers>

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接口为了开发快速可以使用注解;

  • 批量注册

    <mappers>
        <package name="com.atguigu.mybatis.dao"/>
    </mappers>

猜你喜欢

转载自blog.csdn.net/qq_41877184/article/details/103250044