会员中心 收藏动态消息创作SELECT LAST_INSERT_ID() 的使用和注意事项
转载请注明出处:
http://blog.csdn.net/czd3355/article/details/71302441
首先我先解释以下在在映射文件中的代码是什么意思。
<insert id="insertStudent" parameterType="com.czd.mybatis01.bean.Student">
INSERT stu(name)VALUES (#{name})
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
</insert>
总体解释:将插入数据的主键返回到 user 对象中。
具体解释:
SELECT LAST_INSERT_ID():得到刚 insert 进去记录的主键值,只适用与自增主键
keyProperty:将查询到主键值设置到 parameterType 指定的对象的那个属性
order:SELECT LAST_INSERT_ID() 执行顺序,相对于 insert 语句来说它的执行顺序
resultType:指定 SELECTLAST_INSERT_ID() 的结果类型
明白是什么意思后,那么我们要如何才能得到插入数据的主键呢?请看下面代码就知道了
关键代码:
@Test
public void main() throws Exception {
StudentDao studentDao = new StudentDao();
// 增加
Student student = new Student();
student.setName("b");
studentDao.testInsertStudent(student);
}
public void testInsertStudent(Student student) throws Exception {
SqlSession sqlSession = getSession().openSession();
sqlSession.insert(nameSpace + ".insertStudent", student);
sqlSession.commit();
sqlSession.close();
// 得到插入数据的主键并将其打印出来
System.out.println("index: "+student.getId());
}
打印结果:
其中 index:21 就是我们想要的 id 值了
看到这里不知道有没有读者觉得这不是废话吗?student.getId() 后肯定是得到新插入数据的 id 呀。ok,那么我们来验证一下,把上面映射文件中的这段代码删掉。
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
打印结果:
从图中我们可以发现程序没有执行 SELECT LAST_INSERT_ID()语句了,并且 index 的值变成了 null,也就是得不到新插入数据的 id 了
到此为止,相信你应该知道怎么使用 SELECT LAST_INSERT_ID() 了吧。
注意点:假如你使用一条INSERT语句插入多个行, LAST_INSERT_ID() 只会返回插入的第一行数据时产生的值。比如我插入了 3 条数据,它们的 id 分别是 21,22,23.那么最后我还是只会得到 21 这个值。
会员中心 收藏动态消息创作SELECT LAST_INSERT_ID() 的使用和注意事项相关推荐
- SELECT LAST_INSERT_ID() 的使用和注意事项
尊重个人劳动成果,转载请注明出处: http://blog.csdn.net/czd3355/article/details/71302441 首先我先解释以下在在映射文件中的代码是什么意思. < ...
- php会员模版,会员中心模板
默认会员中心模板文件结构 ├─member 会员中心 │ footer.php 脚部 │ header.php 头部 │ sidebar.php 默认边栏 │ sidebar_content.php ...
- php会员中心模板,会员中心模板
会员中心模板文件结构: │ ├─archive │ add_archive.php │ add_archive_article.php │ add_archive_thematic.php │ cho ...
- emlog独立会员中心模板源码 UserEmlog Ver:1.0
介绍: 这UserEmlog去年作者已经在开始弄了,但是种种原因被迫停止了项目,期初还有人叫作者开源个免费版的,之前是不打算开源的,但是现在由于现在emlog这,我还是开源了吧.目前只实现了一些基础功 ...
- 帝国cms 会员中心2.0
<?php if(!defined('InEmpireCMS')) {exit(); } ?> <?php $public_diyr['pagetitle']='会员中心'; $ur ...
- 帝国cms会员中心1.2
<?php if(!defined('InEmpireCMS')) {exit(); } ?> <?php $public_diyr['pagetitle']='会员中心'; $ur ...
- 手机版会员中心html,会员中心.html
会员中心 $axure.utils.getTransparentGifPath = function() { return 'resources/images/transparent.gif'; ...
- 小刀娱乐网:dedecms 会员中心调用会员最后登录时间 和上次登录ip
在会员中心的任意模板中可以调用以下自定义函数 <?php echo login_time_ip($cfg_ml->M_ID);?> 将以下函数放到include/extend.fun ...
- js 动态加载select触发事件
动态加载select后,手动调用一下 subjectChange函数,模拟触发change事件 function hallidChange(value) {$.ajax({type: "po ...
最新文章
- 解析深度学习:卷积神经网络原理与视觉实践
- 为EditText输入框加上提示信息
- 通过一道面试题来看 C++ 语言中的表达式求值
- hashmap扩容 面试_HashMap面试,看完这一篇就够了(上)
- [WPS笔试题]实现栈的push,pop,max且时间复杂度为O(1)
- 中国联通4G携号转网业务支撑的架构实践
- 让IT不加班,让业务不等待,一文讲透自助式分析的前世今生
- Java的重写equals但不重写hashCode方法的影响
- 向模块化进军,创建类
- python 逻辑回归 复杂抽样_如何用Python进行抽样?
- 如何在整个数据库中查寻一条数据?
- 利用计算机对调查问卷进行,关于电脑需求调查问卷
- css transition opacity,CSS transition属性
- 会计信息质量可靠性的案例_会计信息可靠性的分析
- 【微信小程序】一文带你吃透开发中的常用组件
- 条形码宽度大小为什么不能任意调整?是打印机问题还是软件问题?
- Android TTS语音播报实践
- Scratch 飞机对战
- [GO]学习新语言之卡塔练习--猜数字
- Linux下的启动oracle服务 启动监听 开放端口操作
热门文章
- [leetcode] 746.使用最小花费爬楼梯
- 为什么不要使用长事务
- python批量读取csv并写入_Python如何批量读取CSV文件中指定信息并写入doc文件命名中?...
- chrome 70 android,Android版Chrome Beta 70 (70.0.3538.17) 已发布
- sellhis股票平面图
- JFreeChart设置背景图片 .
- redhat 添加ssh端口_RHEL 7修改ssh默认端口号
- mysql8.0.15远程登陆权限,MySQL8.0给root用户赋予远程连接权限
- python函数参数定义顺序_Python函数定义-位置参数-返回值
- php-fpm 无法运行cli,linux-怎样让php在cli与fpm环境下运行时加载不同的扩展?