mysql 取最后一次登陆,获得最后一次插入mysql的id | 学步园

最近两天一直忙着通过数据库访问数据记录,然后做操作。以前我在数据库中插入记录后,就要去做别的操作,别的操作也是先访问存在数据库中的记录,然后完成操作。所以我通过记录的名字来访问记录的,原来想过通过id来访问数据库,但是当时不知道怎么来获得数据库的id,只有通过记录名来访问。但这样做还是有点问题,在英文环境下可以查询到正确的记录,但是在中文下,插入到数据库中的就会出现???乱码,万般无奈下,同事说,如果建表语句中的id是auto_increment的,就可以在插入数据库后就获得最后一次插入数据库的id,所以现在修改成了通过id来查询数据库记录,并完成其它的操作,不受中文的限制了。

现在说说具体的操作吧:

public static final String InsertScheduleSearchStr = "insert into scheduleSearch(scheduleSearchName,scheduleInfo,createTime,mailSendTo,scheduleDays,scheduleHours,scheduleMinutes) values(?,?,?,?,?,?,?)";

public static final String LastInsertId = "select last_insert_id() as scheduleSearchId from scheduleSearch limit 1";

stmt = (PreparedStatement) dbMgr.getStatement(InsertScheduleSearchStr);

if (stmt == null) stmt = con.prepareStatement(InsertScheduleSearchStr);

String scheduleSearchName = xmlScheduleSearch.getScheduleSearchName();

stmt.setString(index++,scheduleSearchName);

stmt.setBytes(index++, xmlScheduleSearch.getScheduleSearchBytes());

java.util.Date now = new java.util.Date();

stmt.setTimestamp(index++, new Timestamp(now.getTime()));

stmt.setString(index++,xmlScheduleSearch.getSendMailTo());

stmt.setInt(index++,xmlScheduleSearch.getScheduleDays());

stmt.setInt(index++,xmlScheduleSearch.getScheduleHours());

stmt.setInt(index++,xmlScheduleSearch.getScheduleMinutes());

stmt.executeUpdate();

dbMgr.saveStatement(InsertScheduleSearchStr, stmt);

stmt = (PreparedStatement) dbMgr.getStatement(LastInsertId);

if (stmt == null) stmt = con.prepareStatement(LastInsertId);

rs = stmt.executeQuery();

int scheduleSearchId = 0;

if (rs.next())

{

scheduleSearchId = rs.getInt(1);

}

主要的语句就是通过mysql中的mysql_insert_id() 完成取最后一次插入数据库的id

mysql_insert_id()用法

my_ulonglong mysql_insert_id(MYSQL *mysql)

返回由先前的查询为一个AUTO_INCREMENT列生成的ID。在你执行一个INSERT查询向一个包含AUTO_INCREMENT字段的表中插入后,使用这个函数。

注意,如果先前的查询不产生一个AUTO_INCREMENT值,mysql_insert_id()返回0。如果你需要在以后保存该值,必须在查询生成了该值后马上调用mysql_insert_id()。

也要注意,SQL的LAST_INSERT_ID()函数总是包含最近生成的AUTO_INCREMENT值,并且在查询之间不被重置,因为该函数的值在服务器端维护。

有先前的查询更新的AUTO_INCREMENT字段的值。如果在连接上没有先前的询问或如果查询没更新AUTO_INCREMENT值,返回零。

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

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

相关文章

Python + ElasticSearch:有了这个超级武器,你也可以报名参加诗词大会了! | 博文精选...

来源 | CSDN 博客作者 | 天元浪子责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)意犹未尽的诗词大会正月十六,中国诗词大会第五季落下帷幕。从2016年2月12日第一季于开播,迄今恰好四周年。在这个舞台上,时年…

Node.js 应用故障排查手册 —— 大纲与常规问题指标简介

楔子 你是否想要尝试进行 Node.js 应用开发但是又总听人说它不安全、稳定性差,想在公司推广扩张大前端的能力范畴和影响又说服不了技术领导。 JavaScript 发展到今天,早已脱离原本浏览器的战场,借助于 Node.js 的诞生将其触角伸到了服务端、P…

mybatis批量插入oracle大量数据记录性能问题解决

环境: mybatis oracle11g r2 1.使用"直接路径插入"(下面sql语句中的"/*append_values */"),并且使用关键字"union all": <insert id"addUidCodeBatch" parameterType"java.util.List"> insert into /*append_val…

蚂蚁金服CTO程立:做工程要有“拧螺丝”的精神

“一台机器可能有无数颗螺丝&#xff0c;需要一个一个地拧&#xff0c;而且需要一圈一圈地拧&#xff0c;才能让系统间严丝合缝&#xff0c;顺利工作。代码的世界里&#xff0c;一个项目到底成功与否&#xff0c;也是取决于几个模型的关键特殊设置&#xff0c;就像拧螺丝一样。…

php asciii 回车换行,ubuntu下关于telnet俩个特殊ascii字符回车0x0d与换行0x0a

服务器与telnet客户端通信当服务器仅返回输入内容时$connection->send($res)。Trying 127.0.0.1...Connected to 127.0.0.1.Escape character is ^].kkkk▌光标紧跟着服务器发送内容的后面。当服务器发送0x0a或0x0d0a或0x0a0d时&#xff0c;$connection->send($res.chr(0…

更效率、更优雅 | 阿里巴巴开发者工具不完全盘点

从人工到自动化&#xff0c;从重复到创新&#xff0c;技术演进的历程中&#xff0c;伴随着开发者工具类产品的发展。 阿里巴巴将自身在各类业务场景下的技术积淀&#xff0c;通过开源、云上实现或工具等形式对外开放&#xff0c;本文将精选了一些阿里巴巴的开发者工具&#xf…

linux 环境安装DBI和DBD_03

文章目录一、软件下载二、安装DBI2.1. DBI下载2.2. 解压2.3. 安装依赖2.4. 编译2.5. 执行测试2.6. 安装2.6. 修改权限三、安装DBD-ORACLE组件3.1. DBI下载3.2. 修改权限3.3. 切换用户3.4. 解压3.5. 进入目录3.6. 初始化环境变量3.6. 查看配置的环境变量是否配置3.7. 刷新配置文…

php+反序列化方法,PHP序列化反序列化的方法详解

在一些开源的php源代码中&#xff0c;我们经常看到一些配置文件里面存放的是一些类似带有格式的变量名称和值。刚开始还不明白这个是怎么回事儿。后来才知道这个是为了将一个复杂(也可能并不那么复杂)的数据结构转换成一个字符串&#xff0c;以便于保存和传递。其实就是一个序列…

像数据科学家一样思考:12步指南(上)

介绍 目前&#xff0c;数据科学家正在受到很多关注&#xff0c;因此&#xff0c;有关数据科学的书籍正在激增。我看过很多关于数据科学的书籍&#xff0c;在我看来他们中的大多数更关注工具和技术&#xff0c;而不是数据科学中细微问题的解决。直到我遇到Brian Godsey的“像数…

Mybatis-plus 大数据量数据流式查询通用接口

文章目录一、案例需求二、使用案例&#xff1a;2.1. 自定义查询接口2.2. 逻辑处理类2.3. 调用案例2.4. 具体逻辑处理案例三、企业案例3.1. key名称获取3.2. 逻辑类测试3.3.最后一个批次处理方案四、 通用SQL预编译处理4.1. 业务场景4.2. xml形式4.3. 注解形式五、企业案例5.1. …

基于MaxCompute的数仓数据质量管理

声明 本文中介绍的非功能性规范均为建议性规范&#xff0c;产品功能无强制&#xff0c;仅供指导。 参考文献 《大数据之路——阿里巴巴大数据实践》——阿里巴巴数据技术及产品部 著。 背景及目的 数据对一个企业来说已经是一项重要的资产&#xff0c;既然是资产&#xff…

php封隔器座封原理,封隔器的基本结构及工作原理

要做到单井的分采分注&#xff0c;首先必须有一种井下工具将各油层分开。封隔器就是下人套管内&#xff0c;利用其弹性密封元件的变形来封隔油、气、水层的一种最重要的井下工具。封隔器接在油管柱的适当部位或下部&#xff0c;这种带封隔器和其他井下工具的油管柱叫做井下工艺…

IP应用加速 – DCDN迈入全栈新篇章

4月11日&#xff0c;第七届"亚太内容分发大会"暨CDN峰会国际论坛中&#xff0c;阿里云资深技术专家姚伟斌发布了DCDN子产品IP应用加速&#xff08;IPA&#xff09;。IPA是基于阿里云CDN本身的资源优化&#xff0c;对传输层&#xff08;TCP&UDP&#xff09;协议进…

linux环境 Oracle客户端连接远程Oracle服务端

前提&#xff1a;su - oracle #格式: sqlplus 用户名/密码ip地址:端口 sqlplus system/123456192.168.0.128:1521 #格式2: sqlplus 用户名/密码ip地址:端口/SID sqlplus system/123456192.168.0.128:1521/orcl

十年磨一剑,王坚自研的MaxCompute如何解决世界级算力难题

大数据时代&#xff0c;随着企业数据规模的急剧增长&#xff0c;传统软件已无法承载&#xff0c;这也推动了大数据技术的发展&#xff0c;Google、AWS、微软等硅谷巨头纷纷投入大数据技术的研发&#xff1b;而在国内&#xff0c;王坚也在十年前带领阿里云团队研发MaxCompute&am…

matlab和robotstudio,MATLAB与Robotstudio建立socket通信(初探)

前记:听一首《不想病》&#xff0c;歌词唱开头&#xff1a;做什么都不对&#xff0c;说什么都浪费&#xff0c;想什么我都可悲....&#xff1b;感觉就是不一样&#xff0c;好歌&#xff01;哎&#xff0c;&#xff0c;&#xff0c;回到正题。好多事要去做&#xff0c;还得挤时间…

贾扬清:我对人工智能方向的一点浅见

阿里妹导读&#xff1a;作为 AI 大神&#xff0c;贾扬清让人印象深刻的可能是他写的AI框架Caffe &#xff0c;那已经是六年前的事了。经过多年的沉淀&#xff0c;成为“阿里新人”的他&#xff0c;对人工智能又有何看法&#xff1f;最近&#xff0c;贾扬清在阿里内部分享了他的…

Node.js 应用故障排查手册 —— 类死循环导致进程阻塞

类死循环导致进程阻塞 楔子 在实践篇一中我们看到了两个表象都是和 CPU 相关的生产问题&#xff0c;它们基本也是我们在线上可能遇到的这一类问题的典型案例&#xff0c;而实际上这两个案例也存在一个共同点&#xff1a;我们可以通过 Node.js 性能平台 导出进程对应的 CPU Pro…

如何使用5个Python库管理大数据?

来源 | medium编译 | 武明利责编 | Carol出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;如今&#xff0c;Python真是无处不在。尽管许多看门人争辩说&#xff0c;如果他们不使用比Python更难的语言编写代码&#xff0c;那么一个人是否真是软件开发人员&…

php findbysql,hibernate的findByExample

用了这么长时间的hibernate/spring&#xff0c;如果不是今天用的findByExample方法到现在还不知道findByExample的机制。惭愧Class User{String username;String password "默认口令";Company company;getter()&setter().....}Company company companyDao.getB…