关于MyBaties的基本配置标签总结
作者:油炸冰可乐 发布时间:2022-08-09 17:28:44
MyBaties的基本配置标签
1-全局配置文件(xxx.properties)引入的两种方式
resource:引入类路径下的资源
url:引入网络路径或磁盘路径下的资源
<properties resource="dbconfig.properties"></properties>
2-settings包含设置项
name:配置项
value:属性值
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
3-typeAliases:别名处理器,为java类型起别名
type:指定要起别名的类型全类名;默认别名就是类名小写
alias:指定新的别名
<typeAlias type="com.atguigu.mybatis.bean.Employee" alias="emp"/>
3.1 为某个包下所有类起别名
package:为某个包下的所有类批量起别名
name:指定包名(为当前包以及下面所有的后代包的每一个类都起一个默认别名(类名小写)
<package name="com.atguigu.mybatis.bean"/>
3.2 使用注解@Alias
为某个类指定新的类型
@Alias("emp")
public class Employee {
...code...
}
4-配置多种MyBatis环境
enviroments:配置的环境们都写在里面,default指定这个环境的名称
environment:配置一个具体的环境信息,有id唯一标识与transactionManager事务管理器
id:唯一标识
transactionManager:事务管理器,它的有属性type
type:事务管理器的类型JDBC MANAGED 自定义事务管理器
dataSource:数据源
type:数据源类型 UNPOOLED POOLED JNDI 自定义
<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>
5-databaseIdProvider:支持多数据库
databaseIdProvider:支持多数据库,它的type为DB_VENDOR作用就是得到数据库厂商的标识(驱动getDatabaseProductName()),mybatis就能根据数据库厂商标识来执行不同的sql;
property:为数据库起名字
name:
value:
<databaseIdProvider type="DB_VENDOR">
<!-- 为不同的数据库厂商起别名 -->
<property name="MySQL" value="mysql"/>
<property name="Oracle" value="oracle"/>
<property name="SQL Server" value="sqlserver"/>
</databaseIdProvider>
最终,在mapper.xml中写入查询时的的语句,并申明使用到的数据库是什么
<mapper namespace="com.atguigu.mybatis.dao.EmployeeMapper">
<select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee">
select * from tbl_employee where id = #{id}
</select>
<select id="getEmpById" resultType="com.atguigu.mybatis.bean.Employee"
databaseId="mysql">
select * from tbl_employee where id = #{id}
</select>
<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>
6-mappers将sql文件注册进入全局配置文件
6.1注册配置文件:
resource:引用类路径下的sql映射文件例如:mybatis/mapper/EmployeeMapper.xml
url:引用网路路径或者磁盘路径下的sql映射文件例如:file:///var/mappers/AuthorMapper.xml
6.2注册接口:
有sql映射文件,映射文件名必须和接口同名,并且放在与接口同一目录下;
<mapper resource="mybatis/mapper/EmployeeMapper.xml"/>
没有sql映射文件,所有的sql都是利用注解写在接口上,然后再mappers中进行注册;
public interface EmployeeMapperAnnotation {
@Select("select * from tbl_employee where id=#{id}")
public Employee getEmpById(Integer id);
}
<mapper class="com.atguigu.mybatis.dao.EmployeeMapperAnnotation"/>
6.3批量注册:
本质上,如果包名相同,不管是src内还是src外的文件,实际存储过程中会被存储到同一个文件夹中
<package name="com.atguigu.mybatis.dao"/>
来源:https://blog.csdn.net/Wang_Pro/article/details/118116945
猜你喜欢
- 一、前置说明本节大纲使用lombok插件的好处如何安装lombok插件使用lombok提高开发效率二、使用lombok插件的好处我们在jav
- 系列目录 【已更新最新开发文章,点击查看详细】类似于以下场景,将表单中的用户信息(包含附件)上传到服务器并保存到数据库中,<form
- 一、什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型
- 验证码的实现原理: 在一个Servlet中生成验证,并把验证码上的数据保存在Session,用户提交验证码之后,会提交给另外一个
- PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状;该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程
- 阅读Dubbo源码过程中,会发现,Dubbo消费端在做远程调用时,默认通过 Javassist 框架为服务接口生成 * 类,调用javas
- 本文实例形式展示了DevExpress实现GridControl根据列选中一行的方法,比较实用的功能,希望能对大家进行项目开发起到一定的借鉴
- 前言不久之前,部门进行了一次代码评审。代码整体比较简单,该吹B的地方都已经吹过了,无非是些if else的老问题而已。当翻到一段定时任务的一
- 本文实例讲述了Android简单实现启动画面的方法。分享给大家供大家参考,具体如下:核心代码:package com.demo.app;im
- RoomRoom主要分三个部分 database、dao和实体类entityEntityentity实体类定义时需要用到@Entity(ta
- 下面有一个字符串阵列:string[] elements = {"adsf","etwert" ,&
- 前言在开发过程中经常会遇到比较排序的问题,比如说对集合数组的排序等情况,基本类型都提供了默认的比较算法,如string提供了按字母进行排序,
- 1.编写核心类MainApp:package com.yiidian.gson;import com.google.gson.Gson;im
- 最近碰到个需要下载zip压缩包的需求,于是我在网上找了下别人写好的zip工具类。但找了好多篇博客,总是发现有bug。因此就自己来写了个工具类
- 简介Exchanger是一个用于线程间数据交换的工具类,它提供一个公共点,在这个公共点,两个线程可以交换彼此的数据。当一个线程调用excha
- 上来就给点干货吧利用脚本,一键设置java环境变量(默认安装路径)@echo offcolor 0aecho.---------------
- 概述: 当希望能直接在数据库语言中只检索符合条件的记录,不需要再通过程序对其做处理时,SQL语句分页
- 本文实例讲述了Java基于分治法实现的快速排序算法。分享给大家供大家参考,具体如下:package cn.nwsuaf.quick;/**
- 简介这篇文章我一直在纠结到底要不要写,不想写一来因为定时器用法比较简单,二来是面试中也不常问。后来还是决定写了主要是想把自己分析问题思路分享
- 图片上传功能是我们web里面经常用到的,获得的方式也有很多种,这里我用的是request.getInputStream()获取文件流的方式。