MyBatis之优化MyBatis配置文件中的配置

MyBatis之优化MyBatis配置文件中的配置

MyBatis配置文件很重要,首先我们来看看MyBatis配置文件中的内容和顺序:


文件目录结构如下:


1.<properties>属性定义

可以把一些通用的属性值配置在属性文件中,加载到mybatis运行环境内。例如创建db.properties文件,然后在SqlMapperConfig.xml中进行配置。db.properties文件内容如下:



然后在SqlMapperConfig.xml中进行配置:


然后在<environments>标签中用${}符号做如下修改:



注意:Mybatis将按照下面的顺序来加载属性

  • 1.在properties标签之间定义的属性首先被读取。
  • 2.然后会读取properties标签内部resource或url的属性,它会覆盖已读取的同名属性。
  • 3.最后读取parameterType(即insert标签或是update标签或是…)传递的属性,它会覆盖已读取的同名属性。

所以我们建议使用properties标签时,不要在properties标签之间定义属性,只引用在.properties文件中定义的属性,并且.properties文件中定义的key值要有一些特殊的规则。例如我上述定义key值时前面都加了jdbc.的前缀。

2.<settings>全局参数配置

mybatis运行时可以调整一些全局参数(相当于软件的运行参数)。根据使用需求进行参数配置。但是要注意:小心配置,配置参数会影响mybatis的执行。

ibatis的全局配置参数中包括很多的性能参数(最大线程数、最大等待时间…),通过调整这些性能参数使ibatis达到高性能的运行,而mybatis没有这些性能参数,由mybatis自动调节。

3.<typeAliases>属性

可以将parameterType、resultType中指定的类型通过别名引用。MyBatis提供了很多的别名如下


这里我们采用自定义的别名,在SqlMapperConfig.xml中进行如下配置:


里面包括定义单个别名和批量别名定义(即一次性定义一个包下所有.java文件的别名)。

定义别名后这样我们在parameterType和resultType中使用时就不用再繁琐的指定类的全限定类名了,像下面这样使用即可


4.<typeHandlers>属性

类型处理器将java类型和jdbc类型进行映射,mybatis提供了很多类型处理器,一般情况下够用了。

5.<mapper>映射器属性

之前我们在配置文件中使用的<mapper>标签内容为:<mapper resource=“mapper/UserMapper.xml”/>,接下来我要讲的是另一种在配置文件中映射mapper动态代理的方法。在配置文件中这样配置<mapper class=“mapper.UserMapper”/>,这样的要求需要保证UserMapper.xml文件和UserMapper.java在同一个包下且.xml文件和.java文件名要同名。

同上方别名的配置,当包下出现多个Mapper.java和Mapper.xml时我们采用批量配置:<package name=“mapper”/>,代码如下:





本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508950.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转载保存】在python中如何用word2vec来计算句子的相似度

在python中&#xff0c;如何使用word2vec来计算句子的相似度呢&#xff1f; 第一种解决方法 如果使用word2vec&#xff0c;需要计算每个句子/文档中所有单词的平均向量&#xff0c;并使用向量之间的余弦相似度来计算句子相似度&#xff0c;代码示例如下&#xff1a; import …

Spark介绍

Spark Spark 是什么? Apache Spark?是用于大规模数据处理的快速和通用引擎. 速度:在内存中,运行程序比Hadoop MapReduce快100倍&#xff0c;在磁盘上则要快10倍. Apache Spark具有支持非循环数据流和内存计算的高级DAG执行引擎. 易用:可以使用Java&#xff0c;Scala&#…

MyBatis之使用resultMap实现高级映射

MyBatis之使用resultMap实现高级映射 2017/09/30对于数据库中对表的增删改查操作&#xff0c;我们知道增删改都涉及的是单表&#xff0c;而只有查询操作既可以设计到单表操作又可以涉及到多表操作&#xff0c;所以对于输入映射parameterType而言是没有所谓的高级映射的&#xf…

MyBatis之查询缓存

MyBatis之查询缓存 2017/09/30正如大多数持久层框架一样&#xff0c;MyBatis同样也提供了对查询数据的缓存支持。今后我们要学习的SpringMVC框架属于系统控制层&#xff0c;它也有它的缓存区域&#xff0c;对响应的jsp页面进行缓存&#xff1b;Spring属于系统业务层&#xff0c…

MyBatis3.x和Spring3.x的整合

MyBatis3.x和Spring3.x的整合 2017/10/021.mybatis和spring整合的思路 1.让spring管理SqlSessionFactory 2.让spring管理mapper对象和dao 使用spring和mybatis整合开发mapper代理及原始dao接口。 自动开启事务&#xff0c;自动管理sqlsession 3.让spring管理数据源(即数据库连接…

特征选择

特征选择是特征工程中的重要问题&#xff08;另一个重要的问题是特征提取&#xff09;&#xff0c;坊间常说&#xff1a;数据和特征决定了机器学习的上限&#xff0c;而模型和算法只是逼近这个上限而已。由此可见&#xff0c;特征工程尤其是特征选择在机器学习中占有相当重要的…

交叉验证

sklearn中的交叉验证&#xff08;Cross-Validation&#xff09; sklearn是利用python进行机器学习中一个非常全面和好用的第三方库&#xff0c;用过的都说好。今天主要记录一下sklearn中关于交叉验证的各种用法&#xff0c;主要是对sklearn官方文档 Cross-validation: evaluati…

机器学习名词解释

1. 损失函数 损失函数是用来估量你模型的预测值f(x)与真实值Y的不一致程度&#xff0c;它是一个非负实值函数,通常使用L(Y, f(x))来表示&#xff0c;损失函数越小&#xff0c;模型的鲁棒性就越好。损失函数是经验风险函数的核心部分&#xff0c;也是结构风险函数重要组成部分。…

【转载保存】推荐ApacheCN开源的一个机器学习路线图

转载&#xff1a;https://mp.weixin.qq.com/s/EMWFFPsaKaGc8FO1g-htzg 推荐ApacheCN开源的一个机器学习路线图 原创&#xff1a; 机器学习初学者 机器学习初学者 今天 推荐一个ApacheCN开源的一个机器学习路线图&#xff1a; https://github.com/apachecn/AiLearning 注意…

CNN(Convolutional Neural Network) 的基础

卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;简称CNN&#xff09;&#xff0c;是一种前馈神经网络&#xff0c;人工神经元可以响应周围单元&#xff0c;可以进行大型图像处理。卷积神经网络包括卷积层和池化层。 卷积神经网络是受到生物思考方式启发的ML…

语音识别学习日志 2019-7-14 语音识别基础知识准备2 {EM算法与混合高斯模型(Gaussian mixture model, GMM)}

https://blog.csdn.net/lin_limin/article/details/81048411会对GMM和EM做详细介绍 本文参考&#xff1a; http://www.ituring.com.cn/article/497545(GMM模型) https://blog.csdn.net/xmu_jupiter/article/details/50889023(GMM模型) http://www.cnblogs.com/wjy-lulu/p/7…

【爬虫】爬取带有cookie才能获取网页内容的新闻网站

工作任务&#xff1a; 今天老大让我跑取一个新闻网站&#xff1a;https://www.yidaiyilu.gov.cn/ 采坑记录&#xff1a; https协议&#xff0c;如果利用http协议去请求会报出如下信息&#xff1a; 错误&#xff1a;SSLHandshake错误就知道了&#xff0c;客户端与服务端进行连…

语音识别学习日志 2019-7-14 语音识别基础知识准备3 {Kmean算法分析与HMM(Hidden Markov Model)模型}

Kmean算法 聚类算法 对于"监督学习"(supervised learning)&#xff0c;其训练样本是带有标记信息的&#xff0c;并且监督学习的目的是&#xff1a;对带有标记的数据集进行模型学习&#xff0c;从而便于对新的样本进行分类。而在“无监督学习”(unsupervised learni…

语音识别学习日志 2019-7-15 语音识别基础知识准备4 {Baun-Welch算法}

HMM 前向算法(Forward Algorithm)详细解释参考: http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-1 http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-2 http://www.52nlp.cn/hmm-learn-best-practices-five-forward-algorithm-3…

【转载保存】B+树索引原理以及应用案例

地址&#xff1a;https://www.jianshu.com/p/486a514b0ded 利用c/c实现基于b树小型关系型数据库&#xff1a;https://github.com/enpeizhao/duck_db 利用java实现的基于b树的数据库案例&#xff1a;https://github.com/liumengjun/BPlusTreeIndex 1.什么是索引&#xff1f; …

语音识别学习日志 2019-7-16 语音识别基础知识准备5 {决策树算法(ID3、 C4.5、 CART)}

决策树算法(ID3、 C4.5、 CART) 决策树的定义 决策树学习采用的是自顶向下的递归方法&#xff0c;其基本思想是以信息熵为度量构造一颗熵值下降最快的树&#xff0c;到叶子节点处&#xff0c;熵值为0。其具有可读性、分类速度快的优点&#xff0c;是一种有监督学习。 决策树呈…

语音识别学习日志 2019-7-17 语音识别基础知识准备6 {维特比算法(Viterbi Algorithm)}

HMM 维特比算法(Viterbi Algorithm)详细解释参考:http://www.52nlp.cn/hmm-learn-best-practices-six-viterbi-algorithm-1 http://www.52nlp.cn/hmm-learn-best-practices-six-viterbi-algorithm-2 http://www.52nlp.cn/hmm-learn-best-practices-six-viterbi-algorithm-3 …

基于包围盒算法的三维点云数据压缩和曲面重建matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 包围盒构建 4.2 点云压缩 4.3 曲面重建 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ...........................................…

【转载保存】修改IK分词器源码实现动态加载词典

链接&#xff1a;http://www.gongstring.com/portal/article/index/id/59.html 当前IKAnalyzer从发布最后一个版本后就一直没有再更新&#xff0c;使用过程中&#xff0c;经常遇到需要扩展词库以及动态更新字典表的问题&#xff0c;此处给出一种解决办法&#xff08;注意&…

【转载保存】索引文件锁LockFactory

索引文件锁LockFactory LockFactory在Lucene中用来对索引文件所在的目录进行加锁&#xff0c;使得同一时间总是只有一个IndexWriter对象可以更改索引文件&#xff0c;即保证单进程内(single in-process)多个不同IndexWriter对象互斥更改&#xff08;多线程持有相同引用的IndexW…