本次全部学习内容:MyBatisLearning

 
全局配置文件(本次案例中):
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI0AAAAZCAIAAACDyzqnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADIElEQVR42u2ZXW7aQBCAuU6vwAl6EqtVrpCXPgSlVVqshFBI8yeaKDQkFCHFUqVWfe0B0pfykB9RRSEQIRLwD5bosGvsWe/agCEUlB2NtuuNvTs738zsNon1pCyCxKQLJCcpkpPkJGUxOP3UVoUqnTVfnL6fvTMt26fn5ddTRaUpMUWba89U1HgMRFHh37haeaJVRvWDgNO38hrP6c+P5d/DUcGqjgxb3LWPuoN3BJkqun88S6LFQ98sz8C55HRWShqmTVU3u6S1L38lAdV5+ZVW+hDimsGasLnw5RlOcRDWE04wR/MPYeQtrykRpoE5ng7OdDiVTtfbRhf0xculpTfZtm5DC/22YXcMu1xcD4zAMXbGcCK1BZtL5lKjuQqHy0T+m3dOhS/ph073oWMlMgXA0+r0gUGfDHZPC5tjOgiVIC9FWE4a6xf6gIec/MJljH7IVdowB2NLXEvJB6qCrWOKZgXHkPsTQRgRGz0rSJdMrjnGOwPYDZNwOjzKNh+7RC1KCFro05F8PjPsUMALM/D6DwGc0ItoxHm5oioDj7CveXO744Gc0OLMPKhKoqMILx5Hb+Io4RdyvvI+RqcsdQ67xYk47X3ebrQsqhQStI2WSUdyB59GuydpguhmNuAzeeAk9x32Wy6jKmyt5OmGFzL3c1/aBnMK3AsfqnEUVuH9CTht7e/XmiZVN59qTYuO7Ob2xjgkxuDkVSC/q3DssvcwAacgUAJOfDgsFKfNnYObexOUErq5NygtOpjZzQXmEb5joWwX1QoRJ6Y09ISJhc4AfBwwD/6S5Nz3uLrHERnCKWgvXLUUls/pc1K3jqp142/dpPe9at2k971qw4Dx1PbhkIrnO6O8Q9mXLIK08J/ZyFXOFIrC5JMS8B824Y0h5B4xEifGEG8vqGAzBvvrybQ5vf94fF0zQK+gvYOOfn2nQ/+KtMlsfj5uu766N3OZ1c09kNNq+uTiVqd6SfTi1nAf19LHz5UTruxsFf0vnBKpYmKjuLJRhM5KirZf6SDo29TJ880nVNlnCakn/66xwL8vlyI5SZGcJCcpkpOUkeQfyTeHQq0XY1kAAAAASUVORK5CYII=" alt="" />
 
配置内容and顺序如下:
properties(属性)
settings(全局配置参数)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境集合属性对象)
  environment(环境子属性对象)
    transactionManager(事务管理)
    dataSource(数据源)
mappers(映射器)
 
 
 
 
properties(属性):
将数据库连接参数单独配置在db.properties中,只需要在SqlMapConfig.xml中加载db.properties的属性值。
在SqlMapConfig.xml中就不需要对数据库连接参数硬编码。
将数据库连接参数只配置在db.properties中,原因:方便对参数进行统一管理,其它xml可以引用该db.properties。
 
属性
property标签
resource
url
 
resource:相对于工程的路径
db.properties内容:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3307/shopping
jdbc.username=root
jdbc.password=
在SqlMapConfig.xml加载db.properties
     <!-- 加载属性文件 -->
<!-- properties -->
<properties resource="db.properties"></properties>
.......
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
.......
property标签
      <!-- 加载属性文件 -->
<!-- properties -->
<properties resource="db.properties">
<!-- 可以配置一些属性名和属性值 -->
<property name="jdbc.root" value="root"/>
</properties>
注意: MyBatis 将按照下面的顺序来加载属性:
在 properties 元素体内定义的属性首先被读取。
然后会读取properties 元素中resource或 url 加载的属性,它会覆盖已读取的同名属性。
最后读取parameterType传递的属性,它会覆盖已读取的同名属性。
 
因此,通过parameterType传递的属性具有最高优先级,resource或 url 加载的属性次之,
最低优先级的是 properties 元素体内定义的属性。
 
url:使用绝对路径
 
 
settings全局的参数配置:
mybatis运行时可以调整运行参数
如:二级缓存,延迟加载,驼峰命名等.......
全局参数会影响mybatis的运行行为
 
 
 
typeAliases(类型别名)(important)
1.在mapper.xml中,定义很多的statement,statement需要parameterType指定输入参数的类型、需要resultType指定输出结果的映射类型。
2.如果在指定类型时输入类型全路径,不方便进行开发,可以针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中通过别名定义,方便开发。
 
 
默认支持的别名:

自定义别名:
 
单个定义别名:
在全局配置文件中:
type:起别名的全类名
alias:起的别名
<!-- 别名 -->
<typeAliases>
<!-- 针对单个别名的定义 -->
<typeAlias type="com.MrChengs.po.User" alias="user"/>
</typeAliases>
找到UserMapper.xml:
修改
     <!-- 根据id查询 -->
<!-- public User findUserById(int id) throws Exception; -->
<select id="findUserById" parameterType="int" resultType="user">
select * from user where id=#{id}
</select>
然后在找到其运行文件进行测试是可以查询到
把user修改之后,得不到查询结果,还会有异常
 
 批量起别名:

<typeAliases>
<!-- 批量起别名 -->
<!-- 指定自动扫描的po类,自动定义 别名,别名就是类名(首字母大小写都可以)-->
<package name="com.MrChengs.po"/>
</typeAliases>

其余代码不变进行测试!!!

 
 
 
 
typeHandlers(类型处理器)
mybatis中通过typeHandlers完成jdbc类型和java类型的转换。
通常情况下,mybatis提供的类型处理器满足日常需要,不需要自定义.
 
类型处理器用于java类型和jdbc类型映射,如下:
<select id="findUserById" parameterType="int" resultType="user">
select * from user where id = #{id}
</select>

mybatis支持的:

 
 
 mappers(映射器)

mapper的映射配置
 
单个映射文件的加载:
使用resource加载单个文件:

     <mappers>
<mapper resource="sqlmap/User.xml"/>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
单个加载:
通过class:
     <!-- 加载 映射文件 -->
<mappers>
<mapper resource="sqlmap/User.xml"/> <!-- 通过mmapper接口加载映射文件 -->
<!-- 遵循规范:需要将mapper接口类和mapper.xml映射文件名保持一致,且在同一个目录 -->
<!-- 前提要使用mapper代理方法 --> <mapper class="com.MrChengs.mapper.UserMapper"/>
</mappers>

此时是可以测试成功的

 
 
 批量加载:
     <mappers>
<mapper resource="sqlmap/User.xml"/> <!-- 批量加载 -->
<!-- 指定mapper接口的包名,自动扫描包下的 -->
<!-- 遵循规范:需要将mapper接口类和mapper.xml映射文件名保持一致,且在同一个目录 -->
<!-- 前提要使用mapper代理方法 -->
<!-- 推荐使用 -->
<package name="com.MrChengs.mapper"/>
</mappers>

此时是可以测试成功的

 

MyBatis框架(4)全局文件的更多相关文章

  1. Mybatis框架基于映射文件和配置文件的方式,实现增删改查,可以打印日志信息

    首先在lib下导入: 与打印日志信息有关的架包 log4j-1.2.16.jar mybatis架包:mybatis-3.1.1.jar 连接数据库的架包:mysql-connector-java-5 ...

  2. Mybatis框架中Mapper文件传值参数获取。【Mybatis】

    1.参数个数为1个(string或者int) dao层方法为以下两种: /** * 单个int型 */ public List<UserComment> findByDepartmentI ...

  3. MyBatis框架的文件配置

    第一步:log4j.properties的配置 原因:Mybatis的日志输出是依赖与log4j的,所以必须要配置 # Global logging configuration log4j.rootL ...

  4. MyBatis框架的使用及源码分析(四) 解析Mapper接口映射xml文件

    在<MyBatis框架中Mapper映射配置的使用及原理解析(二) 配置篇 SqlSessionFactoryBuilder,XMLConfigBuilder> 一文中,我们知道mybat ...

  5. (转)MyBatis框架的学习(四)——Mapper.xml文件中的输入和输出映射以及动态sql

    http://blog.csdn.net/yerenyuan_pku/article/details/71893689 前面对MyBatis框架的学习中,我们对Mapper.xml映射文件多少有些了解 ...

  6. idea插件(mybatis框架下mapper接口快速跳转对应xml文件)亲测好用!

    我相信目前在绝大部分公司里,主要使用的框架是S(spring)S(spring MVC)M(mybatis),其中mybatis总体架构是编写mapper接口,框架扫描其对应的mapper.xml文件 ...

  7. mybatis框架中XxxxMaper.xml的文件

    我们知道在mybatis框架中,config.xml中会关联到许多的XxxxMapper的xml文件,这些文件又对应着一个个的接口,来观察下这些xml文件 从以下这个文件为例子: <?xml v ...

  8. 【mybatis xml】数据层框架应用--Mybatis 基于XML映射文件实现数据的CRUD

    使用MyBatis框架进行持久层开发 MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架. MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索. MyBa ...

  9. Hibernate框架与Mybatis框架的对比

    学习了Hibernate和Mybatis,但是一直不太清楚他们两者的区别的联系,今天在网上翻了翻,就做了一下总结,希望对大家有帮助! 原文:http://blog.csdn.net/firejuly/ ...

  10. Spring+SpringMvc+Mybatis框架集成搭建教程二(依赖配置及框架整合)

    依赖导入以及框架整合 (1).打开项目的pom.xml文件,声明依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" x ...

随机推荐

  1. 特殊引用类型(string)

    private string FuncWithParameters(int param1, String param2, List<string> param3) { // 我们在这里改变 ...

  2. Octotree Chrome安装与使用整理

    Octotree Chrome作用: 主要使你在github查看项目时可以清晰明了的看到项目的结构以及具体代码,使下载代码更具有目的性,减少不必要代码的下载,而且看起来更清楚. 效果图:(安装插件前) ...

  3. 【3】.net MVC 使用IPrincipal进行Form登录即权限验证

    1.在MVC项目中添加用户类,可以根据实际项目需求添加必要属性 public class UserData { /// <summary> /// ID /// </summary& ...

  4. <td>标签clospan和rowspan 可横跨列数和行数

    <td colspan="2"> <input type="text" name="reason_other" size= ...

  5. 一周一个小demo — vue.js实现备忘录功能

    这个vue实现备忘录的功能demo是K在github上找到的,K觉得这是一个用来对vue.js入门的一个非常简单的demo,所以拿在这里共享一下. (尊重他人劳动成果,从小事做起~  demo原git ...

  6. Windows API编程----枚举系统进程

    1.该函数可以检索系统中的每个进程的标识符(进程ID) BOOL WINAPI EnumProcesses( _Out_ DWORD *pProcessIds, _In_  DWORD cb, _Ou ...

  7. Visual Studio Code调试electron主进程

    Visual Studio Code调试electron主进程 作者: jekkay 分类: electron 发布时间: 2017-06-11 14:56  一·概述 此文原出自[水滴石]: htt ...

  8. ubuntu18.04安装谷歌浏览器

    sudo wget http://www.linuxidc.com/files/repo/google-chrome.list -P /etc/apt/sources.list.d/ wget -q ...

  9. react-native-mapbox-gl

    mapbox是基于谷歌地图集成的地图插件,可以在很多平台使用,具体可以看mapbox官网.这里具体讲解“react-native-mapbox-gl”插件,是mapbox结合react native封 ...

  10. 红黑树(R-B Tree)

    R-B Tree简介 R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树.红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black). ...