mybatis新增返回主键值

  1. mapper
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="cn.bitqian.dao.OrdersMapper"><insert id="insertOrders" parameterType="cn.bitqian.entity.Orders" ><!-- 返回新增后的主键值 --><selectKey keyProperty="orderId" resultType="java.lang.Integer" keyColumn="order_id" order="AFTER">SELECT LAST_INSERT_ID()</selectKey>insert into orders values (null, #{orderTime}, #{orderMoney}, #{uid})</insert></mapper>
  1. entity
package cn.bitqian.entity;import java.util.Date;/*** @author echo lovely* @date 2020年11月11日 上午11:30:40*/public class Orders {private Integer orderId;private Date orderTime;private double orderMoney;private int uid;// setter/getter/toString	
}	
  1. dao接口
package cn.bitqian.dao;import cn.bitqian.entity.Orders;/*** 新增orders*/
public interface OrdersMapper {int insertOrders(Orders orders);}
  1. test
   @Testpublic void test2() {SqlSession sqlSession = null;try {// 加载mybatis核心配置文件InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");// 获得session工厂SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 通过session工厂获得sessionsqlSession = sqlSessionFactory.openSession(true);Orders orders = new Orders();orders.setOrderMoney(22);orders.setOrderTime(new Date());orders.setUid(1);OrdersMapper ordersMapper = sqlSession.getMapper(OrdersMapper.class);int count = ordersMapper.insertOrders(orders);System.out.println("受影响行数: " + count);// 主键值会自动装在对象里面System.out.println("新增数据后的主键值:" + orders.getOrderId());} catch (Exception e) {System.out.println(e);} finally {if (sqlSession != null) {sqlSession.close();}}}


  1. Oracle/sqlserver
    insert结点里面套
<!-- oracle  -->
<selectKey resultType="java.lang.Integer" keyProperty="id" order="BEFORE">SELECT 序列名.nextval from dual
</selectKey>
<!-- sql server -->
<selectKey resultType="java.lang.Integer" keyProperty="id" order="AFTER">SELECT @@identity
</selectKey>

mysql

<selectKey keyProperty="orderId" resultType="java.lang.Integer" keyColumn="order_id" order="AFTER">SELECT LAST_INSERT_ID()
</selectKey>

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

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

相关文章

hdu4011(水贪心)

点击打开链接hdu4011 水贪心&#xff1a; 注意I64d&#xff01; #include <stdio.h> #include <string.h> #include <iostream> #include <math.h> #include <algorithm> #include <vector> #include <map> #include <queue> …

测试===JUnit单元测试

测试一&#xff0c;测试分类二&#xff0c;单元测试Junit&#xff0c;你以为的junit只是Test注解吗&#xff0c;shallow..优点&#xff1a;规范&#xff1a;断言&#xff1a;案例demo&#xff1a;junit test case测试类创建&#xff0c;执行测试&#xff0c;结果反馈junit test…

iOS IAP教程

1. 创建应用首先进入iTunes Connect然后按下 Manage Your Applications接下来按下Add New Applicationbutton创建应用2. 在应用中创建IAP创建应用之后&#xff0c;在Manage Your Applications中点应用的图示&#xff0c;进入应用就会看到上图画面点击Manage In App Purchases就…

mybatis plus 新增,修改

simple curd1. mybatis-plus2. 以用户表为例&#xff0c;德莫1. mybatis-plus mybatis的升级版&#xff0c;curd的奇淫技巧。 MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、…

Linux中fork的秘密

linux中fork&#xff08;&#xff09;函数详解 一、fork入门知识 一个进程&#xff0c;包括代码、数据和分配给进程的资源。fork&#xff08;&#xff09;函数通过系统调用创建一个与原来进程几乎完全相同的进程&#xff0c;也就是两个进程可以做完全相同的事&#xff0c;但如果…

mybatis-plus 使用乐观锁修改

title乐观锁与悲观锁解决方案code测试乐观锁与悲观锁 乐观锁&#xff1a;十分乐观&#xff0c;总是认为不会出现问题&#xff0c;无论干什么&#xff0c;都不会去上锁。如果出现了问题&#xff0c;就再次更新值测试。 悲观锁&#xff1a;十分悲观&#xff0c;认为总是出现问题…

EasyUI 在aspx页面显示高度不正常解决办法

<body class"easyui-layout"><form id"form1" runat"server"><table id"dg" class"easyui-datagrid"></table></form> </body> </html>这样写的时候&#xff0c;datagrid显示就不…

WPF中的动画——(四)缓动函数

缓动函数可以通过一系列公式模拟一些物理效果&#xff0c;如实地弹跳或其行为如同在弹簧上一样。它们一般应用在From/To/By动画上&#xff0c;可以使得其动画更加平滑。 var widthAnimation new DoubleAnimation() { From 0, To 320, Duration Tim…

mybatis-plus 查询,删除

title查询 单值&#xff0c;多个主键&#xff0c;条件分页查询物理删除&#xff0c;逻辑删除mybatis-plus 新增&#xff0c;修改查询 单值&#xff0c;多个主键&#xff0c;条件 Testvoid queryOne() {// 查询单个userUser user userMapper.selectById(1);System.out.println(…

C#获取txt记事本内容,防止乱码情况

StreamReader sr new StreamReader("E:\人名.txt", Encoding.GetEncoding("GB2312"));string readText sr.ReadToEnd(); 转载于:https://www.cnblogs.com/blog4xy/p/4059363.html

mybatis高级查询,批量新增

reviewsql脚本实体类sql watch outmappermapper test之前的比较分散&#xff0c;自己用。。。sql脚本 -- auto-generated definition create table stu_info (stu_id int auto_incrementprimary key,stu_name varchar(255) null,stu_age int(255) null,stu_gende…

Java对存储过程的调用方法

本文将介绍Java怎样实现对存数过程的调用方法&#xff0c;作者用了几个样例进行了具体的说明&#xff0c;简单明了&#xff0c;很适合刚開始学习的人。 一、Java怎样实现对存储过程的调用&#xff1a; A&#xff1a;不带输出參数的 create procedure getsum n int 0<--此处…

mybatis-plus 代码生成器

生成entity -> mapper-> service ->controller所有的接口&#xff0c;实现&#xff0c;一键完成。 1. 轮子 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope>…

电脑报错找不到msvcr100.dll,无法继续执行代码如何修复

在电脑使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是MSVCR100.dll丢失。那么&#xff0c;MSVCR100.dll到底是什么&#xff1f;它的作用是什么&#xff1f;为什么会丢失呢&#xff1f;本文将详细介绍MSVCR100.dll的定义、作用以及丢失的原因&#…