本次全部学习内容: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. linux创建日期文件名

    linux创建文件名添加当前系统日期时间的方法 使用`date +%y%m%d` Example: mkdir `date +%y%m%d` tar cfvz /tmp/bak.`date +%y%m ...

  2. POI 2000 ------Stripes

    Stripes Time Limit:1000MS Memory Limit:30000KBTotal Submit:94 Accepted:43 Description Stripes is a t ...

  3. 2048小游戏4X4C语言

    */ #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<time.h> v ...

  4. 使用maven搭建Spring MVC

    在maven项目中搭建SpringMvc 1.pom文件 <span style="white-space:pre"> </span><propert ...

  5. thinkphp引入头文件

    <include File="Public:regheader" />

  6. JS判断数字类型

    JavaScript判断输入是否为数字类型的方法总结 前言 很多时候需要判断一个输入是否位数字,下面简单列举集中方法. 第一种方法 isNaN isNaN 返回一个 Boolean 值,指明提供的值是 ...

  7. Office - InfoPath

    1. 移除隐藏空间后剩余的空白: http://social.technet.microsoft.com/Forums/sharepoint/zh-TW/3dea3014-f808-428b-b283 ...

  8. .NET开源工作流RoadFlow-流程运行-运行时监控

    流程实例参与者都可以随时查看流程实例的运行情况,如果是待办任务,则在待办事项列表的后面点查看,如果是已完成任务则可以在已办事项列表的后面点查看: 打开之后默认为列表方式显示流程的处理过程,还可以点图形 ...

  9. 故障排除:无法启动、访问或连接到 Azure 虚拟机上运行的应用程序

    有多种原因可导致无法启用或连接到在 Azure 虚拟机 (VM) 上运行的应用程序.原因包括应用程序未在预期端口上运行或侦听.侦听端口受到阻止,或网络规则未将流量正确传递到应用程序.本文说明有条理地找 ...

  10. sqlserver根据条件生成插入语句--单表

    ALTER proc [dbo].[proc_insert] (@tablename varchar(256),@where varchar(max))asbeginset nocount ondec ...