mybatis增删改查模板设置及设置调用

mybatis增删改查模板设置

系统配置文件完成以及连接好数据之后,就可以用这个mybatis了,首先写这个数据库的增删改查模板StashMapper.xml,这个东西是要放在DAO层中的奥,切记。

1.编写mybatis对应数据库的增删改查模板

在我的StashMapper.xml文件里,下边,开始写如下模板代码:

<mapper namespace="com.example.sfdeliverysystem.dao.mybatis.StashMapper">--结果映射 type:要映射成哪个类型的对象,这里边就是我实体类的路径名,id后边是给result起个名,一般叫实体类名+result
--这个结果映射实际上是对这个返回值进行一个预设,这些字段需要的写的返回值都在这个一一对应的映射里边了,也就是说,我在下边语句明确返回值类型的
--时候,我只需要输入一个resultMap="StashPOResult",就是13行后边id=的那个东西,对应字段的返回值就自动设置好了,要是不用它的话,就得自己写
--比如resultType="integer",resultType="com.example.sfdeliverysystem.model.StashPO"这个就是把这个返回值设置成这个实体类的类型
--涉及这个实体类里边的字段都可以自动设置返回值<resultMap type="com.example.sfdeliverysystem.model.StashPO" id="StashPOResult">
--对表中的主键进行映射,id后边的是主键,result后边的是非主键
--property属性:用于指定实体类属性名称;column属性:用于指定数据库列名<id property="orderid" column="c_orderid" /><result property="name" column="c_name" /><result property="address" column="c_address" /><result property="packagetype" column="c_packagetype" />                                                                                                                                                                                                                                 <result property="weight" column="f_weight" /><result property="arrivepayment" column="b_arrivepayment" /><result property="comment" column="c_comment" /></resultMap>
--这是insert操作的模板预设,id后边是方法名,
--insert需要有入参,所以parameterType后边是入参,代表从这个实体类获得参数<insert id="insertStash" parameterType="com.example.sfdeliverysystem.model.StashPO">INSERT INTOt_stash(c_orderid,c_name,c_address,n_tel,c_packagetype,f_weight,b_arrivepayment,c_comment)VALUES(#{orderid},#{name},#{address},#{tel},#{packagetype},#{weight},#{arrivepayment},#{comment});--values上边这行,代表数据库里边的字段名,values下边这行,代表通过实体类中的对应输入的入参,所以才会有一个带c一个不带c的这种情况</insert>
--这是select操作的模板预设,id后边是方法名,select不需要入参,所以没有parameterType后边那一堆<select id="selectStash"resultMap="StashPOResult">SELECTc_orderid,c_name,c_address,n_tel,c_packagetype,f_weight,b_arrivepayment,c_commentFROMt_stash;</select>
--这是update操作的模板预设,id后边是方法名,update需要有入参,所以parameterType后边是入参,代表从这个实体类获得参数--><update id="updateStash" parameterType="com.example.sfdeliverysystem.model.StashPO">updatet_stashsetc_orderid = #{orderid},c_name = #{name},c_address = #{address},n_tel=#{tel},c_packagetype=#{packagetype},f_weight=#{weight},b_arrivepayment=#{arrivepayment},c_comment=#{comment});</update>
--这是delete操作的模板预设,id后边是方法名,update需要有入参,
--所以parameterType后边是入参,代表从这个实体类获得参数<delete id="deleteStash" parameterType="String">deletefromt_stashwherec_orderid = #{orderid};
--上边只写c_orderid而不写别的字段是因为这比是主键,
--删东西都得在这删,第二范式</delete>
</mapper>

下面说一下我遇到的疑惑,看下边的代码

<select id="getTRyglFgtsByBh" parameterType="String"resultType="com.thunisoft.jxglptJxkh.bean.TRyglFgts">SELECT C_BH AS CBh, C_RY AS CRy, C_FGTS AS CFgts,C_FY ASCFy FROMT_RYGL_FGTS WHERE C_BH = #{CBh,jdbcType=VARCHAR}</select><select id="getTRyglFgtsListByRy" parameterType="String"resultMap="TRyglFgtsResult">SELECT C_BH AS CBh, C_RY AS CRy, C_FGTS AS CFgts,C_FY ASCFyFROMT_RYGL_FGTS WHERE C_RY = #{CRy}</select>

这是两个select模板语句,问题是,第一个和第二个的java类型都是“String”,然后下边得代码也基本差不多,差就差在最后一句,第一个是WHERE C_BH = #{CBh,jdbcType=VARCHAR},第二个是 WHERE C_RY = #{CRy},这两个一个用了VARCHAR,一个没有,这是为什么呢?

原因在于,第一个 C_BH代表编号,在数据库中可能是普通得编号也可能是
uu_id,这两种编号得类型不一样,普通编号是VARCHAR,uu_id是有自己单独的类型,但是我上边的java类型是String,只能对应数据库的VARCHAR,这样二对一,就有可能出现对不上的情况,所以我要把下边数据库的类型强行限制成VARCHAR,这样就能完美跟JAVA里的String对应上了。

2.在DAO层建立mapper去调用已建好的模板

首先要确认这个模板文件,我的叫StashMapper.xml是在Dao层里奥

建完模板之后,在项目的DAO层,建立一个mapper接口


在这个接口中写调用模板的代码(本质上用的还是接口那套活)

package com.example.sfdeliverysystem.dao.mybatis;
import  java.util.List;
import com.example.sfdeliverysystem.model.StashPO;public interface StashMapper {/*** 这是增* @param stashPo*/void insertStash(StashPO stashPo);/*** 这是查,只有它有返回值* @return StashPO*/StashPO selectStash();/*** 这是改* @param stashPo*/void updateStash(StashPO stashPo);/*** 这是删,删的类型是String* @param cid*/void deleteStash(String cid);

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

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

相关文章

SSL发送邮件时如何配置客户端确保安全性?

怎么使用SSL安全协议通过AokSend发送加密的电子邮件&#xff1f; SSL是一种常用的加密通信协议&#xff0c;用于确保数据在客户端和服务器之间的安全传输。AokSend将讨论如何通过配置客户端确保SSL发送邮件的安全性&#xff0c;并介绍如何使用SSL安全协议通过AokSend发送加密的…

IDEA中,MybatisPlus整合Spring项目的基础用法

一、本文涉及的知识点【重点】 IDEA中使用MybatisPlus生成代码&#xff0c;并使用。 Spring整合了Mybatis框架后&#xff0c;开发变得方便了很多&#xff0c;然而&#xff0c;Mapper、Service和XML文件&#xff0c;在Spring开发中常常会重复地使用&#xff0c;每一次的创建、修…

翼龙面板是什么,如何进行搭建

翼龙面板是一个开源的&#xff0c;用于游戏服务器管理的程序&#xff0c;可以方便地在网页界面中创建Minecraft&#xff0c;起源引擎游戏和Teamspeak3 服务器。 它使用前后端程序&#xff0c;因此可以创建多后端节点&#xff0c;对游戏服务器和服务器节点进行统一管理。 对游戏…

java项目之智能家居系统源码(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的智能家居系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于Springboot的智能家居系…

WPS部分快捷操作汇总

记录一些个人常用的WPS快捷操作 一、去除文档中所有的超链接&#xff1a; 1、用WPS打开文档&#xff1b; 2、用Ctrla全选&#xff0c;或者点击上方的【选择】-【全选】&#xff0c;选中文档全部内容&#xff1b; 3、按CTRLSHIFTF9组合键&#xff0c;即可一次性将取文档中所有…

yolov10/v8 loss详解

v10出了就想看看它的loss设计有什么不同&#xff0c;看下来由于v8和v10的loss部分基本一致就放一起了。 v10的论文笔记&#xff0c;还没看的可以看看&#xff0c;初步尝试耗时确实有提升 好记性不如烂笔头&#xff0c;还是得记录一下&#xff0c;以免忘了&#xff0c;废话结束…

[数据集][目标检测]数据集VOC格式岸边垂钓钓鱼fishing目标检测数据集-4330张

数据集格式&#xff1a;Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;4330 标注数量(xml文件个数)&#xff1a;4330 标注类别数&#xff1a;1 标注类别名称:["fishing"] 每…

基于LQR控制算法的电磁减振控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于LQR控制算法的电磁减振控制系统simulink建模与仿真。仿真输出控制器的收敛曲线。 2.系统仿真结果 3.核心程序与模型 版本&#xff1a;MATLAB2022a 08_029m 4.系统原理…

Python的第三方库OS库

读者大大们好呀&#xff01;&#xff01;!☀️☀️☀️ &#x1f525; 欢迎来到我的博客 &#x1f440;期待大大的关注哦❗️❗️❗️ &#x1f680;欢迎收看我的主页文章➡️寻至善的主页 文章目录 &#x1f525;前言&#x1f680;OS/SHUTIL 的方法描述&#x1f680;OS/SHUTIL…

Html/HTML5常用标签的学习

课程目标 项目实战&#xff0c;肯定就需要静态网页。朝着做项目方式去学习静态网页。 01、编写第一个html工程结构化 cssjsimages/imgindex.html 归档存储和结构清晰就可以。 02、HTML标签分类 认知&#xff1a;标签为什么要分类&#xff0c;原因因为&#xff1a;分门别类…

泄漏libc基地址

拿libc基地址 方法一&#xff1a;格式化字符串 格式化字符串&#xff0c;首先确定输入的 AAAA 在栈上的位置&#xff08;x&#xff09;。使用 elf.got[fun] 获得got地址。利用格式化字符串&#xff0c;构造payload泄漏got地址处的值&#xff0c;recv接受到的字符串中&#xf…

rust安装

目录 一、安装1.1 在Windows上安装1.2 在Linux下安装 二、包管理工具三、Hello World3.1 安装IDE3.2 输出Hello World 一、安装 1.1 在Windows上安装 点击页面 安装 Rust - Rust 程序设计语言 (rust-lang.org)&#xff0c;选择"下载RUSTUP-INIT.EXE(64位&#xff09;&qu…

Django里多app

在 Django 里的某一个项目&#xff0c;里面得包含很多 App (功能)&#xff0c;那么如何在该项目里管理这么多App呢&#xff1f; 先说明下背景&#xff1a;未先创建 apps 文件夹来存各个app文件夹&#xff0c;直接在项目文件目录里创建各个app。为了便于管理&#xff0c;得将各…

JVM(Java虚拟机)笔记

面试常见&#xff1a; 请你谈谈你对JVM的理解?java8虚拟机和之前的变化更新?什么是OOM&#xff0c;什么是栈溢出StackOverFlowError? 怎么分析?JVM的常用调优参数有哪些?内存快照如何抓取&#xff1f;怎么分析Dump文件&#xff1f;谈谈JVM中&#xff0c;类加载器你的认识…

虚拟现实环境下的远程教育和智能评估系统(三)

本周继续进行开发工具的选择与学习&#xff0c;基本了解了以下技术栈的部署应用&#xff1b; 一、Seata&#xff1a; Seata&#xff08;Simple Extensible Autonomous Transaction Architecture&#xff09;是一款开源的分布式事务解决方案&#xff0c;旨在提供高性能和简单易…

小程序唯品会Authorization sign

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章未…

Java学习【String类详解】

Java学习【String类详解】 String的介绍及定义方式String类型的比较String类型的查找charAt()访问字符indexOf()查找下标 转化和替换数值和字符串转化大小写的转换字符串转数组格式化替换 字符串的拆分和截取split()拆分substring()截取trim()去除两边空格 StringBuilder和Stri…

521源码-免费源码下载-在线变量命名工具前端源码-新手开发者工具

更多网站源码学习教程&#xff0c;请点击&#x1f449;-521源码-&#x1f448;获取最新资源 本工具地址&#xff1a;在线变量命名工具前端源码-新手开发者工具 - 521源码

多输入多输出 | MATLAB实现PSO-SVM粒子群优化支持向量机多输入多输出

多输入多输出 | MATLAB实现PSO-SVM粒子群优化支持向量机多输入多输出 目录 多输入多输出 | MATLAB实现PSO-SVM粒子群优化支持向量机多输入多输出预测效果基本介绍程序设计往期精彩参考资料 预测效果 基本介绍 多输入多输出 | MATLAB实现PSO-SVM粒子群优化支持向量机多输入多输出…

Java大厂面试题第2季

一、本课程前提要求和说明 面试题1&#xff1a; 面试题2&#xff1a; 面试题3&#xff1a; 面试题4&#xff1a; 面试题5&#xff1a; 高频最多的常见笔试面试题目 ArrayList HashMap 底层是什么东东 JVM/GC 多线程与高并发 java集合类