【MyBatis进阶】mybatis-config.xml分析以及try-catch新用法
目录
尝试在mybatis项目中书写增删改查
遇见问题:使用mybaties向数据库中插入数据,idea显示插入成功,但是数据库中并没有数据变化?
MyBatis核心配置文件剖析
细节剖析:
try-catch新用法
截至目前我的项目存在的问题,Mapper.xml文件中的SQL语句任然是死的,


这里还有一个问题就是。假如表结构的列名和你设计的pojo中的列名虽然能够对应上但是名字不一样,比如大小写或者多个符号等等,这种情况咋办?我们在书写sql语句时,学习过给列名取别名的方法,上述情况可以使用取别名的方式来解决;
尝试在mybatis项目中书写增删改查
遇见问题:使用mybaties向数据库中插入数据,idea显示插入成功,但是数据库中并没有数据变化?
可能的原因有几种:
没有提交事务:在使用 MyBatis 进行数据库操作时,需要手动提交事务。你可以在插入数据完成后调用
commit()方法来提交事务。如果没有提交事务,数据库中的数据不会被实际保存。配置问题:请确保你的数据库连接配置正确,并且连接到了正确的数据库。可以检查配置文件中的数据库URL、用户名和密码等信息是否正确。
SQL语句错误:请检查你的插入语句是否正确。可能存在语法错误或者数据类型不匹配等问题导致插入失败。可以尝试手动执行相同的 SQL 语句来验证。
数据库自动提交设置:有些数据库默认情况下是自动提交的,即每次执行 SQL 语句后会自动将修改保存到数据库。如果你的数据库是自动提交模式,可能是其他代码修改了数据后没有及时提交导致看不到变化。
数据库事务隔离级别:如果你在启用了事务的情况下进行插入操作,可能是由于事务隔离级别导致的。可以尝试将事务隔离级别设置为 READ_COMMITTED,或者禁用事务来验证是否能够正常插入数据。
MyBatis核心配置文件剖析
mybatis-config.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><!-- 加载类路径下的属性配置文件 --><properties resource="db.properties"/><!-- 默认使用的环境 ID(比如:default="development")也就是说我们可以配置多套<environment>环境,其中default是默认环境,也就是不同的数据库,不同的数据库配置不同的环境我们可以在environments中配置多个环境,--><environments default="development"><!--每个 environment 元素定义的环境 ID--><environment id="development"><!--transactionManager 事务管理器type的值有JDBC和MANAGEDJDBC – 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域,也就是给我们来手动管理事务的提交。--><transactionManager type="JDBC"/><!--dataSourcedataSource 数据源 dbcp c3p0 druidtype="[UNPOOLED|POOLED|JNDI]"POOLED意思有连接池的连接UNPOOLED意思没有连接池的连接--><dataSource type="POOLED"><!-- JDBC 驱动--><property name="driver" value="${mysql.driver}"/><!-- url数据库的 JDBC URL地址。--><property name="url" value="${mysql.url}"/><property name="username" value="${mysql.username}"/><property name="password" value="${mysql.password}"/><!-- defaultTransactionIsolationLevel – 默认的连接事务隔离级别。–>--><!-- <property name="defaultTransactionIsolationLevel" value=""/>--><!-- defaultNetworkTimeout – 等待数据库操作完成的默认网络超时时间(单位:毫秒)–>--><!-- <property name="efaultNetworkTimeout" value=""/>--></dataSource></environment></environments><mappers><!-- 使用相对于类路径的资源引用 --><mapper resource="mapper/UserMapper.xml"/><!-- 使用完全限定资源定位符(URL)不推荐使用<mapper url="E:\JetBrains\mybatis学习\Mybatis-study\Mybatis-03\src\main\java\asia\xiaojiang\mybatis03\dao\UserMapper.xml"/>--><!-- 使用映射器接口实现类的完全限定类名使用注意点:接口和其配置文件必须同名, 必须在同一个包下--><!-- <mapper class="asia.xiaojiang.mybatis03.dao.UserMapper"/>--><!-- 将包内的映射器接口实现全部注册为映射器使用包扫描注意点:接口和其配置文件必须同名, 必须在同一个包下--><!-- <package name="asia.xiaojiang.mybatis03.dao"/>--></mappers></configuration>
细节剖析:
<environments default="development">
默认使用的环境 ID(比如:default="development")也就是说我们可以配置多套<environment>环境,其中default是默认环境,这里的环境我们如何理解,数据库中的一个数据库对应一个环境,那么不同的环境也就是不同的数据库,不同的数据库配置不同的环境,我们可以在environments中配置多个环境,然后指定一个default默认环境;
那么这个环境在那里使用呢?,我们在创建sqlSessionFactory对象时,会遇见下图的情况,也就是参数中除了reader流,还会有一个environment参数,这里的environment就是指定数据库也就是指定环境,此时我们就可以得到一个环境或者一个数据库对应一个sqlSessionFactory对象;他的build方法还有只有一个reader流参数的重载方法;,使用这个方法时,就采用的是默认的环境;当然你也可以指定;
default的值是什么,这里的值就是下面不同环境的id值。不同环境会有一个不同id;
<transactionManager type="JDBC"/>
transactionManager 事务管理器, type的值有JDBC和MANAGED
-
JDBC – 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域,也就是给我们来手动管理事务的提交。
-
MANAGED —这个配置的意思是,将事务的管理交给其他,如即将要学的spring等等
<--
dataSourcedataSource 数据源 dbcp c3p0 druid
type="[UNPOOLED|POOLED|JNDI]"
POOLED意思有连接池的连接
UNPOOLED意思没有连接池的连接-->
<dataSource type="POOLED">
<!-- JDBC 驱动-->
<property name="driver" value="${mysql.driver}"/>
<!-- url数据库的 JDBC URL地址。-->
<property name="url" value="${mysql.url}"/>
<property name="username" value="${mysql.username}"/>
<property name="password" value="${mysql.password}"/>
<!-- defaultTransactionIsolationLevel – 默认的连接事务隔离级别。–>-->
<!-- <property name="defaultTransactionIsolationLevel" value=""/>-->
<!-- defaultNetworkTimeout – 等待数据库操作完成的默认网络超时时间(单位:毫秒)–>-->
<!-- <property name="efaultNetworkTimeout" value=""/>-->
</dataSource>

datasource是数据源,什么是数据源呢?这里的数据源不是数据的源头,而是提供connection连接的对象,例如数据库连接池就叫做数据源;

try-catch新用法
相关文章:
【MyBatis进阶】mybatis-config.xml分析以及try-catch新用法
目录 尝试在mybatis项目中书写增删改查 遇见问题:使用mybaties向数据库中插入数据,idea显示插入成功,但是数据库中并没有数据变化? MyBatis核心配置文件剖析 细节剖析: try-catch新用法 截至目前我的项目存在的问题…...
机器学习终极指南:统计和统计建模03/3 — 第 -3 部分
系列上文:机器学习终极指南:特征工程(02/2) — 第 -2 部分 一、说明 在终极机器学习指南的第三部分中,我们将了解统计建模的基础知识以及如何在 Python 中实现它们,Python 是一种广泛用于数据分析和科学计…...
php获取农历日期节日
代码地址:php获取农历日期节日-遇见你与你分享 <?php $c new DayService(); $today$c->convertSolarToLunar(date(Y),date(m),date(d)); $time "农历".$today[1].$today[2]."日";class DayService {var $MIN_YEAR 1891;var $MAX_YEAR …...
主机重启后k8s kubelet无法自动启动问题解决梳理
1.问题描述 OS Version:CentOS Linux release 7.9.2009 (Core) K8S Version:Kubernetes v1.20.4 K8S安装配置完成后,重启服务器发现,kubelet没有正常启动(systemctl status kubelet) 命令: systemctl status kubelet [root@centos79-3 ~]# systemctl status kubelet ●…...
Hadoop面试题(2)
1.什么是数据倾斜?如何处理数据倾斜? 数据倾斜指的是在分布式计算中,数据在某些节点上不均匀地分布,导致某些节点的负载过重,影响整体计算性能。 处理数据倾斜的方法主要包括以下几种: 增加分区数量&…...
[ Windows-Nginx ]Windows服务器,Tomcat容器部署项目,整合Nginx
一、官网下载Nginx http://nginx.org/en/download.html 稳定版:windows的stable版本 注意:Nginx安装包不要放在中文目录下 二、conf目录下,修改nginx.conf文件 修改Nginx服务端口: 默认端口为80,即外界访问的入口…...
手搭手zabbix5.0监控redis7
Centos7安装配置Redis7 安装redis #安装gcc yum -y install gcc gcc-c #安装net-tools yum -y install net-tools #官网https://redis.io/ cd /opt/ wget http://download.redis.io/releases/redis-7.0.4.tar.gz 解压至/opt/目录下 tar -zxvf redis-7.0.4.tar.gz -C /opt/ #…...
学习笔记02-iview组件使用
学习笔记02-iview组件使用 文章目录 学习笔记02-iview组件使用一、iview 2-Tabs使用 一、iview 2-Tabs使用 官方地址:https://www.iviewui.com/view-ui-plus/component/navigation/tabs 点击tabs页面可以获取当前页面的name信息,并且可以点击后再获取当…...
华为OD 玩牌高手(100分)【java】A卷+B卷
华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…...
什么是AJAX
AJAX(Asynchronous JavaScript and XML)是一种用于创建交互式、动态网页应用程序的Web开发技术。它允许网页在不刷新整个页面的情况下,与服务器进行异步通信,以获取或发送数据。以下是对AJAX的主要组成部分和概念的概述࿱…...
[云原生1.]Docker数据管理与Cgroups资源控制管理
文章目录 1. Docker的数据管理1.1 数据卷1.1.1 示例 1.2 数据卷容器 2. 容器互联3. Cgroups资源控制管理3.1 简介3.2 cgroups的主要功能3.3 cpu时间片的简单介绍3.4 对CPU使用的限制3.4.1 对CPU使用的限制(基于单个容器)3.4.2 对CPU使用的限制࿰…...
【华为OD机试】HJ68 成绩排序
描述 给定一些同学的信息(名字,成绩)序列,请你将他们的信息按照成绩从高到低或从低到高的排列,相同成绩 都按先录入排列在前的规则处理。 例示: jack 70 peter 96 Tom 70 smith 67 从高到低 成…...
红队专题-从零开始VC++C/S远程控制软件RAT-MFC-[5]客户端与服务端连接
红队专题 招募六边形战士队员端操作系统SystemInfo类获取系统信息发送系统信息头文件声明头文件调用 未找到来自 OleAcc.dll 的导入LINK 招募六边形战士队员 一起学习 代码审计、安全开发、web攻防、逆向等。。。 私信联系 端 发送连接->进入主线程->返回socket->…...
Windows Server服务器下的Linux子系统
Windows、Linux看似死敌一对,但其实微软对于开源实业还是相当支持的,Windows 10系统内就首次内置了一个Linux子系统(Windows Subsystem for Linux/WSL),允许开发者模拟Linux环境,而且有需要的可以直接从Windows应用商店下载SUSE、…...
git初学者使用教程(包含Android studio中git使用)
文章目录 1、登录 / 注册git账号2、创建git仓库3、设置git的用户名和邮箱4、创建git仓库5、已有仓库推送代码到远程仓库6、进阶使用,命令行和Android studio软件使用1. 克隆(Clone)源码仓库2. 查看仓库状态(Status)3. …...
【Java】正则表达式,校验数据格式的合法性。
个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 正则表达式 正则表达式: ①可以校…...
基于SSM的教务管理系统运行教程
文章目录 1、前期必备1.1、所需软件版本说明1.2、下载源码1.3、下载开发工具1.4、下载JDK并配置环境变量1.5、安装数据库和数据库管理工具1.6、安装配置Maven 2、将SQL文件导入到数据库2.1、新建MySQL连接2.2、新建数据库并导入SQL 3、用Eclipse运行程序3.1、导入educationalMa…...
Docker(六)、Docker-compose简单了解
Docker-compose简单了解 一、简单了解-->概述一)、官方提供的容器编排工具:Docker-compose特点:二)、Docker-compose安装三)、浅实践下四).以上步骤遇到问题及解决 一、简单了解–>概述 Docker-comp…...
互联网Java工程师面试题·Java 面试篇·第一弹
目录 1、Java 中能创建 volatile 数组吗? 2、volatile 能使得一个非原子操作变成原子操作吗? 3、volatile 修饰符的有过什么实践? 4、volatile 类型变量提供什么保证? 5、10 个线程和 2 个线程的同步代码,哪个更容…...
基于材料生成优化的BP神经网络(分类应用) - 附代码
基于材料生成优化的BP神经网络(分类应用) - 附代码 文章目录 基于材料生成优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.材料生成优化BP神经网络3.1 BP神经网络参数设置3.2 材料生成算法应用 4.测试结果…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...
13.10 LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析
LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析 LanguageMentor 对话式训练系统架构与实现 关键词:多轮对话系统设计、场景化提示工程、情感识别优化、LangGraph 状态管理、Ollama 私有化部署 1. 对话训练系统技术架构 采用四层架构实现高扩展性的对话训练…...
