Mybatis-Mapper接口方式

目录

配置方式和接口方式的区别

示例:Mapper接口方式实现数据库的CRUD


配置方式和接口方式的区别

        Mybatis框架在配置方式的情况下,对数据库的CRUD操作直接通过SqlSession对象来操作,常用的方法有select、insert、update、delete等方法,在这些方法的参数中,需要准确的写明对应xml文件的namespace+方法,参考下图的代码方式:

        Mybatis接口方式(推荐方式)实现数据库的CRUD操作,采用接口方式开发,根据接口里面的方法实现数据库的操作,基于这种方式实现,需要如下约定:

  1. mapper文件中的namespace名称就是接口的包名+接口名称
  2. mapper文件中的方法需要和接口的方法名保持一致

示例:Mapper接口方式实现数据库的CRUD

        Mybatis Mapper接口方式实现数据库操作有如下步骤

1、pom添加mybatis等依赖

        <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.10</version></dependency><dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>2.0</version></dependency><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.4</version></dependency>

2、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><settings><!-- 驼峰命名转换 --><setting name="mapUnderscoreToCamelCase" value="true"/></settings><environments default="dev"><environment id="dev"><transactionManager type="JDBC"></transactionManager><dataSource type="com.text.datasource.C3P0DataSourceFactory"><property name="driverClass" value="com.mysql.jdbc.Driver"/><property name="jdbcUrl" value="jdbc:mysql://xxx:3306/xxx?useUnicode=true&amp;characterEncoding=UTF-8"/><property name="user" value="xxx"/><property name="password" value="xxx"/><property name="initialPoolSize" value="5"/><property name="maxPoolSize" value="20"/><property name="minPoolSize" value="5"/></dataSource></environment></environments><!-- mapper文件--><mappers><mapper resource="mappers/student.xml"/></mappers>
</configuration>

3、配置mapper文件 student.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.text.mapper.StudentMapper"><select id="selectAll" resultType="com.text.entity.Student">select * from student</select>
</mapper>

注意: xml文件中的namespace一定是下方StudentMapper接口类的完整路径名,id就是StudentMapper接口类的方法名

4、编写Mapper接口 StudentMapper

package com.text.mapper;import com.text.entity.Student;import java.util.List;public interface StudentMapper {List<Student> selectAll() throws Exception;
}

5、测试类

package com.text;import com.text.entity.Student;
import com.text.mapper.StudentMapper;
import com.text.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;import java.util.List;public class Application {public static void main(String[] args) throws Exception {SqlSession sqlSession = MyBatisUtils.openSession();StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);List<Student> students = mapper.selectAll();students.forEach(student -> {System.out.println(student);});MyBatisUtils.closeSession(sqlSession);}
}

注意:通过sqlSession的getMapper直接获取了Mapper接口,通过直接调用接口里面的方法进而对数据库进行操作

6、运行结果:

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

免费送源码:Java+B/S+ssm+MySQL 公众养老服务网上预订系统 计算机毕业设计原创定制

摘 要 本论文主要论述了如何使用JAVA语言开发一个公众养老服务网上预订系统&#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;SSM框架进行开发。在引言中&#xff0c;作者将论述公众养老服务网上预订系统的当前背景以及系统开发…

基于STM32的无人驾驶汽车路径规划与视觉识别系统

目录 引言项目背景环境准备 硬件准备软件安装与配置系统设计 系统架构关键技术代码示例 摄像头图像采集与处理路径规划算法实现实时视觉障碍物检测电机控制与执行应用场景结论 1. 引言 无人驾驶技术是当前自动化和人工智能领域的热门课题之一&#xff0c;涉及到复杂的感知、…

TLS详解

什么是TLS TLS(Transport Layer Security)传输层安全性协议 &#xff0c;它的前身是SSL(Secure Sockets Layer)安全套接层&#xff0c;是一个被应用程序用来在网络中安全的通讯协议&#xff0c; 防止电子邮件、网页、消息以及其他协议被篡改或是窃听。是用来替代SSL的&#xf…

基于C#开发的(CS界面)图书管理系统

图书管理系统项目开发说明书 项目简介 项目背景&#xff08;选择这个项目的原因、前景&#xff0c;面向的用户&#xff0c;优势&#xff09;&#xff1b; 根据温州理工学院需要希望能够充分利用现代科技来提高图书管理的效率&#xff0c;在原有的办公系统基础上进行扩展&…

护眼落地灯到底有没有用?五款好用护眼落地灯分享

护眼落地灯到底有没有用&#xff1f;护眼落地灯既适合日常照明使用&#xff0c;又适合学生以及办公人群使用的一种护眼神器&#xff0c;因此热度一直都很高。但是该行业内的产品也很复杂&#xff0c;其中还有一些劣质不专业的产品掺杂在其中&#xff0c;不但照明效果不佳&#…

UE4_Niagara基础实例—5、骨架网格体表面生成粒子及过滤骨骼位置生成粒子

效果图&#xff1a; 步骤&#xff1a; 1、学习了静态网格体位置生成粒子之后这个就比较简单了&#xff0c;把粒子生成位置更改为SkeletalMeshLocation。 2、小白人的骨骼网格体为&#xff1a; 你会发现骨骼的每一个节点处都有粒子产生。 3、我们还可以修改骨骼采样类型 4、我们…

win自带录屏怎么用?让视频制作更简单!

win自带录屏怎么用&#xff1f;Windows系统内置的录屏功能&#xff0c;以其便捷高效著称&#xff0c;轻松满足多样化需求。无论是快速捕捉会议要点、制作教学视频&#xff0c;还是直播精彩游戏瞬间&#xff0c;都能一键启动&#xff0c;无缝录制。无需额外安装软件&#xff0c;…

【tower-boot 系列】开源RocketMQ和阿里云rockerMq 4.x和5.x集成 (一)

RocketMQ 简单介绍 阿里云rockerMq 4.x和5.x集成 一、云平台创建实例 参考文档&#xff1a; 阿里云api 阿里云 创建实例 二、skd集成思路 公司用的RocketMQ一般是自建开源apache的RocketMQ和上阿里云的RocketMQ&#xff0c;目前阿里云支持4.x和5.x版本 项目集成思路&…

LLM - 使用 RAG (检索增强生成) 多路召回 实现 精准知识问答 教程

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/142629289 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 RAG (R…

想要编辑 PDF 文件?使用这 10 种最佳 PDF 编辑工具

您是否遇到过利益干系人要求您对 PDF 文件进行细微更改的情况&#xff1f; 通常我们会这样做&#xff01; 但是&#xff0c;对你来说&#xff0c;做出要求的改变有多难呢&#xff1f; 好吧&#xff0c;当您没有用于创建 PDF 文件的源文件时&#xff0c;问题就来了。是的&…

求5X5的次小值/次大值

我们知道&#xff0c;求最大值和最小值是比较容易的&#xff0c;就是通过分组判断&#xff0c;然后再次比较即可求出&#xff0c;那么求出次小值/次大值怎么实现呢&#xff0c;本文提供一个设计的思路。 以5x5为例&#xff0c;求出次小值&#xff0c; 第一步&#xff0c;先分…

export command in Limux

export command in Linux with Examples The ‘export’ command is one of the essential built-in commands in the Bash shell, allowing users to manage environment variables effectively. It is defined in POSIX standards, which state that the shell will assign …

Elastic 在 IDC MarketScape:2024 年全球企业 SIEM 报告中被评为领导者

作者&#xff1a;来自 Elastic Mark Settle Elastic 在 IDC MarketScape 2024 年企业 SIEM 供应商评估中被评为领导者。 Elastic Security 利用 AI 驱动的安全分析&#xff08;SIEM 的未来&#xff09;实现威胁检测、调查和响应的现代化。它是 SOC 团队的首选工具&#xff0c;因…

如何修复变砖的手机并恢复丢失的数据

您可能之前听说过“变砖”&#xff0c;但您知道什么是变砖手机吗&#xff1f;正如许多论坛中经常提出的问题一样&#xff0c;我如何知道我的手机是否变砖了&#xff1f;好吧&#xff0c;手机变砖主要有两种类型&#xff0c;即软件变砖和硬变砖。软变砖手机意味着重启后您仍然可…

如何选购适合自己的内衣洗衣机?五款热门卓越型号测评推荐

相信不少小伙伴都跟我一样&#xff0c;一方面&#xff0c;认为内裤、袜子与大件的上衣、裤子放一块清洗&#xff0c;会感觉很不卫生&#xff0c;而且穿在身上也不安心。但是另一方面&#xff0c;本身又很懒惰&#xff0c;也不想自己用手洗&#xff0c;不但经常会遗漏一些污渍&a…

什么是 JWT?它是如何工作的?

松哥最近辅导了几个小伙伴秋招&#xff0c;有小伙伴在面小红书时遇到这个问题&#xff0c;这个问题想回答全面还是有些挑战&#xff0c;松哥结合之前的一篇旧文和大伙一起来聊聊。 一 无状态登录 1.1 什么是有状态 有状态服务&#xff0c;即服务端需要记录每次会话的客户端信…

排序(交换排序:快排)

快速排序&#xff1a; 写快排的注意事项 1.单趟排序hoare 2.不写优化只说优化就行 理想的情况下&#xff1a;每次排序都是二分&#xff0c;直到二分到最后&#xff0c;那就相当于递归高度次(logN)&#xff0c;每一层单趟排都是O(N)&#xff0c;时间复杂度O(NlogN) 空间复杂度就…

Wed前端--HTML基础

目录 一、开发工具 二、HTML文档结构 2.1头部head 2.1.1title标记 2.1.2元信息meta标记 具体实例 ​编辑 一、开发工具 最基础的开发工具是&#xff1a;HBuilder 二、HTML文档结构 HTML文档由头部head和主体body组成 头部head标记中可以定义标题样式&#xff0c;头部信…

【流计算】流计算概论

前言 作者在之前写过一个大数据的专栏&#xff0c;包含GFS、BigTable、MapReduce、HDFS、Hadoop、LSM树、HBase、Spark&#xff0c;专栏地址&#xff1a; https://blog.csdn.net/joker_zjn/category_12631789.html?fromshareblogcolumn&sharetypeblogcolumn&sharerI…

常用激活函数总结

文章目录 什么是激活函数激活函数的作用常用激活函数1.Sigmoid函数2.Softmax函数3.Tanh函数4.Relu函数5.LeakyRelu函数6.PRelu函数7.ELU函数8.SELU函数 什么是激活函数 激活函数&#xff0c;通俗讲&#xff0c;就是一个函数&#xff0c;针对某个神经元&#xff0c;就是将输入经…