本文验证了通过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. sql优化_隐式-显示转换

    ========  测试表1信息   =======SQL> select count(*) from tb_test; COUNT(*)----------   3000000   SQL&g ...

  2. 单点突破:MySQL之基础

    前言 开发环境:MySQL5.7.31 本文并不是mysql语法语句的教程或者笔记,如果初学MySQL,想要看sql的教程或者学习各种语法语句规范,可以看看一千行MySQL学习笔记或者MySQL教程| ...

  3. Java JDK 动态代理(AOP)使用及实现原理分析

    一.什么是代理? 代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问.代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理. 代理模式U ...

  4. Shiro-JWT SpringBoot前后端分离权限认证的一种思路

    JWT-Shiro 整合 JWT-与Shiro整合进行授权认证的大致思路 图示 大致思路 将登录验证从shiro中分离,自己结合JWT实现 用户登陆后请求认证服务器进行密码等身份信息确认,确认成功后 ...

  5. Docker与k8s的恩怨情仇(二)—用最简单的技术实现“容器”

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 上次我们说到PaaS的发展历史,从Cloud Foundry黯然退场,到Docker加冕,正是Docker& ...

  6. 撸了几天的sofa-tracer之后,我悟了!

    什么是分布式链路跟踪 简而言之,在分布式系统下,用于跟踪链路而衍生出的一项技术. 应用场景如下: 应用A,B,C,D,E 以一个层级关系依赖, 当用户向 应用A 发起请求,但是返回了个异常,为了排查这 ...

  7. Redis并发竞争key的解决方案详解

    1. 需求由来 1.Redis高并发的问题 Redis缓存的高性能有目共睹,应用的场景也是非常广泛,但是在高并发的场景下,也会出现问题:缓存击穿.缓存雪崩.缓存和数据一致性,以及今天要谈到的缓存并发竞 ...

  8. 『无为则无心』Python序列 — 18、Python列表概念及常用操作API

    目录 1.列表的概念 (1)列表的定义 (2)列表的应用场景 (3)列表的定义格式 2.列表的常用操作 (1)列表的查找 1)通过下标查找 2)通过方法查找 3)判断是否存在 (2)列表的增加 @1. ...

  9. Java高质量面试总结

    面试 一般都是由浅到深去问,思路是: 先考察基础是否过关,因为基础知识决定了一个技术人员发展的上限 再通过深度考察是否有技术热情和深度以及技术的广度 同时可能会提出一些质疑和挑战来考察候选人能否与有不 ...

  10. Burning Bridges 求tarjan求割边

    Burning Bridges 给出含有n个顶点和m条边的连通无向图,求出所有割边的序号. 1 #include <cstdio> 2 #include <cstring> 3 ...