当前位置: 首页 > 编程日记 > 正文

idea的tomcat配置文件在哪里修改_MyBatis配置文件详解

706d4f64ee0728a5f33222c4ec8ca006.png

MyBatis 的配置文件包含了会影响 MyBatis 行为的设置和属性信息,决定了mybatis的运行轨迹,能充分了解这些配置的以及配置所带来的的影响,你就是大神!

配置文件的根节点是configuration,他的子孙节点有:

  • properties(属性)
  • settings(设置)
  • typeAliases(类型别名)
  • typeHandlers(类型处理器)
  • objectFactory(对象工厂)
  • plugins(插件)
  • environments(环境配置)
  • environment(环境变量)
  • transactionManager(事务管理器)
  • dataSource(数据源)
  • databaseIdProvider(数据库厂商标识)
  • mappers(映射器)

1、properties 提前定义好属性值,方便统一管理,而且可以动态替换

可以在java 属性文件中配置

eg:在项目的classpath下新建db.properties,内容是

driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/test?characterEncoding=utf-8username=rootpassword=root

在根节点中加入

那么在dataSource节点可以这样

采用这种方式,如果有数据库的变更只需要修改db.properties里的内容,如果多处使用了此处的变量,会更有优势。

变量如果还可以直接写到使用的配置文件中

 

2、setting ,mybatis里有很多需要设置的变量,会影响程序的运行方式

下面列出常用的几个

cacheEnabled 全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存 默认true开启

defaultStatementTimeout 设置超时时间,它决定驱动等待数据库响应的秒数

autoMappingUnknownColumnBehavior 指定发现自动映射目标未知列(或者未知属性类型)的行为

3、typeAliases 别名

类型别名是为 Java 类型设置一个短的名字。 它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余

4、typeHandlers 类型处理器

无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时, 都会用类型处理器将获取的值以合适的方式转换成 Java 类型,

Mybatis有很多默认的方法处理器,比如IntegerTypeHandler StringTypeHandler如果默认的不满足我们可以自己写类,通过typeHandlers标签配置上

5、objectFactory 结果对象工厂,实例化目标类的工厂类配置

如果对实例化的类有特殊的修改,可以继承DefaultObjectFactory,重写方法,然后再配置文件中配置

6、环境配置(environments)

//事务管理器 //数据库配置 

7、databaseIdProvider 数据库类型

MyBatis 可以根据不同的数据库厂商执行不同的语句,这种多厂商的支持是基于映射语句中的 databaseId 属性

在mapper中

  SELECT NOW() FROM dual   SELECT 'oralce'||to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') FROM dual  

即可配置不同的数据库

8、mapper 对象关系映射语句

配置 sql 映射文件的位置,告知 MyBatis 去哪里加载 sql 映射配置

MyBatis 的真正强大在于它的映射语句,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 为聚焦于 SQL 而构建,以尽可能地为你减少麻烦。

如有不实之处,还望不吝指正!

d3ca9ec679791e4cd5d18bdae833870b.png

相关文章:

《几何与代数导引》例1.4——定比分点

点$r$分有向线段$\vec{pq}$成定比$k$,即$\vec{pr}k\vec{rq}(k\neq-1)$.在仿射标架中,已知$p(a_1,a_2,a_3)$,$q(b_1,b_2,b_3)$和$k$,求$r(c_1,c_2,c_3)$解:由于$c_i-a_ik(b_i-c_i)$,因此$c_i\frac{kb_ia_i}{1k}$.转载于:https://www.cnblogs.com/yeluqing/archive/20…

C#第一个程序Helloworld

转载于:https://www.cnblogs.com/gzhbk/p/9656149.html

Leanote

https://github.com/leanote/leanote/wiki/Leanote-%E4%BA%8C%E8%BF%9B%E5%88%B6%E7%89%88%E8%AF%A6%E7%BB%86%E5%AE%89%E8%A3%85%E6%95%99%E7%A8%8B—-Mac-and-Linux 安装的网址 我们相当于是在本地建立了一个服务器,然后将我们的leanote部署上去了 我们这里的启…

微软安全新闻聚焦-双周刊第三十四期

Biweekly Spotlights 2013. 6. 5– 2013. 6. 20 第 34 期 微软发布 EMET 4.0 2013年6月17日 Enhanced Mitigation Experience Toolkit(EMET) 是微软提供的一个免费的攻击防御工具,它依托 Windows 系统本身的防御机制来阻止攻击者对各类…

mysql如何实现实时存储_OpenResty + Mysql 实现日志实时存储

应用场景和日志文件解析本配置主要解决 Nginx 向 MySQL 中实时插入日志的问题,采用 OpenResty Mysql 实现。1. 刚开始的时候看了 Nginx 和 MySQL 的连接模块。比如说 nginx-mysql-module,可以连接 MySQL。但是插入日志时遇到问题,我们知道 n…

简易RS232 建模二 (接收)

//clK系统时钟为50MHZ 先发低位后发高位 先接收地位后接收高位module uart_tx (input clk,rst_n, UART_CTS, output reg UART_RTS, input UART_RXD, output reg UART_TXD, output [7:0] led);reg [3:0]state;reg [30:0] count;reg [7:0] data;assign led rx_data; reg [7:0] …

《UNIX高级环境编程》 -- apue.h

在看《UNIX高级环境编程》这本书的时候,会遇到一个问题就是这个”apue.h”,这个是作者为了编写代码方便封装了一个库,我们可以使用下面的方式解决这个问题,让我们的代码可以像作者一样去使用,这样的话,我们就可以好好研…

mysql 多少个数据库_mysql数据库的几个基本概念

1、表数据库表是一系列二维数组的集合,用来存储数据和操作数据的逻辑结构。行是记录,列是字段,每一列表示记录的一个属性,都有相应的描述信息。2、数据类型:数据类型决定了数据在计算机中的存储格式,代表不…

教孩子正确对待分数

期末考试各科成绩渐渐公布了,小丽迫不及待地跑到办公室向老师打听分数。看到自己那一科成绩好时欣喜若狂,看到差的则懊悔不已。如果你的孩子也象小丽一样视考分为命根,该如何教孩子正确对待分数?让她从考分的困惑中解放出来?●考前给孩子制…

canvas初尝试

最近学习了canvas,就拿它做了这么个小东西,感觉已经爱上canvas了。上代码 /* * auhor : 开发部-前端组-李鑫超 * property { tableData : {Array} 表格数据 add v-1.0.0 } * property { columData : {Array} 表头数据 add v-1.0.0 } * property { me…

模板1.0 -- 模板基本原理

为什么需要模板 我们经常有这样的一种使用的情形,就是我们可能需要设计一个函数,然后函数的参数可能是整形的,也可能是浮点型的,还有可能是其他的类型的,这个时候如果对于每一个类型都写一个函数,未免有点…

[置顶] 我的GB28181标准开发里程碑——基于eXosip的IPC端与SPVMN注册成功

昨天编译搭建好eXosip的开发环境后,今天完成了SIP注册功能,里程碑一战啊!加油加油,成功就在眼前! 今天基于eXosip做了一个IPC客户端,成功与公安部的SPVMN视频监控联网调测软件自测工具进行注册交互&#xf…

mysql如何避免特殊字符查询_如何避免MySQL中的特殊字符?

慕的地10843我已经用Java开发了自己的MySQL转义方法(如果对任何人都有用的话)。请参阅下面的类代码。警告:如果启用了任何_反斜杠_转义SQL模式,则出错。private static final HashMap sqlTokens;private static Pattern sqlTokenPattern;static{ …

visio 2010 修改 默认字体 字号大小 方法

哈哈,我这是标题党,先给大家泼个冷水。Visio2010 并不支持对一次性地修改绘图中所有图形的字体大小!但可以有一个比较笨的方法解决。1.新建一个模具2.将常用的图形放到这个模具中3.对每个图形进行编辑4.对这个形状的字体,字号进行…

[BZOJ3329] Xorequ

题解: 网上的方法基本是建立在发现临位不能相等的基础上的 这个很好证。。 但是不利用这个特征也是可以的 x^2x3x 我们考虑二进制的前i位,我们会发现3x最多涉及到了前i2位 于是我们可以记录一下前i位的3x的i1,i2位的状态,以及第i位填了什么 因…

Asp.net中时间格式化的几种方法

1. 数据控件绑定时格式化日期方法:<asp:BoundColumn DataField"AddTime" HeaderText"添加时间" DataFormatString"{0:yyyy-MM-dd HH:mm}></asp:BoundColumn><asp:BoundField DataField"AddTime" HeaderText"添加时间&q…

centos设置网络自动启动

问题描述 centos7虚拟机如何设置开机自启动网络设置 解决方法 切换到root用户进入到网络设置的目录下面cd /etc/sysconfig/network-scripts/当前目录下面有一个类似于ifcfg-ens33&#xff0c;使用vim打开文件进行编辑&#xff0c;将ONBOOTno修改成为yes就可以了

mysql删除原则_MySQL数据库的增删选查

数据库是专门存储数据对象的容器&#xff0c;这里的数据对象包括表、视图、触发器、存储过程等&#xff0c;其中表是最基本的数据对象。创建数据库在 MySQL 数据库中存储数据对象之前&#xff0c;先要创建好数据库。语法&#xff1a;create database [if not exists] [[default…

ubuntu网卡配置

1、dhcp自动获取 sudo vi /etc/network/interfaces auto eth0 iface eth0 inet dhcp 设置生效: sudo /etc/init.d/networking restart 或 sudo dhclient eth0 2、静态IP地址 sudo vi /etc/network/interfaces auto eth0 iface eth0 inet static address 192.168.3.90 netmask 2…

自动化运维工具----ansible

自动化运维工具----ansible ansible是新出现的运维工具是基于Python研发的糅合了众多老牌运维工具的优点实现了批量操作系统配置、批量程序的部署、批量运行命令等功能。 主要模块以及功能&#xff1a; 1 command 2 user 3 group 4 cron 5 copy 6 file 7 ping 8 yum 9 service …

【内核】嵌入式linux内核的五个子系统

Perface Linux内核主要由进程调度&#xff08;SCHED&#xff09;、内存管理&#xff08;MM&#xff09;、虚拟文件系统&#xff08;VFS&#xff09;、网络接口&#xff08;NET&#xff09;和进程间通信&#xff08;IPC&#xff09;5个子系统组成&#xff0c;如图1所示。 图1 Li…

git用户文档1 — git基础

1. git基础 1.1 分布式 我们把远端仓库(云端的仓库)称为repo&#xff0c;repo必须有一个master分支&#xff0c;就是主分支。 repo除了有一个master分支&#xff0c;还有很多其他的分支&#xff0c;若干个分支之间存储的数据一版都是不一样的本地可以git clone下来repo的mast…

MySQL5.7的date类型_Mysql5.7 虚拟列数据类型为DATE时,如何存入数据?

表结构&#xff1a;v_date为虚拟列CREATE TABLE test ( json TEXT NULL, date DATETIME NULL DEFAULT NULL, v_date DATE AS (json_extract(json,$.date)) VIRTUAL)COMMENT测试表\r\nCOLLATEutf8mb4_general_ciENGINEInnoDB;插入&#xff1a;INSERT INTO test (json) …

找出字符串中所有数字

刚才网友在SKYPE问Insus.NET一个问题&#xff0c;在MS SQL中&#xff0c;怎样找出一个字符串所有数字。 Insus.NET使用较简单与平常的方法&#xff0c;就是使用循环的方法&#xff0c;循环字符串中每一个字符&#xff0c;并插入至一个表变量中。然后再SELECT这个表变量&#xf…

Safair 浏览器cllick事件不生效或者需要双击才生效

针对Safair 浏览器cllick事件不生效或者需要双击才生效的解决方案。 方法一&#xff1a;给元素加上cursor: pointer样式。&#xff08;不生效&#xff09; 方法二&#xff1a;ios事件机制不一样&#xff0c;将click事件改为mousedown或其他事件即可解决。&#xff08;需要双击&…

springboot mysql行锁_SpringBoot基于数据库实现简单的分布式锁

本文介绍SpringBoot基于数据库实现简单的分布式锁。1.简介分布式锁的方式有很多种&#xff0c;通常方案有&#xff1a;基于mysql数据库基于redis基于ZooKeeper网上的实现方式有很多&#xff0c;本文主要介绍的是如果使用mysql实现简单的分布式锁&#xff0c;加锁流程如下图&…

简单shell

执行脚本结果重定向 sh hah.sh hello 1>>/home/qiso/job.log 2>&1 上面这句话的意思是 首先通过sh执行脚本hah.sh&#xff0c;其中执行这个脚本的时候&#xff0c;需要传入参数&#xff0c;参数是hello&#xff0c; 1表示的是标准输出&#xff0c;以上脚本执行…

个人随笔、收藏——(包括技术、设计思想等)

1、开源自动化工具 Sahi、Selenium、AutoIt Sahi&#xff0c;是一个用于Web应用程序的自动测试工具。Sahi运行为一个代理服务器&#xff0c;必须把浏览器的代理设置为Sahi服务器。 然后Sahi注入javascript来访问Web页面中的元素。Sahi支持Http与Https并且独立于Web站点或Web应用…

安装QCreator2.5+Qt4.8.2+MinGW_gcc_4.4

QCreator最近升级了。正好想试试新功能&#xff0c;所以把原来安装的QCreator2.3.1Qt4.7.1卸载了。安装新的版本。具体步骤如下&#xff1a; 1# 下载QCreator2.5version。 2# 下载Qt4.8.2version。 3# 根据Qt官网给的链接&#xff0c;下载MinGW-gcc440_1&#xff08;因为从QCre…

第一次结对作业

211606368林书浩 211606352陈彬 一、预估与实际 PSP2.1Personal Software Process Stages预估耗时&#xff08;分钟&#xff09;实际耗时&#xff08;分钟&#xff09;Planning计划• Estimate• 估计这个任务需要多少时间3540Development开发• Analysis• 需求分析 (包括学习…