mybatis中的配置文件

1.全局配置文件

1.1 properties:读取外部资源

properties文件,以key-value形式读取,以=为分隔符

例如:

resources下创建db.properties文件:

在全局配置文件中进行加载:

    <properties  resource="db.properties"><property name="userName" value="root"/><property name="password" value="1234"/></properties>

读取配置位置:

<property name="username" value="${userName}"/>
<property name="password" value="${password}"/>

如果一个属性在不只一个地方进行了配置,那么,MyBatis 将按照下面的顺序来加载:

  • 首先读取在 properties 元素体内指定的属性。

  • 然后根据 properties 元素中的 resource 属性读取类路径下属性文件,或根据 url 属性指定的路径读取属性文件,并覆盖之前读取过的同名属性。

  • 最后读取作为方法参数传递的属性,并覆盖之前读取过的同名属性。

因此,通过方法参数传递的属性具有最高优先级,resource/url 属性中指定的配置文件次之,最低优先级的则是 properties 元素中指定的属性。

1.2 setting:全局的参数配置

例如:

    <settings><!--开启二级缓存--><setting name="cacheEnabled" value="true"/></settings>

1.3 typeAliases:类型别名

类型别名是给设定一个较短的名字,他是和XML配置有关,存在的意义是减少全限定名的冗余。

<typeAliases><!--给单个类取别名type属性:给定pojo类的全路径alias属性:给定的别名 可以随便给定,一般建议是pojo类的首字母小写的类型--><typeAlias type="com.jing.pojo.Student" alias="student"/><!--批量的取别名name属性给定的是要批量取别名的包路径默认的别名是包下的类名首字母小写,其他不变--><package name="com.jing.pojo"/>
</typeAliases>

mybatis-config.xml:

studentmapper.xml:

1.4 environments:环境变量

 <!--配置数据源--><environments default="development"><!--环境配置,可以配置多个环境--><environment id="development"><!--事务管理器 使用JDBC的事务管理器--><transactionManager type="JDBC"/><!--数据源  池类型的数据源--><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://127.0.0.1:3306/jing"/><property name="username" value="${userName}"/><property name="password" value="${password}"/></dataSource></environment></environments>

1.5 mappers:映射器

定义的SQL语句的配置文件,需要告诉mybatis如何找到这些SQL

主要提供了三种形式:

  <!--映射文件引入--><mappers><!--resource方式: 指定单个映射文件,--><mapper resource="mapper/studentmapper.xml"/><!--class方法:通过mapper的接口文件来加载单个映射文件,将mapper接口文件和mapper.xml放在同一个目录下,且名称相同--><mapper class="com.jing.mapper.StudentMapper"/><!--package方式:批量加载映射文件,将mapper接口文件和mapper.xml放在同一个目录下,且名称相同--><package name="com.jing.mapper"/></mappers>

2.mapper.xml配置文件解析

2.1 查询操作:

 <!--resultMap:显性指定映射关系id属性:取名字type属性:映射的Java的pojo类的全限定名id标签:主键使用id标签,一般返回结果只有一个id标签result标签:非主属性使用result标签进行显性指定映射关系property属性:映射java的属性名column属性:数据库中字段名javaType:java属性名的类型jdbcType:数据库字段名的类型typeHandler:指定类型转换器-->
​<resultMap id="studentMap" type="student"><id property="id" column="SID"/><result property="Sname" column="Sname"/><result property="Ssex" column="Ssex"/><result property="Sage" column="Sage"/></resultMap>
​<!--select标签:查询操作标签id:statementID,一般是对应接口中方法名称,在同一个命名空间下具有唯一性,parameterType:表示参数类型parameterMap:表示参数类型 入参是Map类型resultType:指定返回类型resultMap:指定返回结果类型
​#{XXX}:表示占位符  ?--><select id="selectStudentById"  parameterType="int" resultMap="studentMap">select * from student where SID = #{id}</select>

resultMap和resultType的异同点:

相同点:指定返回结果的

不同点: resultType:给定映射的java对象,完成自动映射,如果数据库字段名和java字段一致建议选用resultType

resultMap:需要显性的指定映射关系,如果数据库字段名和java字段不一致必须选用resultMap显性指定映射关系

2.2 删除操作

  <!--delete标签:删除数据id:statementID,一般是对应接口中方法名称,在同一个命名空间下具有唯一性,parameterType:入参类型--><delete id="deleteStudentById" parameterType="int"  >delete from student where SID = #{id}</delete>
​

2.3 插入操作

<!--insert标签:插入数据id:statementID,一般是对应接口中方法名称,在同一个命名空间下具有唯一性,parameterType:入参类型useGeneratedKeys:表示是否采用数据自增主键 true|falsekeyProperty:主键对应的Java类的属性名 ()keyColumn:主键对应的数据库的字段名--><insert id="insertStudent" parameterType="student"  keyProperty="" keyColumn="" useGeneratedKeys="true">
</insert>

2.4 变更操作

<!--update标签:变更操作id:statementID,一般是对应接口中方法名称,在同一个命名空间下具有唯一性,parameterType:入参类型keyProperty:主键对应的Java类的属性名--><update id="updateStudent"  parameterType="student"></update>

mybatis中常用配置文件相关推荐

  1. eclipse中hibernate和mybatis中xml配置文件的没有标签提醒解决方法

    当我们使用eclipse编写Mybatis或hibernate的xml文件时,面对众多标签的配置文件,却没有自动提醒,对于工作和学习都十分不方便. 之所以没有自动提醒,是因为dtd文件没有加载成功. ...

  2. Mybatis中的OGNL使用总结=

    博客01----Mybatis中的OGNL使用总结=================== 2016年09月07日 23:47:41 dijkstral 阅读数:7362 经常在写mapper中用到一些 ...

  3. MyBatis中的jdbcType

    MyBatis中常用的jdbcType BIT FLOAT CHAR TIMESTAMP OTHER UNDEFINEDTINYINT REAL VARCHAR BINARY BLOB NVARCHA ...

  4. MyBatis中的常用注解

    在MyBatis中,一些SQL语句例如(select * from 表名;delete from 表名)等等,这些SQL语句比较简单,没有那些复杂的关联关系,但是在不用注解的情况下,要执行这些方法的话 ...

  5. .net后台怎么提取html中的多个图片的绝对地址_SpringBoot中yml配置文件说明和一些常用配置项说明...

    1. 配置文件说明 Springboot启动默认扫描的配置为classes目录下的application.yml 或者是 application.properties 我们项目中是使用的yml格式的配 ...

  6. Destoon数据库配置文件在哪_SpringBoot中yml配置文件说明和一些常用配置项说明

    1. 配置文件说明 Springboot启动默认扫描的配置为classes目录下的application.yml 或者是 application.properties 我们项目中是使用的yml格式的配 ...

  7. 解决eclipse中mybatis的xml配置文件无代码提示问题

    解决eclipse中mybatis的xml配置文件无代码提示问题 参考文章: (1)解决eclipse中mybatis的xml配置文件无代码提示问题 (2)https://www.cnblogs.co ...

  8. Python中常用的配置文件

    Python中常用的配置文件 常见的配置文件 py文件 变量方式 类方式 yaml文件 yaml文件基础知识 yaml作为配置文件 python读取yaml文件 python写入yaml文件 yaml ...

  9. linux常用的系统配置文件,Linux系统中的常用配置文件.pdf

    Lamp兄弟连32期 刘伟 Linux 系统中常用的配置文件汇总解析 注:为了方便记忆和学习,对 Linux 系统中常用的配置文件有一个整体上的认识和把握, 知道一些常用配置文件有哪些主要的选项和用途 ...

最新文章

  1. R语言计算回归模型每个样本(观察、observation、sample)的杠杆值(leverage)实战:如果一个样本的预测变量比其他样本的预测变量值更极端,那么被认为具有很高的杠杆作用
  2. LTE: UE特定的参考信号
  3. linux环境下获取真实的ip地址
  4. qlabel设置换行符无效_php 字符串中的\n换行符无效、不能换行的解决方法
  5. 避免代码冗余,使用接口和泛型重构Java代码
  6. python爬虫xpath教程_使用 Xpath 进行爬虫开发
  7. linux-noshell的模式
  8. Matlab符号数学(Symbolic Math with MATLAB)MATLAB解方程
  9. python语音属于什么语音_python语音识别
  10. 16qam星座图 matlab,16QAM星座图
  11. AB触摸屏2711P-T12W22A9P、2711P-T10C4A9,2711P-T10C22D8S-B、2711P-T10C22D9P-B、2711P-T12C10D2
  12. java 只保留字母_java编程问题,急急急!输入一个字符串,如果字符串中存在字母a的次数大于1,则只保留第一个a,...
  13. delphi技巧总结收集
  14. 截取音乐片段的计算机软件,电脑上剪辑音乐的软件
  15. Python小白逆袭大神-结营心得-alading
  16. 2019年年终总结~平淡生活
  17. 读懂2014年全球互联网广告新生态
  18. CSMACD协议与CSMACA协议
  19. C++实现内存“垃圾”回收机制
  20. 面试/笔试第一弹 —— 计算机网络面试问题集锦【转】

热门文章

  1. python 视频 特效_ffmpeg-python 任意提取视频帧
  2. 传感器433报文协议
  3. c语言抢答器程序,8路抢答器,小白出品,c语言编写
  4. 词法分析器flex和语法分析器lemon的初步使用
  5. PHP调用C语言实现接口方法
  6. R语言数字转字符串:自动补0
  7. 探探涉黄遭下架,但社交黑产会消失吗?
  8. DSRC与LTE-V2X的区别简述
  9. 解决arcgis中Lambert conformal conic projection存在的自动变换地理坐标系问题(可自定义为WGS84等任意地理坐标系)
  10. C语言中有符号数和无符号数的问题