本文验证了通过mybatis访问数据库时的,增删改查的返回值情况。

直接看代码。

1、service层

/**
*@Author: Administrator on 2020/3/12 15:15
*@param:
*@return:
*@Description:查询同步情况
*/
@Override
public PageInfo getSyncstatusPages(Syncstatus vo, int pageNo, int pageSize) {
PageHelper.startPage(pageNo, pageSize); /* //查看增删改查的返回值
//1新增:返回值自己定义,可以是void,int
//1-1新增一条数据:插入成功,返回值为1
int insert_success1 = yylfHttpServletMapper.insert("8", "2", "1");
//1-2新增多条数据:插入成功,返回值为插入的数据条数,当有一条数据错误时,所有数据都会插入失败
int insert_success2 = yylfHttpServletMapper.insert_duotiao("7");
String insert_success3 = yylfHttpServletMapper.insert_duotiao_String("7");//不支持返回值为String类型
//1-3新增一条数据:插入失败:主键冲突,会直接报异常
int insert_failed = yylfHttpServletMapper.insert("1", "2", "1");
//1-4插入null:属性为null,如果表中所有字段允许为null,插入一条所有值均为null的数据
Syncstatus syncstatus1 = null;
yylfHttpServletMapper.insertSyncstatus(syncstatus1);
//1-5插入一个没有赋值的对象:属性为null,如果表中所有字段允许为null,插入一条所有值均为null的数据
Syncstatus syncstatus2 = new Syncstatus();
yylfHttpServletMapper.insertSyncstatus(syncstatus2);*/ /*//2删除:返回值自己定义,可以是void,int
//2-1删除成功:没有数据:返回值为0
int delete_success1 = yylfHttpServletMapper.delete("0");
//2-2删除成功:有多条数据:返回值为删除的数据条数
int delete_success2 = yylfHttpServletMapper.delete_systemcode("2");
//2-3删除失败:例如有外键:报异常
int delete_fail = yylfHttpServletMapper.delete("1");*/ //3更新:返回值自己定义,可以是void,int
//3-1更新成功:没有数据,返回值为0
int update_no = yylfHttpServletMapper.update_no("0");
//3-2更新成功:有多条数据,返回更新的数据条数
int update_duotiao = yylfHttpServletMapper.update_duotiao_systemcode("2");
//3-3更新失败:例如有外键,报异常
//int update_fail = yylfHttpServletMapper.update_fail("1"); //4查询
//4-1 没数:String 类型返回null
Object object = yylfHttpServletMapper.select("0");
//4-1 没数:集合 类型返回[]空集合
Syncstatus syncstatus3 = new Syncstatus();
syncstatus3.setStatus("7");
List<Syncstatus> page0 = yylfHttpServletMapper.getSyncstatusList(syncstatus3);
//4-1 没数:int 类型返回null,如果定义为int会报错。因为没数时返回null,可以将返回类型改为String
String i = yylfHttpServletMapper.select_int(0);
//4-1:当返回值为对象时,若返回值为空,则返回null
//4-2 有数
List<Syncstatus> pages = yylfHttpServletMapper.getSyncstatusList(vo);
return new PageInfo<Syncstatus>(pages);
}

2、mapper

/**
* @author zs
* @date 2019/10/18 16:03
*/
@Repository
public interface YylfHttpServletMapper { //删除预约临分未到期数据
void deleteZrjunearnedfac(Date startdate);
//保存预约临分未到期数据
void addZrjunearnedfac(List<Zrjunearnedfac> zrjunearnedfacList);
//删除据提取信息
void deleteSyncstatus(String uuid);
//保存数据提取信息
void insertSyncstatus(Syncstatus syncstatus);
//查询数据同步信息
List<Syncstatus> getSyncstatusList(@Param("vo")Syncstatus vo);
//获取日志信息
List<InterfaceLog> getYylfNewLog(@Param("uuid")String uuid, @Param("sendsystemcode")String sendsystemcode); //新增
int insert(@Param("uuid")String uuid, @Param("systemcode")String systemcode, @Param("status")String status);
int insert_duotiao(@Param("uuid")String uuid);
String insert_duotiao_String(@Param("uuid")String uuid);
//删除
int delete(@Param("uuid")String uuid);
int delete_systemcode(@Param("systemcode")String systemcode);
//修改
int update_no(@Param("uuid")String uuid);
int update_duotiao_systemcode(@Param("systemcode")String systemcode);
int update_fail(@Param("uuid")String uuid); //查询
Object select(@Param("uuid")String uuid); String select_int(@Param("uuid")int uuid); }

3、mapper.xml

<insert id="insert" parameterType="java.util.Map">
insert into aaa
(uuid,systemcode,status)
value
(#{uuid,jdbcType=VARCHAR},#{systemcode,jdbcType=VARCHAR},#{status,jdbcType=VARCHAR})
</insert> <insert id="insert_duotiao" parameterType="java.util.Map">
insert into aaa
(uuid,systemcode,status)
value
('1','2','2'),('6','2','2')
</insert> <insert id="insert_duotiao_String" parameterType="java.util.Map">
insert into aaa
(uuid,systemcode,status)
value
('5','2','2'),('6','2','2')
</insert> <delete id="delete">
delete from aaa where uuid = #{uuid,jdbcType=VARCHAR}
</delete> <delete id="delete_systemcode">
delete from aaa where systemcode = #{systemcode,jdbcType=VARCHAR}
</delete> <update id="update_no">
UPDATE aaa SET status = '0' WHERE uuid = #{uuid,jdbcType=VARCHAR}
</update>
<update id="update_duotiao_systemcode">
UPDATE aaa SET systemcode = '3' WHERE systemcode = #{systemcode,jdbcType=VARCHAR}
</update>
<update id="update_fail">
UPDATE aaa SET uuid = '0' WHERE uuid = #{uuid,jdbcType=VARCHAR}
</update> <select id="select">
select uuid from aaa where uuid = '0'
</select> <select id="select_int" resultType="String">
select uuid from aaa where uuid = 0
</select> <select id="getSyncstatusList" resultMap="syncstatusToRow">
select uuid,startdate as paydate ,date(createtimefordw) as syndate ,status,
sum(case when tablename='zrjunearnedfac' then zrjcount end) as zrjunearnedfacNum,
sum(case when tablename='zrjoutstandingfac' then zrjcount end) as zrjoutstandingfacNum
from syncstatus where 1=1
AND systemcode = 'YYLF'
<if test=" vo.startdate != null and vo.enddate !=null " >
AND startdate between #{vo.startdate} and #{vo.enddate}
</if>
<if test="vo.status != '' and vo.status != null " >
AND status = #{vo.status}
</if>
group by uuid,startdate,createtimefordw,status
order by startdate,date(createtimefordw) desc
</select>

4、sql语句

-- 创建aaa表用来验证增删改查的返回值
CREATE TABLE `reserve`.`aaa` (
`uuid` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`systemcode` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`status` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (`uuid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; -- 新增
insert into aaa (uuid,systemcode,status)value ('1','2','2');
insert into aaa (uuid,systemcode,status)value ('2','2','2');
insert into aaa (uuid,systemcode,status)value ('3','2','2');
insert into aaa (uuid,systemcode,status)value ('4','2','2');
insert into aaa (uuid,systemcode,status)value ('5','2','2'),('6','2','2'); -- 删除
delete from aaa where uuid = '0';
delete from aaa where uuid != '1';
delete from aaa where uuid = '2'; -- 修改
UPDATE aaa SET systemcode = '3' WHERE uuid = '1'; UPDATE aaa SET uuid = '0' WHERE uuid = '2'; -- 查询
select * from aaa; -- 创建bbb表用来关联aaa的uuid作外键
CREATE TABLE `reserve`.`bbb` (
`uuid` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`systemcode` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`status` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (`uuid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; alter table bbb add constraint FK_T_POSITI_REFERENCE_T_COMPAN foreign key (uuid)references
aaa (uuid); insert into bbb (uuid,systemcode,status)value ('1','2','2'); -- 创建ccc表用来验证插入的为null的数据
CREATE TABLE `reserve`.`ccc` (
`uuid` char(36) CHARACTER SET utf8 COLLATE utf8_general_ci ,
`systemcode` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci ,
`status` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; insert into ccc (uuid,systemcode,status)value (NULL,NULL,NULL); select *from ccc; -- 创建ddd表用来验证查询结果为空时的返回值
CREATE TABLE `reserve`.`ddd` (
`uuid` INT ,
`systemcode` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci ,
`status` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; insert into ddd (uuid,systemcode,status)value (1,'2','2'); select *from ddd;

mybatis的增删改查返回值小析(六)的更多相关文章

  1. 学习MyBatis必知必会(5)~了解myBatis的作用域和生命周期并抽取工具类MyBatisUtil、mybatis执行增删改查操作

    一.了解myBatis的作用域和生命周期[错误的使用会导致非常严重的并发问题] (1)SqlSessionFactoryBuilder [ 作用:仅仅是用来创建SqlSessionFactory,作用 ...

  2. MyBatis批量增删改查操作

      前文我们介绍了MyBatis基本的增删该查操作,本文介绍批量的增删改查操作.前文地址:http://blog.csdn.net/mahoking/article/details/43673741 ...

  3. 上手spring boot项目(三)之spring boot整合mybatis进行增删改查的三种方式。

    1.引入依赖. <!--springboot的web起步依赖--><dependency> <groupId>org.springframework.boot< ...

  4. 上手spring boot项目(三)之spring boot整合mybatis进行增删改查

    使用mybatis框架进行增删改查大致有两种基础方式,一种扩展方式.两种基础方式分别是使用xml映射文件和使用方法注解.扩展方式是使用mybatis-plus的方式,其用法类似于spring-data ...

  5. 从0开始完成SpringBoot+Mybatis实现增删改查

    1.准备知识: 1)需要掌握的知识: Java基础,JavaWeb开发基础,Spring基础(没有Spring的基础也可以,接触过Spring最好),ajax,Jquery,Mybatis. 2)项目 ...

  6. Mybatis实例增删改查(二)

    创建实体类: package com.test.mybatis.bean; public class Employee { private Integer id; private String las ...

  7. MyBatis的增删改查。

    数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改,并且对程序接口做了一些调整,以及对一些问题进行了解答. 1.调整后的结构图: 2.连接数据库文件配置分离: 一般的程序都会把连 ...

  8. SpringBoot-Vue实现增删改查及分页小DEMO

    前言 主要通过后端 Spring Boot 技术和前端 Vue 技术来简单开发一个demo,实现增删改查.分页功能以及了解Springboot搭配vue完成前后端分离项目的开发流程. 开发栈 前端 开 ...

  9. ssm 框架实现增删改查CRUD操作(Spring + SpringMVC + Mybatis 实现增删改查)

    ssm 框架实现增删改查 SpringBoot 项目整合 一.项目准备 1.1 ssm 框架环境搭建 1.2 项目结构图如下 1.3 数据表结构图如下 1.4 运行结果 二.项目实现 1. Emplo ...

随机推荐

  1. NX二次开发-将3X3矩阵修正为正交且长度为单位长度的矩阵

    函数:UF_MTX3_ortho_normalize() 函数说明:将矩阵修正为正交且xyz长度为单位长度的矩阵.下图中输入的矩阵为三条线段的端点,经过修正后,生成一个坐标系. 1 #include ...

  2. 【VBA】测试程序运行时间,延时方法

    测试程序运行时间 Dim start As Date start = Now() Dim i As Long For i = 0 To 10000000 ' 10 million Next Debug ...

  3. guavacache源码阅读笔记

    guavacache源码阅读笔记 官方文档: https://github.com/google/guava/wiki/CachesExplained 中文版: https://www.jianshu ...

  4. 面试官:如何在分布式场景下生成全局唯一 ID?

    在分布式系统中,有一些场景需要使用全局唯一 ID ,可以和业务场景有关,比如支付流水号,也可以和业务场景无关,比如分库分表后需要有一个全局唯一 ID,或者用作事务版本号.分布式链路追踪等等,好的全局唯 ...

  5. bzoj2427 软件安装! 树dp

    软件安装 内存限制:128 MiB 时间限制:1000 ms 标准输入输出     题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi.我们希望从中选择一 些软 ...

  6. Jenkins 构建自动化 .NET Core 发布镜像

    Jenkins 构建自动化 .NET Core 发布镜像 导读 在本章中,将介绍如何在 Linux 下使用 Docker 部署.启动 Jenkins,编写脚本,自动化构建 .NET Core 应用,最 ...

  7. 精尽Spring Boot源码分析 - 序言

    该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...

  8. [源码解析] 深度学习分布式训练框架 horovod (12) --- 弹性训练总体架构

    [源码解析] 深度学习分布式训练框架 horovod (12) --- 弹性训练总体架构 目录 [源码解析] 深度学习分布式训练框架 horovod (12) --- 弹性训练总体架构 0x00 摘要 ...

  9. Maven:手动添加jar包进Maven本地库内

    正常maven依赖jar包的pom.xml写法如下: <!-- https://mvnrepository.com/artifact/ojdbc/ojdbc --><!-- (参数一 ...

  10. Python字符串格式方式 %s format()

    p.p1 { margin: 0; font: 12px ".PingFang SC" } p.p2 { margin: 0; font: 12px "Helvetica ...