当前位置: 首页 > news >正文

入门案例:mybatis流程,核心,常见错误

入门案例:mybatis执行流程分析

说明:

1.第一步:是从核心配置文件mybatis-config.xml中构建SqlSessionFactory对象,由于核心配置文件mybatis-config.xml中关联了映射文件UserMapper.xml,所以在SqlSessionFactory中也存在映射文件的内容

2.第二步:是从SqlSessionFactory中获取SqlSession会话对象,其实SqlSession会话对象底层封装的就是conn连接对象

3.第三步:是通过SqlSession会话对象调用查询方法selectList然后根据参数找到映射文件中中的sql语句并将数据封装到pojo的User对象中

入门案例:核心配置文件 mybatis-config.xml

可以在mybatis官网入门中找到配置模板:http://www.mybatis.org/mybatis-3/zh/getting-started.html

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--mybatis环境的配置--><environments default="development"><!--通常我们只需要配置一个就可以了, id是环境的名字 --><environment id="development"><!--事务管理器:由JDBC来管理--><transactionManager type="JDBC"/><!--数据源的配置:mybatis自带的连接池--><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/db4"/><property name="username" value="root"/><property name="password" value="1234"/></dataSource></environment></environments><mappers><!--加载映射文件,放到src下即可--><mapper resource="userMapper.xml"/></mappers>
</configuration>

可以在idea中定义模板,以后重用。

<?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"></properties><!--settings--><settings><!--开启驼峰自动映射--><setting name="mapUnderscoreToCamelCase" value="true"/></settings><!--别名--><typeAliases><package name="com.itheima.sh.pojo"></package></typeAliases><!--mybatis环境的配置一个核心配置文件,可以配置多个运行环境,default默认使用哪个运行环境--><environments default="development"><!--通常我们只需要配置一个就可以了, id是环境的名字 --><environment id="development"><!--事务管理器:由JDBC来管理--><!--事务管理器type的取值:1. JDBC:由JDBC进行事务的管理2. MANAGED:事务由容器来管理,后期学习Spring框架的时候,所有的事务由容器管理--><transactionManager type="JDBC"/><!--数据源的配置:mybatis自带的连接池--><!--数据源:1. POOLED:使用mybatis创建的连接池2. UNPOOLED:不使用连接池,每次自己创建连接3. JNDI:由服务器提供连接池的资源,我们通过JNDI指定的名字去访问服务器中资源。--><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments><!--映射器--><mappers><!--加载其它的映射文件 注:注解开发是点号--><!-- <package name="com.itheima.sh.dao"></package>--><!--加载其它的映射文件 注:不是点号--><!--<mapper resource="org/mybatis/example/BlogMapper.xml"/>--><!--加载其它的映射文件 xml形式包扫描方式加载mapper映射文件,说明:1. 要求mapper映射文件,与mapper接口要放在同一个目录2. 要求mapper映射文件的名称,与mapper接口的名称要一致--><package name="com.itheima.sh.dao"></package></mappers>
</configuration>

入门案例:常见错误

  • 在映射文件userManager.xml中的resultType位置没有书写类的全名

  • 在核心配置文件中没有引入映射文件

小结:

1、mybatis框架的核心组件:

SqlSessionFactoryBuilder;会话工厂构造类创建会话工厂对象

SqlSessionFactory:会话工厂类创建会话对象 SqlSession:会话类

2、入门程序开发流程:

【1】从xml文件中构建:___SqlSessionFactory____

【2】从SqlSessionFactory中获取:____SqlSession_____

【3】通过__SqlSession____执行___映射文件___文件中的sql语句

相关文章:

入门案例:mybatis流程,核心,常见错误

入门案例&#xff1a;mybatis执行流程分析 说明&#xff1a; 1.第一步&#xff1a;是从核心配置文件mybatis-config.xml中构建SqlSessionFactory对象&#xff0c;由于核心配置文件mybatis-config.xml中关联了映射文件UserMapper.xml,所以在SqlSessionFactory中也存在映射文件的…...

C++ | Leetcode C++题解之第456题132模式

题目&#xff1a; 题解&#xff1a; class Solution { public:bool find132pattern(vector<int>& nums) {int n nums.size();vector<int> candidate_i {nums[0]};vector<int> candidate_j {nums[0]};for (int k 1; k < n; k) {auto it_i upper_…...

自然语言处理问答系统

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

Python的几个高级特性

引言 Python是一种功能强大的编程语言&#xff0c;它简洁的语法和强大的库支持使其成为数据科学和机器学习领域的热门选择。在Python的高级特性中&#xff0c;生成器、迭代器、闭包、装饰器和内置高阶函数是实现高效、优雅代码的关键。本文将逐一介绍这些特性&#xff0c;并提…...

【颜色平衡树 / E】

题目 思路 DFS暴力 60分 代码 #include <bits/stdc.h> using namespace std; const int N 5010; const int M 5010; int h[N], e[M], ne[M], idx; int c[N], f; int ans; void add(int a, int b) // 添加一条边a->b {e[idx] b, ne[idx] h[a], h[a] idx ; } …...

滑动窗口--(中篇)

将X减到0的最小操作数 给你一个整数数组 nums 和一个整数 x 。每一次操作时&#xff0c;你应当移除数组 nums 最左边或最右边的元素&#xff0c;然后从 x 中减去该元素的值。请注意&#xff0c;需要 修改 数组以供接下来的操作使用。 如果可以将 x 恰好 减到 0 &#xff0c;返…...

Java性能调优:实战技巧与最佳实践

引言 Java作为企业级应用开发的首选语言之一&#xff0c;其性能直接影响到系统的响应速度和用户体验。性能调优是一项复杂的工作&#xff0c;涉及多个层面的知识和技术。本文将通过具体的示例&#xff0c;探讨一些常见的性能调优技巧及最佳实践。 1. 了解你的应用程序 示例&…...

排版套料系统设计说明

先上效果图 项目地址 1.产品介绍 产品名称&#xff1a;StreamFit 智能排版套料系统 主要功能&#xff1a; 智能排版优化 功能描述&#xff1a;StreamFit 利用先进的算法技术&#xff0c;自动对各类材料&#xff08;如布料、金属板材、纸张等&#xff09;进行高效排版布局&am…...

算法修炼之路之二分查找

目录 一:三大二分介绍及模板 1.普通二分 2.查找左右边界的二分及模板 二:LeetCode OJ练习 1.第一题 2.第二题 3.第三题 4.第四题 5.第五题 6.第六题 一:三大二分介绍及模板 1.普通二分 这里通过一道题来引出普通二分及模板 LeetCode_704 二分查找 画图分析: 具体代…...

OpenAI预计明年将推出“代理”系统

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

每日OJ题_牛客_重排字符串_贪心_C++_Java

目录 牛客_重排字符串_贪心 题目解析 C代码 Java代码 牛客_重排字符串_贪心 重排字符串 (nowcoder.com) 描述&#xff1a; 小红拿到了一个只由小写字母组成的字符串。她准备把这个字符串重排&#xff08;只改变字母的顺序&#xff0c;不改变数量&#xff09; …...

Python 进阶部分详细整理

1. 面向对象编程&#xff08;OOP&#xff09; 面向对象编程 (OOP) 是一种通过将程序中的数据和功能封装为对象的编程范式。OOP 基于四个核心概念&#xff1a;类与对象、继承、封装与多态。 类与对象 类&#xff08;Class&#xff09;&#xff1a;类是创建对象的蓝图或模板。它…...

[ RK3566-Android11 ] 关于移植 RK628F 驱动以及后HDMI-IN图像延迟/无声等问题

问题描述 由前一篇文章https://blog.csdn.net/jay547063443/article/details/142059700?fromshareblogdetail&sharetypeblogdetail&sharerId142059700&sharereferPC&sharesourcejay547063443&sharefromfrom_link&#xff0c;移植HDMI-IN部分驱动后出现&a…...

【黑马点评】 使用RabbitMQ实现消息队列——2.使用RabbitMQ监听秒杀下单

2 使用RabbitMQ实现消息队列 2.1 修改\hm-dianping\pom.xmlpom.xml文件 添加RabbitMQ的环境 <!-- RabbitMQ--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </depe…...

业务封装与映射 -- OTUk/ODUk/OPUk开销帧结构

开销是为了保证净荷正常、灵活传送所必须附加的供网络运行、管理和维护&#xff08;OAM&#xff09;使用的字节。 OTN电层开销包括OTUk开销、ODUk开销、OPUk开销、OTUCn开销、ODUCn开销、OPUCn开销和帧对齐开销。 SM开销属于OTU开销&#xff0c;占用3个字节&#xff1b;PM开销…...

Vim基本用法

Vim用法 一、基本模式 1. 普通模式&#xff08;Normal Mode&#xff09; 移动光标 基本移动&#xff1a;使用方向键&#xff08;h左移、j下移、k上移、l右移&#xff09;&#xff0c;也可以使用 H&#xff08;移到屏幕顶部&#xff09;、M&#xff08;移到屏幕中间&#xff…...

python 实现Tarjan 用于在有向图中查找强连通分量的算法

Tarjan 用于在有向图中查找强连通分量的算法介绍 Tarjan算法是一种用于在有向图中查找强连通分量的高效算法&#xff0c;由Robert Tarjan在1972年提出。强连通分量是指在有向图中&#xff0c;如果从顶点u到顶点v以及从顶点v到顶点u都存在一条路径&#xff0c;那么顶点u和顶点v…...

Qt开发技巧(十五)字符串去除空格,跨网段搜索不生效,设置图片显示失败问题,表格视图的批量删除,主动判断字串编码,开启向前查询的属性,画家类载入html来绘制

继续讲一些Qt开发中的技巧操作&#xff1a; 1.字符串去除空格 我们经常会遇到字符串重去除空格的情况&#xff0c;对于QString去除空格&#xff0c;有多种场景&#xff0c;可能需要去除左侧、右侧、所有等位置的空格&#xff1b; //字符串去空格 -1移除左侧空格 0移除所有空格…...

【机器学习】智驭未来:探索机器学习在食品生产中的革新之路

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀目录 &#x1f50d;1. 引言&#xff1a;探索机器学习在食品生产中的革新之路&#x1f4d2;2. 机器学习在食品质量控制中的应用&#x1f31e;实…...

Ubuntu 安装CUDA并使用Docker配置Pytorch环境

文章目录 参考安装顺序Nvidia GPU driverDockerNvidia Container ToolkitDocker PyTorch 1. Nvidia GPU Driver2. Docker 安装&#xff08;使用apt存储库进行安装&#xff09;3. Nvidia Container Toolkit3.1 Docker测试GPU 参考 安装顺序 Nvidia GPU driver Docker Nvidia…...

终极指南:如何用buger/jsonparser实现10倍性能的Go JSON解析

终极指南&#xff1a;如何用buger/jsonparser实现10倍性能的Go JSON解析 【免费下载链接】jsonparser One of the fastest alternative JSON parser for Go that does not require schema 项目地址: https://gitcode.com/gh_mirrors/js/jsonparser buger/jsonparser是Go…...

解锁3大自由:5分钟掌握的音乐格式解放工具

解锁3大自由&#xff1a;5分钟掌握的音乐格式解放工具 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 在数字音乐时代&#xff0c;我们却常常面临这样的困境&#xff1a;下载的音乐被限制在特定播放器中&#xff0c;就像拥有一本精美…...

Maven Versions Plugin 使用指南

以下是对你提供内容的补充和整理&#xff0c;形成一篇关于 Maven Versions Plugin 使用指南的文章&#xff1a;Maven Versions Plugin 使用指南 Maven Versions Plugin 是一套用于管理项目版本、依赖版本和父版本的工具集合。它可以帮助你高效地更新项目版本号、检查依赖更新、…...

FreeRTOS进阶:任务优先级与调度策略深度解析

1. FreeRTOS任务优先级基础 在嵌入式实时操作系统中&#xff0c;任务优先级决定了任务执行的先后顺序。FreeRTOS采用数值越大优先级越高的设计&#xff0c;优先级范围通常为0到(configMAX_PRIORITIES-1)。我刚开始接触FreeRTOS时&#xff0c;经常混淆这个概念&#xff0c;直到在…...

实时口罩检测系统性能优化:从算法到工程全链路调优

实时口罩检测系统性能优化&#xff1a;从算法到工程全链路调优 1. 引言 在公共场所疫情防控中&#xff0c;实时口罩检测系统发挥着重要作用。但在实际部署中&#xff0c;很多开发者会遇到性能瓶颈&#xff1a;检测速度跟不上视频流帧率、GPU资源占用过高、误报漏报频发等问题…...

SOONet模型Python入门实践:用10行代码实现视频片段搜索

SOONet模型Python入门实践&#xff1a;用10行代码实现视频片段搜索 你是不是也遇到过这种情况&#xff1a;手里有一段很长的视频&#xff0c;想快速找到某个特定场景&#xff0c;比如“主角第一次出场的时候”或者“那个爆炸的镜头”&#xff0c;结果只能手动拖进度条&#xf…...

Stable Diffusion v1.5 Archive 镜像实测:5步完成部署,快速体验文生图

Stable Diffusion v1.5 Archive 镜像实测&#xff1a;5步完成部署&#xff0c;快速体验文生图 1. 开篇&#xff1a;为什么选择SD1.5 Archive版本 Stable Diffusion作为当前最热门的开源AI绘画模型&#xff0c;已经迭代了多个版本。其中v1.5作为经典版本&#xff0c;在图像质量…...

Qt 5.14.2下MQTT开发全攻略:从源码编译到实战应用(附完整代码)

Qt 5.14.2下MQTT开发全流程实战指南 在物联网应用开发中&#xff0c;MQTT协议因其轻量级和高效性成为设备通信的首选方案。对于使用Qt框架的开发者而言&#xff0c;将MQTT集成到项目中可以构建出功能强大的跨平台物联网应用。本文将深入探讨在Windows平台上使用Qt 5.14.2进行MQ…...

AIVideo效果对比展示:不同参数下的视频生成质量评测

AIVideo效果对比展示&#xff1a;不同参数下的视频生成质量评测 1. 开场白&#xff1a;参数设置对视频效果的影响 你有没有遇到过这样的情况&#xff1a;用AI生成视频时&#xff0c;明明输入的内容一样&#xff0c;但出来的效果却天差地别&#xff1f;有时候画面模糊不清&…...

开源小模型也能干大事:MinerU图文理解实战教程

开源小模型也能干大事&#xff1a;MinerU图文理解实战教程 1. 项目简介 OpenDataLab MinerU 是一个专门针对文档理解设计的智能多模态模型&#xff0c;基于 OpenDataLab/MinerU2.5-1.2B 模型构建。虽然只有 1.2B 参数&#xff0c;但这个模型在文档解析方面表现出色&#xff0…...