2、mybatis的全局配置文件(mybatis笔记)

(工程mybatis03

一、Mybatis的全局配置文件,配置内容如下:

  • properties(属性)
  • settings(全局配置参数)
  • typeAliases(类型别名)
  • typeHandlers(类型处理器)
  • objectFactory(对象工厂)
  • plugins(插件)
  • environments(环境集合属性对象)
  • environment(环境子属性对象,environments的自标签)
  • transactionManager(事务管理,environment的自标签)
  • dataSource(数据源,environment的自标签)
  • mappers(映射器)

二、properties(属性)

  • 需求:将数据库的连接参数单独配置在db.properties中,只需要在SqlMapperConfig.xml中加载该db.properties的属性值。这样就不需要在硬编码了。原因是方便对参数进行统一管理,其他的xml可以引用该配置文件。
  • 建议:不要在properties标签体内添加任何属性值,只将属性值定义在db.properties中,在db.properties中定义属性名要有一定的特殊性。比如jdbc.username

db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3305/mybatis
jdbc.username=root
jdbc.password=walp1314

SqlMapConfig.xml文件中配置此文件

    <!-- 加载属性文件 -->
    <properties resource="db.properties">
        <!-- 在这里还可以配置一些属性名和值,这里的值是首先被读取的,然后再读取文件中的属性,同名的会覆盖
        最后才读取parameterType传递的属性,也会覆盖掉同名的,这里要注意!!! -->
    </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}" />

三、setttings全局参数配置

Mybatis框架在运行时可以调整一些运行参数,比如开启二级缓存、延迟加载。参考mybatis-settings.xlsx文件。在<properties>标签后面配置。

四、typeAliases别名(重点)

需求:在mapper.xml中定义了很多StatementStatement需要parameterType指定输入参数的类型、需要resultType指定输出结果的映射类型。
如果在指定类型时输入类型的全路径,不方便开发,可以定义一些针对上面两个参数定义一些别名,比如```parameterType="java.lang.Integer"``,对于这些类型mybatis都为我们定义好了。
而针对pojo类型的别名需要我们自己定义

    <!-- typeAliases-->
    <typeAliases>
        <!-- 针对单个别名定义 -->
        <typeAlias type="cn.itcast.pojo.User" alias="User"/>
    </typeAliases>

说明:之后我们在使用pojo的时候就可以直接写其别名。如

<select id="findUserByName" parameterType="java.lang.String" resultType="User">

但是这是单条记录的情况,对于多条记录的情况为(推荐使用):

    <!-- typeAliases-->
    <typeAliases>
        <package name="cn.itcast.pojo"/>
    </typeAliases>

说明:批量别名定义 ,需要指定一个包名,mybatis自动扫描pojo类,自动定义别名,别名就是类名(首字母大小或小写都行)。

五、typeHandlers(类型处理器)

在mybatis中通过typeHandlers完成jdbc类型和java类型的转换。一般不需要自定义,mybatis都帮我们做好了。

六、mappers映射器

单个映射

<mappers>
    <mapper resource="mapper/UserMapper.xml" />
</mappers>

还可以使用这种方式:

<mapper url="http://..."/>

当然还可以通过接口来进行映射,通过mapper接口来加载,要指定的不是映射文件了,而是指定的是class,需要遵循一定的规范:需要将mapper接口的类型和mapper.xml名称保持一致,且在一个目录,前提是使用的是mapper代理的方法。

<mapper class="cn.itcast.mapper.UserMapper"/>

但是这是针对映射文件很少的方式,如果映射文件很多则比较麻烦,下面看批量映射(推荐使用):

<package name="cn.itcast.mapper"/>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 6,166评论 0 4
  • Java数据持久化之mybatis 一. mybatis简介 1.1 原始的JDBC操作: Java 通过 Jav...
    小Q逛逛阅读 5,315评论 0 16
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,349评论 19 139
  • 文/柴da瑞 1 前不久,和朋友在约定好的地方碰面,还没坐稳,对面的朋友就倾身过来,说:别动,这儿有一根白头发。 ...
    胡李胡荼阅读 289评论 0 4
  • 使用jquery mobil 语法 描述 $(this) 当前 HTML 元素$("p") 所有 元素$(...
    ZGKzm阅读 286评论 0 0

友情链接更多精彩内容