mybatis-config.xml-配置文件详解

文章目录

  • mybatis-config.xml-配置文件详解
    • 说明
    • 文档地址:
    • 配置文件属性解析
      • properties 属性
        • 应用实例
      • settings 全局参数定义
        • 应用实例
      • typeAliases 别名处理器
        • 举例说明
      • typeHandlers 类型处理器
      • environments 环境
        • environment 属性
        • 应用实例
      • mappers配置

mybatis-config.xml-配置文件详解

说明

mybatis 的核心配置文件(mybatis-config.xml),比如配置jdbc 连接信息,注册mapper等等,我们需要对这个配置文件有详细的了解。

文档地址:

官方文档: https://mybatis.org/mybatis-3/zh/configuration.html

配置文件属性解析

properties 属性

通过该属性,可以指定一个外部的jdbc.properties 文件,引入我们的jdbc 连接信息。

应用实例

  1. 创建NLC_MyBatis\mybatis_quickstart\src\main\resources\jdbc.properties
jdbc.user=root
jdbc.password=123456
jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis?userSSL=true&userUnicode=true&char
acterEncoding=UTF-8
jdbc.driver=com.mysql.jdbc.Driver
  1. 修改mybatis-confing.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration><!--引入外部的jdbc.properties--><properties resource="jdbc.properties"/><environments default="development"><environment id="development"><!--配置事务管理器--><transactionManager type="JDBC"/><!--配置数据源1. 我们使用外部的properties文件来设置相关的值2. 这个属性文件,需要统一放在 resources目录/类加载路径--><dataSource type="POOLED"><!--配置驱动--><property name="driver" value="${jdbc.driver}"/><!--从外部文件动态使用--><!--配置连接mysql-url解读:1. jdbc:mysql 协议2. 127.0.0.1:3306 : 指定连接mysql的ip+port3. mybatis: 连接的DB4. useSSL=true 表示使用安全连接5. &amp; 表示 & 防止解析错误6. useUnicode=true : 使用unicode 作用是防止编码错误7. characterEncoding=UTF-8 指定使用utf-8, 防止中文乱码--><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.user}"/><property name="password" value="${jdbc.pwd}"/></dataSource></environment></environments>
    
    1. 修改父项目的pom.xml(如果已经配置了*.properties 就不用再配置) 并完成测试

settings 全局参数定义

  1. 感兴趣的可以看手册
  2. settings 列表,通常使用默认

应用实例

 <!--配置MyBatis自带的日志输出-查看原生的sql--><settings><setting name="logImpl" value="STDOUT_LOGGING"/></settings>

typeAliases 别名处理器

  1. 别名是为Java 类型命名一个短名字。它只和XML 配置有关,用来减少类名重复的部分

  2. 如果指定了别名,我们的MappperXxxx.xml 文件就可以做相应的简化处理

  3. 注意指定别名后,还是可以使用全名的

举例说明

  1. 修改NLC_MyBatis\mybatis_quickstart\src\main\resources\mybatis-config.xml
 <!--配置别名--><typeAliases><!-- 为某个mapper 指定一个别名, 下面可以在XxxxxMapper.xml 做相应简化处理--><!--<typeAlias type="com.nlc.entity.Monster" alias="Monster"/>--><!--如果一个包下有很多的类,我们可以直接引入包,这样该包下面的所有类名,可以直接使用--><package name="com.nlc.entity"/></typeAliases>
  1. 修改MonsterMapper.xml 并完成测试
<!--没有在mybatis-config.xml 指定typealiases 时,需要给Monster 指定全类名
<insert id="addMonster" parameterType="com.nlc.entity.Monster"-->
<!-- useGeneratedKeys="true" keyProperty="id"--><insert id="addMonster" parameterType="Monster" useGeneratedKeys="true" keyProperty="id"><!--useGenerated Keys是一个在数据库操作中常用的选项或属性。它用于指示数据库返回生成的主键值,keyProperty 用来定义和操作对象的主键。
-->INSERT INTO monster (age,birthday,email,gender,name,salary)VALUES(#{age},#{birthday},#{email},#{gender},#{name},#{salary})
</insert>

typeHandlers 类型处理器

  1. 用于java 类型和jdbc 类型映射
  2. Mybatis 的映射基本已经满足,不太需要重新定义
  3. 这个我们使用默认即可,也就是mybatis 会自动的将java 和jdbc 类型进行转换.
  4. java 类型和jdbc 类型映射关系一览[ 手册]
    https://mybatis.org/mybatis-3/zh/configuration.html#typeHandlers

environments 环境

1、MyBatis 可以配置多种环境,比如开发、测试和生成环境需要有不同的配置

2、每种环境使用一个 environment 标签进行配置并指定唯一标识符

3、可以通过 environment 标签中的 default 属性指定一个环境的标识符来快速的切换环境

environment 属性

environments:指定具体环境,mybatis 可以配置多种环境,default 指定使用某种环境,可以达到快速切换环境。

environment:配置一个具体的环境信息,id属性代表当前环境的唯一标识,

必须有下面两个标签:

​ transactionManager:事务管理器

​ dataSource:数据源

应用实例

<environments default="development"><environment id="development"><!--配置事务管理器--><transactionManager type="JDBC"/><!--配置数据源解读1. 我们使用外部的properties文件来设置相关的值2. 这个属性文件,需要统一的放在 resources目录/类加载路径--><dataSource type="POOLED"><!--配置驱动--><property name="driver" value="${jdbc.driver}"/><!--配置连接mysql-url解读:1. jdbc:mysql 协议2. 127.0.0.1:3306 : 指定连接mysql的ip+port3. mybatis: 连接的DB4. useSSL=true 表示使用安全连接5. &amp; 表示 & 防止解析错误6. useUnicode=true : 使用unicode 作用是防止编码错误7. characterEncoding=UTF-8 指定使用utf-8, 防止中文乱码8.温馨提示:不要背,直接使用即可--><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.user}"/><property name="password" value="${jdbc.pwd}"/></dataSource></environment>
</environments>

mappers配置

  1. resource 注册Mapper 文件: XXXMapper.xml 文件(常用)
<mapper resource="com/nlc/mapper/MonsterMapper.xml"/><!--解读1. 如果是通过注解的方式,可不再使用 MonsterMapper.xml2. 但是需要在mybatis-config.xml注册/引入含注解的类3. 如果没有引入,不能使用-->
  1. class:接口注解实现(使用过)
 <!--解读1. 如果是通过注解的方式,可不再使用 MonsterMapper.xml2. 但是需要在mybatis-config.xml注册/引入含注解的类3. 如果没有引入,不能使用--><mapper class="com.nlc.mapper.MonsterAnnotation"/>
  1. url:外部路径,使用很少,不推荐,

    <mapper url="file:///D:\yy\kk\yy\MOnsterMapper.xml" />
    
  2. package 方式注册: 并测试

<!--
1. 当一个包下有很多的Mapper.xml 文件和基于注解实现的接口时,
为了方便,我们可以以包方式进行注册
2. 将下面的所有xml 文件和注解接口都进行注册
-->
<package name="com.nlc.mapper"/>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/14654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言字符串的处理

用惯了Java C#这些语言&#xff0c;C语言中处理字符串还是有些不习惯的&#xff0c;所以这里写一下学习笔记。 C中字符串就是字符数组&#xff0c;是指向字符的指针&#xff0c;并且以空字符 \0 结尾&#xff0c;字符串作为函数的参数传递时一般使用指针类型&#xff0c;使用数…

运维高级--shell脚本完成分库分表

为什么要进行分库分表 随着系统的运行&#xff0c;存储的数据量会越来越大&#xff0c;系统的访问的压力也会随之增大&#xff0c;如果一个库中的表数据超过了一定的数量&#xff0c;比如说MySQL中的表数据达到千万级别&#xff0c;就需要考虑进行分库分表&#xff1b; 其…

解决kite在jupyter lab中显示not running问题

1、问题描述 在anaconda中启动jupyter lab前&#xff0c;安装了jupyterlab-kite。重启jupyter lab&#xff0c;不可以正常使用kite&#xff0c;显示not running。 尝试过重装jupyterlab、jupyterlab-kite等各种方式&#xff0c;但都不管用。经过多次试验与网上查找了诸多文献…

iOS-持久化

目的 1.快速展示&#xff0c;提升体验 已经加载过的数据&#xff0c;用户下次查看时&#xff0c;不需要再次从网络&#xff08;磁盘&#xff09;加载&#xff0c;直接展示给用户 2.节省用户流量&#xff08;节省服务器资源&#xff09; 对于较大的资源数据进行缓存&#xf…

c语言重定向stdout 到 /dev/null 及恢复

------------------------------------------------------------ author: hjjdebug date: 2023年 07月 27日 星期四 17:49:49 CST descriptor: c语言重定向stdout 到 /dev/null 及恢复 ------------------------------------------------------------ #include <stdio.h&g…

【Matlab】基于长短期记忆网络的数据回归预测(Excel可直接替换数据)

【Matlab】基于长短期记忆网络的数据回归预测(Excel可直接替换数据) 1.模型原理2.数学公式3.文件结构4.Excel数据5.分块代码6.完整代码7.运行结果1.模型原理 “基于长短期记忆网络(Long Short-Term Memory, LSTM)的数据回归预测”是一种利用LSTM神经网络进行数据回归预测的…

ClickHouse(六):Clickhouse数据类型-1

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术&#xff0c;IT贫道_Apache Doris,Kerberos安全认证,大数据OLAP体系技术栈-CSDN博客 &…

从电容到晶体管的基本介绍

​随着科技的不断进步&#xff0c;元器件在现代电子学中扮演着至关重要的角色。从电容器到晶体管&#xff0c;各种元器件都具有不同的特性和用途。本文将从基础知识出发&#xff0c;介绍电子学中常见的元器件&#xff0c;以及它们在电路中的作用和应用。 电容器 电容器是一种…

Docker复杂命令便捷操作

启动所有状态为Created的容器 要启动所有状态为"created"的Docker容器&#xff0c;可以使用以下命令&#xff1a; docker container start $(docker container ls -aq --filter "statuscreated")上述命令执行了以下步骤&#xff1a; docker container l…

深度学习论文: Q-YOLO: Efficient Inference for Real-time Object Detection及其PyTorch实现

深度学习论文: Q-YOLO: Efficient Inference for Real-time Object Detection及其PyTorch实现 Q-YOLO: Efficient Inference for Real-time Object Detection PDF: https://arxiv.org/pdf/2307.04816.pdf PyTorch代码: https://github.com/shanglianlm0525/CvPytorch PyTorch代…

HttpClient常用操作及封装工具类

目录 介绍核心API 案例GET方式请求POST方式请求 工具类 介绍 HttpClient 是Apache Jakarta Common 下的子项目&#xff0c;可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包&#xff0c;并且它支持 HTTP 协议最新的版本和建议。 HttpClient作用&…

Spring Boot学习路线1

Spring Boot是什么&#xff1f; Spring Boot是基于Spring Framework构建应用程序的框架&#xff0c;Spring Framework是一个广泛使用的用于构建基于Java的企业应用程序的开源框架。Spring Boot旨在使创建独立的、生产级别的Spring应用程序变得容易&#xff0c;您可以"只是…

C#..上位机软件的未来是什么?

C#是一种流行的编程语言&#xff0c;广泛应用于桌面应用程序和上位机软件开发。未来&#xff0c;C#上位机软件将继续不断发展和创新&#xff0c;以满足用户日益增长的需求。以下是我认为C#上位机软件未来可能会涉及的一些方向&#xff1a; 更加智能化&#xff1a;随着人工智能…

架构基本概念和架构本质

什么是架构和架构本质 在软件行业&#xff0c;对于什么是架构&#xff0c;都有很多的争论&#xff0c;每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前&#xff0c;我们先讨论架构的概念定义&#xff0c;概念是人认识这个世界的基础&…

软链接和硬链接

一、软链接 1.释义 软链接又叫符号链接&#xff0c;包含原文件的路径信息。 2.特性 &#xff08;1&#xff09;软链接文件中有类似于Windows的快捷方式。 &#xff08;2&#xff09;在符号连接中&#xff0c;文件实际上是一个文本文件&#xff0c;其中包含的有另一个文件的…

ZZULIOJ 1185: 添加记录(结构体专题),Java

ZZULIOJ 1185: 添加记录&#xff08;结构体专题&#xff09;&#xff0c;Java 题目描述 有一学生成绩表&#xff0c;包括学号、姓名、3门课程成绩。已知该成绩表按学号升序排序。请编程实现&#xff0c;添加一个新的学生信息&#xff0c;且使成绩表仍按学号有序&#xff1b;若…

python中如何记录日志?

日志是一种可以追踪某些软件运行时所发生事件的方法。一条日志信息对应的是一个事件的发生&#xff0c;而一个事件通常需要包括以下几个内容&#xff1a;事件发生时间、事件发生位置、事件的严重程度--日志级别、事件内容。 logging模块定义的函数和类为应用程序和库的开发实现…

pytest 入门

1,安装pytest 打开终端或命令提示符窗口,在终端中运行以下命令来安装pytest: pip install pytestpip install -i https://pypi.tuna.tsinghua.edu.cn/simple pytest 确保您的系统上已经安装了Python。您可以在终端中运行以下命令来检查Python的安装情况: pytest --version…

【Spring】Spring 下载及其 jar 包

根据 【动力节点】最新Spring框架教程&#xff0c;全网首套Spring6教程&#xff0c;跟老杜从零学spring入门到高级 以及老杜的原版笔记 https://www.yuque.com/docs/share/866abad4-7106-45e7-afcd-245a733b073f?# 《Spring6》 进行整理&#xff0c; 文档密码&#xff1a;mg9b…

自己创建的类,其他类中使用错误

说明&#xff1a;自己创建的类&#xff0c;在其他类中创建&#xff0c;报下面的错误&#xff08;Cannot resolve sysmbol ‘Redishandler’&#xff09;&#xff1b; 解决&#xff1a;看下是不是漏掉了包名 加上包名&#xff0c;问题解决&#xff1b;