最近做项目的过程中,在数据库方面遇到了两个问题,一是在插入一条数据的时候需要将该条数据的主键返回、二是根据时间区间进行查询时某一天的数据查询不到,在此总结记录一下。

1、如何在插入一条数据的同时将主键返回

在实体类的映射文件 "Mapper.xml" 中这样写:

insert into user(userName,password,comment)

values(#{userName},#{password},#{comment})

useGeneratedKeys="true"表示给主键设置自增长

keyProperty="userId"表示将自增长后的Id赋值给实体类中的userId字段

parameterType="com.ue.entity.User"这个属性指向传递的参数实体类

注意,中是没有resultType属性的,不要乱加

实体类中uerId要有getter() and setter()方法

如果在数据库中已经设置了主键自增,则可以在 "Mapper.xml" 中这样写:

SELECT LAST_INSERT_ID()

INSERT INTO t_product(productName,productDesrcible,merchantId)

values(#{productName},#{productDesrcible},#{merchantId})

中没有resultType属性,但是标签是有的

order="AFTER" 表示先执行插入语句,之后再执行查询语句,可设置为BEFORE或AFTER;

如果设置为BEFORE,那么它会首先选择主键,设置keyProperty然后执行插入语句;

如果设置为AFTER,那么先执行插入语句,然后是selectKey元素;这和Oracle数据库相似,可以在插入语句中嵌入序列调用

keyProperty="userId"表示将自增长后的Id赋值给实体类中的userId字段

SELECT LAST_INSERT_ID()表示MySQL语法中查询出刚刚插入的记录自增长Id

实体类中productId要有getter() and setter()方法

上述两种方式都是在执行插入语句后将查询到的主键封装进了parameterType中的参数实体类中,所以直接用该参数实体的get()方法就可以将主键取出来

2、MySQL根据时间区间进行查询时某一天的数据查询不到的问题

例如:

SELECT * FROM 表名 WHERE 开始时间字段名 BETWEEN '2019-05-01' AND '2019-06-14'

发现6月14号的数据没有出来,因为between……and……是左闭右开,即[a,b),即包含a的值,不包含b的值

将上面的SQL修改成下面的语句即可,将原来的日期加上一天:

select * from 表名 where 字段名 BETWEEN '2019-05-01' and DATE_ADD('2019-06-14',INTERVAL 1 DAY)

即使是用>=和<=也是跟用between......and......的效果一样的,也需要将原来的日期加上一天,如下是mapping.xml文件中的片段:

AND 开始时间字段名 >= #{前台传的值}

AND 结束时间字段名 <= DATE_ADD(#{前台传的值},INTERVAL 1 DAY)

---------------------

mysql插入时间区间_mybatis插入数据时返回主键以及MySQL根据时间区间查询问题总结...相关推荐

  1. mybatis 插入数据时返回主键

    在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数:显然,假如主键是你生成后插入的,自然你已经有主键了,显然不需要我们再去获得,所以我们这里处理的是当主键 ...

  2. Mybatis insert数据时返回主键

    Mybatis insert 时候默认返回行数,想要获取主键,可以在写xml时候添加属性配置,以MySQL为例 keyProperty="id" useGeneratedKeys= ...

  3. MyBatis框架——mybatis插入数据返回主键(mysql、oracle)

    向数据库中插入数据时,大多数情况都会使用自增列或者UUID做为主键.主键的值都是插入之前无法知道的,但很多情况下我们在插入数据后需要使用刚刚插入数据的主键,比如向两张关联表A.B中插入数据(A的主键是 ...

  4. python mysql批量insert数据、返回id_Python3 操作 MySQL 插入一条数据并返回主键 id的实例...

    Python 中貌似并没有直接返回插入数据 id 的操作(反正我是没找到),但是我们可以变通一下,找到最新插入的数据 #!/usr/bin/env python3 # -*- coding: UTF- ...

  5. 使用mybatis插入数据(insert)时返回主键的问题

    使用mybatis做插入操作时,想要获取新增记录的主键,我发现现在的方式和以前的方式有所区别,即以前是直接通过方法返回,现在是将主键设置在数据实体对象中. 下面对mybatis进行insert时返回主 ...

  6. oracle批量插入并且返回自增主键_mybatis + (oracle)实现主键自增 + 插入数据并返回主键...

    一.实现主键自增 在oracle数据库中,主键并没有办法自动增长,无法使用insert对应的useGeneratedKeys和keyProperty属性自动返回增加的主键. 要实现自增需要修改 ID列 ...

  7. mybatis添加记录时返回主键id

    参考:mybatis添加记录时返回主键id 场景 有些时候我们在添加记录成功后希望能直接获取到该记录的主键id值,而不需要再执行一次查询操作. 在使用mybatis作为ORM组件时,可以很方便地达到这 ...

  8. MYSQL插入数据后返回主键

    最近做项目,要求不能使用mybatis等框架,所以一切数据库访问操作都是用原生的JDBC. 用过mybatis的都知道,插入新数据后可以直接返回主键的值,但是使用JDBC不行,于是上网搜了一下,找到一 ...

  9. MyBatis在Oracle中插入数据并返回主键的问题解决

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 前言:我早期用过这个方法,但是返回的依旧是影响行数,不是主键. 只是这种写法可以达到我要的效果: 用 ...

最新文章

  1. python判断一个数是整数、浮点数还是字符串
  2. mysql驱动(github上的)
  3. java随机生成不重复的数组_Java生成不重复的随机数组的方法
  4. 数据结构实验之二叉树六:哈夫曼编码
  5. python 将os.getcwd()获取路径中的\替换成\\
  6. 浅谈Opencl四大模型之Platform model
  7. 计算机一级excel 试题及答案,计算机一级excel考试试题及答案
  8. 医疗器械软件质量体系等
  9. 小伙用C++搞定远程桌面监控系统,轻松拿下12家offer!
  10. 学习目录-自己动手写CPU
  11. maya2011安装方法图文详细教程及Unity下载
  12. dw超链接标签_使用Dreamweaver制作网页超链接的详细图文教程--系统之家
  13. 上班第一天(2)--一个程序员的成长史(11)
  14. 输入多个数,中间用空格隔开
  15. Mysql之三少一多原则
  16. mysql的连接配置时区语句
  17. 戴尔刀片服务器盘柜型号,戴尔PowerEdge 4220 42U 机架式盘柜
  18. kaldi部分训练方法DNN-HMM模型
  19. 知识点滴 - 动力定型
  20. 数字中国城市巡礼之南通,公安的“达摩克利斯之剑”

热门文章

  1. 一个超轻量级工作流引擎:Workflow-Core
  2. 从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用Application Part动态加载控制器和视图...
  3. 使用ASP.NET Core开发GraphQL服务器 -- 极简预备知识(上)
  4. .NET开发者如何使用MyCat
  5. 使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到Mono/Jexus
  6. crossphp框架中,在模板中加载其他模板
  7. C#数组原来这么简单,你学废了吗?
  8. ArcGIS实验教程——实验十一:影像拼接与提取
  9. 利用Excel VBA批量计算气象数据多个台站多年来春季和冬季降水量和平均气温
  10. CityEngine如何生成隧道