本次全部学习内容: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. sql语句将数字转为汉字展示

    select [表字段Name] , ( case [表字段OrderState] when 1 then '已核销' when 2 then '确认前的移动端取消'when 3 then '已完成' ...

  2. lintcode题目记录4

    Russian Doll Envelopes    Largest Divisible Subset     Two Sum - Input array is sorted Russian Doll ...

  3. python文件修改 核心5步,函数实现修改任意文件内容

    文件修改 核心5步1.以读的模式打开原文件,产生句柄f12.以写的模式打开一个新文件,产生句柄f23.读取原文件的内容并将原文件需要替换的内容修改写入到新文件4.删除原文件5.把新文件重名了成原文件 ...

  4. 02HTML-<img>

    一.img的属性:alt/title alt属性是替换名字,是给搜索引擎抓取使用,当图片显示不出来时,就会显示出alt的内容: title 属性是提示文字,当鼠标移到图片上的时候会显示出来,大部分的标 ...

  5. google搜索使用技巧

    1.输入框所有空格都被理解为加号2.搜索多个单词时,需要加上引号,会当字符串处理3.使用-(减号)剔除指定条件,如:'mongdb'-'nodejs'4.可以使用通配符,如'vue *'5.在指定网站 ...

  6. Intellij IDEA快捷键大全汇总

    Alt+回车 导入包,自动修正 Ctrl+N   查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L  格式化代码 Ctrl+Alt+O 优化导入的类和包 Alt+Insert 生成代码 ...

  7. lua中使用table实现类和继承

    --因为只有当读写不存在的域时,才会触发__index和__newindex classA = {className = "classA",name="classAIns ...

  8. Hadoop Archives档案

    HDFS 并不擅长存储小文件,因为每个文件最少一个 block,每个 block 的元数据都会在 NameNode 占用内存,如果存在大量的小文件,它们会吃掉NameNode 节点的大量内存. Had ...

  9. 【转】winrar命令行详解

    从命令行也可以运行 WinRAR 命令,常规的命令行语法描述如下: WinRAR  <命令> -<开关1> -<开关N> <压缩文件> <文件.. ...

  10. dll的制作

    https://blog.csdn.net/guanchanghui/article/details/1621031