Day9--学习三种方式实现mybatis数据库查询(XML映射文件、注解方式、接口扫描)

Android以太网开关流程分析 Android以太网开关流程分析 一、引言   在Android 以太网服务启动流程中我们启动了EthernetService(ES),NetworkManagementService(NMS)等服务,其中ES作为Binder的服务端,向客户端EthernetManger提供了调用接口的引用。因此,应用可以通过EthernetManger来访问以太网的相关接口。本篇文章将从APP调用以太网的使能和关闭的接口流程作为切入点来分析,以太网框架中,上层app是如何将指令传递到底层。图1-1所示为以太网使能和关闭 阅读详情

MyBatis 是一个优秀的持久层框架,支持多种方式进行数据库操作,包括使用独立的映射文件(XML)、注解和接口扫描。下面我将分别给出这三种方式的代码案例。

1. XML 映射文件方式

XML 映射文件示例(UserMapper.xml):
<!-- UserMapper.xml -->
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.example.mapper.UserMapper">
  
  <!-- 查询语句示例 -->
  <select id="getUserById" parameterType="int" resultType="com.example.model.User">
    SELECT * FROM users WHERE id = #{id}
  </select>

</mapper>
Java 代码中使用 XML 映射文件:
// 定义 Mapper 接口
public interface UserMapper {
    User getUserById(int id);
}

// 在 XML 配置文件中配置 MyBatis SqlSessionFactory

// 使用 SqlSession 进行查询
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
sqlSession.close();

2. 注解方式

注解方式示例:
// 定义 Mapper 接口并使用注解
public interface UserMapper {
    @Select("SELECT * FROM users WHERE id = #{id}")
    User getUserById(int id);
}

// 在 XML 配置文件中配置 MyBatis SqlSessionFactory

// 使用 SqlSession 进行查询
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
sqlSession.close();

3. 接口扫描方式

接口扫描方式示例:
// 在 XML 配置文件中配置 Mapper 接口扫描
<configuration>
    <mappers>
        <mapper class="com.example.mapper.UserMapper"/>
    </mappers>
</configuration>

// 定义 Mapper 接口
public interface UserMapper {
    User getUserById(int id);
}

// 在 XML 配置文件中配置 MyBatis SqlSessionFactory

// 使用 SqlSession 进行查询
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
sqlSession.close();

这些示例展示了如何使用 MyBatis 框架进行数据库查询,分别使用了XML映射文件、注解和接口扫描这三种方式。每种方式都有其适用的场景和优劣势,你可以根据项目需求选择合适的方式来进行开发。

MyBatis 配置文件需要配置一些基本的内容,包括数据库连接信息、映射文件路径、类型别名等。以下是一个典型的 MyBatis 配置文件示例:

<!-- mybatis-config.xml -->
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

  <!-- 数据库环境配置 -->
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mydatabase"/>
        <property name="username" value="root"/>
        <property name="password" value="password"/>
      </dataSource>
    </environment>
  </environments>

  <!-- 映射器配置 -->
  <mappers>
    <!-- 使用 XML 映射文件方式 -->
    <mapper resource="com/example/mapper/UserMapper.xml"/>
    
    <!-- 使用接口扫描方式 -->
    <mapper class="com.example.mapper.UserMapper"/>
  </mappers>

  <!-- 类型别名配置 -->
  <typeAliases>
    <typeAlias type="com.example.model.User" alias="User"/>
  </typeAliases>

</configuration>

这个配置文件包括了以下几个重要的部分:

  1. environments: 定义了数据库环境的配置,包括事务管理器和数据源的配置。可以配置多个环境,这里默认使用 development 环境。

  2. dataSource: 数据源配置,指定数据库连接的驱动、URL、用户名和密码等信息。

  3. mappers: 映射器配置,包括了使用 XML 映射文件方式和接口扫描方式两种配置方式。可以配置多个映射文件或者多个接口。

  4. typeAliases: 类型别名配置,将 Java 类型和别名关联起来,方便在映射文件或者注解中使用简短的别名来引用 Java 类型。

这些配置项可以根据具体项目的需求进行调整和扩展,确保 MyBatis 能够正确地与数据库进行交互。

【YOLOv11多模态融合改进】| CVPR2025 LCA轻量交叉注意力 双向模态交叉引导 + 双支路噪点抑制,兼顾纹理与热目标特征融合 可见光模态富含纹理、色彩、边缘细节,但夜间/低照度场景信噪比极低,暗区噪声泛滥;红外模态依靠热辐射凸显弱小目标、暗区物体轮廓,但缺失真实色彩与精细纹理。简单拼接/逐加融合仅做浅层特征叠加,无法建立可见光纹理、红外热特征的双向引导关联,两类模态互补信息无法精准互通;普通自注意力仅单模态内部建模,跨模态交互匮乏,红外热目标易被可见光暗噪声淹没,可见光有效纹理易被红外灰度信息覆盖; 阅读详情

相关推荐

人工智能技术基础系列之:迁移学习

作者:禅与计算机程序设计艺术 1.背景介绍 随着深度学习和神经网络的快速发展,越来越多的应用场景需要处理大量的数据和复杂的任务。然而,由于计算资源、存储空间等条件的限制,传统的人工智能方法往往不能满足实际需求。因此,为了提高效率和降低成本,研究人员提出了迁移学习的概念。本篇文章将详细介绍迁移学习的基

AI天才研究院 694

SpringBoot整合Mybatis支持*匹配扫描包的三种方式

当我们集成Mybatis初始化加载*Mapper.xml时,在xml中使用了类型匹配报错。解决这样的错误有3中办法。spring boot 启动类中添加@MapperScan。application.yml配置中添加如下配置。

weixin_43890927的博客 5986

【100%通过率】华为OD机试真题 JS 实现【水库蓄水问题】【2023 Q1 | 100分】

给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

MISAYAONE的博客 8170

MyBatis

MyBatis

hpessnS_JX的博客 1122

【零基础入门unity游戏开发——unity通用篇12】导入导出unity资源包、设置编程工具、创建脚本(组件)规则、MonoBehaviour基类介绍、脚本模板(基于unity6开发介绍)

导入导出unity资源包、设置编程工具、创建脚本(组件)规则、MonoBehaviour基类介绍、脚本模板(基于unity6开发介绍)

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 758

Jenkins自动化部署服务到Kubernetes环境

通过Jenkins实现自动化部署可以大大提高软件交付的效率和质量。本文介绍的部署流程涵盖了从代码编译、Maven依赖管理、Docker镜像构建到Kubernetes部署的完整流程,并提供了通知机制以便及时了解部署状态。特别需要注意的是Maven与私服的配置,这是确保构建过程能够正常访问依赖包的关键。通过Jenkins的凭据管理功能,可以安全地管理私服的认证信息,避免敏感信息泄露。在实际应用中,您可能需要根据具体的项目需求和环境特点调整部署脚本。

探索云原生与智能化驱动下的安全运维新范式。关注DevSecOps、可观测性、AIOps等前沿领域,与您共赴技术前沿。 527

在springboot中配置mybatis(mybatis-plus)mapper.xml扫描路径的问题

但是我学习的项目中使用了mapper.xml配置查询脚本,只能查找mybatis教程了解mapper.xml映射文件路径配置。查找最流行的mybatis教程,发现教程中讲的mybatis的映射文件路径配置,甚至是数据库连接配置,都在mybatis-config.xml中设置。mybatis plus是在mybatis后出现的,mybatis plus简化了mybatis中编写sql脚本的过程,可以不用配置mapper.xml和sql脚本,完全通过mybatis plus定义的方法操作数据库。

qq_27361945的博客 8949

PLC模糊控制模糊PID(梯形图实现+算法分析)

博途PLC的模糊PID控制详细内容请查看下面的博客文章:Matlab仿真+博途PLC模糊PID控制完整SCL源代码参考(带模糊和普通PID切换功能)_博途怎么实现模糊pid_RXXW_Dor的博客-优快云博客模糊PID的其它相关数学基础,理论知识大家可以参看专栏的其它文章,这里不再赘述,本文就双容水箱的模糊PID问题做详细讲解(包括所有源代码和模糊规则设置参数)。

RXXW_Dor的博客 5883

Springboot Mybatis 多模块mapper.xml扫描问题

Mybatis多模块Mapper.xml扫描

qvc180的博客 1931

目标检测: yolo26在RK3588上部署

YOLO26发布:端到端目标检测新突破 摘要:Ultralytics最新发布的YOLO26算法采用原生端到端设计,无需NMS后处理,显著提升推理效率。该模型基于三大核心原则: 简洁性:消除NMS步骤,实现直接预测 部署效率:简化集成流程,降低延迟 训练创新:引入MuSGD混合优化器,加速收敛 部署教程显示,YOLO26可适配RK3588等边缘设备,通过ONNX转换和RKNN工具链实现高效部署。其创新架构特别优化了分割、姿态估计等专业任务,标志着目标检测技术的重要革新。 (字数:149)

qianxun 1442

ESP32学习笔记06-UART 的485 通讯模式

通信方式选择UART 控制器支持多种通信模式,使用函数 uart_set_mode() 可以选择模式。选择特定模式后,UART 驱动程序将处理已连接 UART 设备的相应行为。例如,主机开始向 Tx FIFO 缓冲区写入数据时,UART 驱动程序会自动置位 RTS 管脚(逻辑 1);最后一位数据传输完成后,驱动程序就会取消置位 RTS 管脚(逻辑 0)。要使用此模式,软件。

Car12 2476

Mybatis扫描不到mapper中的.xml文件解决办法 以及热部署的配置

因为我们没有配置所有SpringBoot启动默认是不加载mapper文件件的 所以我们在pom文件中配置以下 <dependencies> <!--SpringBook所需的jar包--> <dependency> <groupId>org.springframework.boot</groupId&...

qq_44605317的博客 2715

SPMI协议学习总结

SPMI(System Power Management Interface)是由MIPI(Mobile Industry Processor Interface)联盟定义的一种硬件接口标准,它主要用于移动设备中,连接SoC(System on Chip)处理器系统的集成电源控制器与一个或多个电源管理IC(PMIC),以实现精确的电源管理

歌颂苦难的行为是无耻的; 1078

【Day48】MyBatis 注解开发:替代 XML 映射文件

在 MyBatis 的传统开发模式中,XML映射文件是核心,但随着项目复杂度提升,大量 XML 文件会增加维护成本。MyBatis 提供的注解开发模式,可直接在 Mapper 接口方法上标注注解来编写 SQL,无需编写 XML 映射文件,极大简化了开发流程。本文将全面讲解 MyBatis 注解开发的核心用法,包括基础 CRUD、动态 SQL、关联查询,对比 XML 模式的差异,让你快速掌握注解开发的精髓。

maihuohuo的博客 1118

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

菜鸟之路Day35一一Mybatis之XML映射与动态SQL

内容学习自黑马程序员BV1m84y1w7Tb。

blue的博客 1286

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Mybatis-Day3

定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下设置SQL映射我呢见的namespace属性为Mapper接口的全限定名在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致编码:通过SqlSession的getMapper方法获取Mapper接口的代理对象调用对应方法完成sql的执行<mappers></mappers></sql></select>​</select>

2301_78630849的博客 1045

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

mybatis框架常见注解(持续补充)

mybatis框架中常见注解学习

唯有努力,方可自信! 1265

Mybatis的高级查询

文章目录1.搭建环境1.1创建项目1.2导入jar包1.3创建核心配置文件1.4创建实体类1.5创建接口1.6创建Mapper映射文件1.7创建对应的工具包1.8创建测试类(确保项目跑通)2.数据库之间的表关系2.1 建表语句2.2数据库表之间的关联3.高级查询3.1一对一查询3.2 一对多多表查询 1.搭建环境 1.1创建项目 创建对应的Java文件,项目名字随便起 1.2导入jar包 创建对应的lib文件夹存取对应的jar包 导入对应的jar包 1.3创建核心配置文件 在src下创建对应的Myba

qq_41125149的博客 623

MyBatis框架——First Day

框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。简而言之,框架其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。

m0_63138660的博客 346

SpringBoot整合Mybatis

1.导入依赖测试启动类测试。

weixin_60934893的博客 363

Java 快速入门学习 -- Day 2

Dao 接口的绑定 是通过映射文件的 namespace 实现的,注意要一一对应。MyBatis 查询数据库:不需要手动封装,它会将数据库的每一个列 和 程序里的具体的某一个对象的属性 一一对应。JDBC 查询数据库:需手动的将数据封装为一个对象,然后才能获取对象的信息,这样才能实现查询。maven 仓库,图书馆。要看书的化先从家里找(本地仓库),本地找不到就去中央仓库或者镜像仓库找,并把找到的书放入本地仓库。① 之前建房子,要自己买钢筋水泥什么的(如DJDBC,每次增删改查前都要插入驱动,连接什么的。

2401_83694336的博客 1022

黑马商城day1-MyBatis-Plus

引入起步依赖自定义Mapper继承BaseMapper<泛型>在实体类上添加注解声明 数据库表信息在application.yml中根据需要添加配置直接使用Wrapper存在问题:在Service层编写sql语句,这不符合开发规范。以上两个案例都存在,如果完全使用Wrapper不可避免在Service层编写sql语句。为了解决这一问题,我们可以通过 自定义sql语句前半部分,后半部分where条件通过Wrapper定义,来实现。

m0_62762293的博客 1243

Java阶段二Day19

今天是学习Java阶段二的第十九天,复习了之前学习的内容做了总结,学习SpringMVC的知识并做了阶段性练习

今天你学Java了吗 865

蜗牛学苑 Java 智能体学习 Day45|Knife4j+SpringBoot3、书城项目整合 MyBatis 思维导图复盘

重生之我在蜗牛学苑学代码

weixin_75217422的博客 769

day04 复习Mybatis+Spring全家桶(参考黑马V13)

day04 复习Mybatis+Spring全家桶(参考黑马V13)

2302_78154322的博客 486

day-23-SSM--Mybatis

1MyBatis 是一款优秀的持久层框架。MyBatis 有两种用法,一个是注解,一个是XML 优点:整体 : 小巧、方便、高效、简单、直接(SQL操作)、半自动 2 #和$的区别 #{}表示一个占位符号 通过#{}可以实现 preparedStatement 向占位符中设置值,自动进行 java 类型和 jdbc 类型转换, #{}可以有效防止 sql 注入。 #{}可以接收简单类型值或 pojo 属性值。 可以自动对值添加 ’ ’ 单引号 ${}表示拼接 sql 串 通过${}可以将 parameter

biguo_的博客 139
上一篇: Day8--mybaits框架学习
下一篇: Day10--mybatis多表连接查询学习(一对一、一对多、多对多)
IT ·南栀
博客等级 码龄6年 415粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT ·南栀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值