Mybatis配置详解
一、SqlSession的使用范围说明
1、SQLSessionFactoryBuilder
通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory,将SqlSessionFactoryBuilder当成一个工具类使用即可,不需要使用单例模式管理,在创建SqlSessionFactory的时候,只需要new一次SqlSessionFactoryBuilder即可。
2、SqlSessionFactory
通过SqlSessionFactory创建SqlSession,使用单例模式来管理SqlSessionFactory(工厂一旦创建,只使用一个实例)。
3、SqlSession
SqlSession是一个面向用户(程序员)的接口。
SqlSession中提供了很多操作数据库的方法:如selectOne(返回单个对象)、selectList(返回单个或多个对象)。
SqlSession是线程不安全的,因为在SqlSession中除了有接口中的方法(操作数据库的方法)之外。还有数据域属性。
SqlSession的最佳应用场合是在方法体内,将其定义为局部变量来使用。
二、SqlMapConfig.xml配置文件详解
1、Properties属性
Properties属性用来加载属性配置文件。
<!--
加载属性文件
resource:属性文件的相对路径
url:属性文件的绝对路径
-->
<properties resource="config/db.properties">
<!--
配置一些属性
name:属性的名称
value:属性的值
-->
<!--<property name="" value="" /> -->
</properties>
properties特性:
Mybatis将按照下面的属性来加载属性:
1. 首先会读取在property标签中定义的属性。
2. 然后会读取在properties标签中通过resource或url加载时的属性,它会覆盖已读取得同名属性。
3. 最后会读取sql中parameterType传递过来的属性,它会覆盖已读取的同名属性。
2、settings全局参数配置
Mybatis框架在运行时可以调整一些运行参数,比如:开启二级缓存、开启延迟加载等。这些参数要通过settings标签来配置,全局参数会影响Mybatis的运行行为,配置一定要注意。
常用的全局配置参数如下:
<!--全局参数配置-->
<settings >
<!--
name:属性名称
value:属性的值
-->
<setting name="" value=""/>
</settings>
3、typeAlia
在映射文件中的parameterType和resultType属性中要指定输入、输出映射类型,如果类型为PO,要指定PO类的全路径这样不是特别方便,可以使用typeAlias定义一些别名,来方便开发。
<!--定义别名-->
<typeAliases>
<!--
type:需要起别名的字符串
alias:对应的别名
-->
<typeAlias type="" alias="" />
<!--
name:包名,会对包下面的类进行扫描,自动批量设置别名,
设置的别名为类名,首字母大小写均可
-->
<package name="" />
</typeAliases>
Mybatis的默认别名
4、typeHandlers(类型处理器)
Mybatis中通过typeHandlers完成jdbc类型和Java类型的装换。通常情况下,Mybatis提供的类型处理器满足日常需要,不需要我们再自定义。
<typeHandlers>
<typeHandler handler="" jdbcType="" javaType="" />
</typeHandlers>
Mybatis默认支持的数据类型
5、environments 环境
<!--
环境配置
在和Spring整合后改配置将废除
-->
<environments default="development">
<environment id="development">
<!--使用JDBC的事务管理,事务管理交给Mybatis-->
<transactionManager type="JDBC"></transactionManager>
<!--数据库连接池,有Mybatis管理-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
6、mapper 加载映射文件
加载映射文件有三种方式
1、加载单个映射文件
<!--引入mapper-->
<mappers>
<!--rerource:引入映射文件相对于classpath的地址-->
<mapper resource="config/sqlmap/userMapper.xml" />
</mappers>
2、通过Mapper接口加载单个映射文件
前提条件:
(1). 使用Mapper代理的方式进行开发。
(2). Mapper接口文件名要和映射文件名一致
(3).Mapper接口文件和映射文件在同一个目录下
<!--引入mapper-->
<mappers>
<mapper class="com.jack.po.UserMapper" />
</mappers>
3、批量记载映射文件
前提条件:
(1). 使用Mapper代理的方式进行开发。
(2). Mapper接口文件名要和映射文件名一致
(3).Mapper接口文件和映射文件在同一个目录下
<!--引入mapper-->
<mappers>
<!--name:mapper接口文件所在的包路径-->
<package name="" />
</mappers>
本文来自上海尚学堂Java学员原创
Mybatis配置详解的更多相关文章
- 一、Mybatis配置详解
Mybatis配置详解 XML配置文件层次结构 下图展示了mybatis-config.xml的全部配置元素 properties元素 properties是一个配置属性的元素,让我们能在配置文件的上 ...
- spring mvc+myBatis配置详解
一.spring mvc Spring框架(框架即:编程注解+xml配置的方式)MVC是Spring框架的一大特征,Spring框架有三大特征(IOC(依赖注入),AOP(面向切面),MVC(建模M- ...
- Spring Boot整合Mybatis配置详解
首先,你得有个Spring Boot项目. 平时开发常用的repository包在mybatis里被替换成了mapper. 配置: 1.引入依赖: <dependency> <gro ...
- 深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)
上篇文章<深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)> 介绍了properties与environments, ...
- mybatis 代码生成器(IDEA, Maven)及配置详解(部分配置你应该不知道)
目录 1 创建代码生成器 1.1 创建Maven项目 1.2 配置 generator.xml 1.3 配置 pom.xml 1.4 使用及测试 2 XML 配置详解 2.1 优先 2.2 官网没有的 ...
- 转载 Spring、Spring MVC、MyBatis整合文件配置详解
Spring.Spring MVC.MyBatis整合文件配置详解 使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了.先总结一下SSM整合的文件配置.其实具体的用法最好还是看官方文档. ...
- Spring MVC、MyBatis整合文件配置详解
Spring:http://spring.io/docs MyBatis:http://mybatis.github.io/mybatis-3/ Building a RESTful Web Serv ...
- Mybatis中接口和对应的mapper文件位置配置详解
Mybatis中接口和对应的mapper文件位置配置详解 原链接为:https://blog.csdn.net/fanfanzk1314/article/details/71480954 今天遇到一个 ...
- 深入浅出Mybatis系列四-配置详解之typeAliases别名(mybatis源码篇)
注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(三)---配置详解之properties ...
随机推荐
- 利用XShell上传、下载文件(使用sz与rz命令),超实用!
借助XShell,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器. 其中,对于sz和rz的理解与记忆我用了如下的方法(很多时候容易搞混): sz中 ...
- MinGW安装与使用简介
MinGW 安装与使用简介 安装方法:其实很简单,如下: Step one: 到这里下载 MinGW, 网速慢的话可能打不开, 是个外国网站 (上面的网站镜像可能 出了点问题 , 有的东西下载下来却不 ...
- OCR智能识别身份信息
本人研究了两款OCR智能识别的API,下面做详解! 第一款是百度云的OCR识别,填写配置信息,每天有五百次免费的识别次数,适合中小型客户流量可以使用.API文档:http://ai.baidu.com ...
- jQuery匿名函数$(function(){ }
搬运原地址:https://zhidao.baidu.com/question/473318430.html $(function(){ }实际上是匿名函数.这是JQuery的语法,$表示JQuery ...
- SOFA 源码分析 — 负载均衡和一致性 Hash
前言 SOFA 内置负载均衡,支持 5 种负载均衡算法,随机(默认算法),本地优先,轮询算法,一致性 hash,按权重负载轮询(不推荐,已被标注废弃). 一起看看他们的实现(重点还是一致性 hash) ...
- PHP_保留两位小数并且四舍五入(可用于精度计算)_保留两位小数并且不四舍五入
小数例子: PHP保留两位小数并且四舍五入 1 $n=0.1265489; 2 echo sprintf("%.2f", $n); // 0.13 大家可以看到我们用到了sprin ...
- SDE与shapefile之间的数据导入与导出
一.SDE要素导出到shapefile中. 1.创建一个新的shapefile文件. private bool CreateShapefile(string filepath, string name ...
- web 文件下载(.shp)
1. Open IIS Manager2. Select MIME Types 3. In the right pane, click Add…4. Enter the following infor ...
- 使用FluentScheduler和IIS预加载在asp.net中实现定时任务管理
FluentScheduler介绍 github地址:https://github.com/fluentscheduler/FluentScheduler FluentScheduler是一个简单的任 ...
- mac 登录亚马逊云服务器报错:Permission denied (publickey).
申请的亚马逊云服务器EC2,实例为ubuntu系统 一.打开终端,定位到放置密钥的文件夹: 二.确保私有秘钥不是公开可见的: p.p1 { margin: 0.0px 0.0px 0.0px 0.0p ...