//JDBCUtils.getDataSource() 是返回数据库的链接对象private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());public void add(User user) {//1.定义sqlString strSql = "insert into user values(null,?,?,?,?,?,?,null,null)";//2.执行sql
//        int update = template.update(strSql, user.getName(), user.getGender(), user.getAge(), user.getAddress(), user.getQq(), user.getEmail());
//        System.out.println(update);try {java.sql.Connection con = template.getDataSource().getConnection();} catch (SQLException e) {e.printStackTrace();}KeyHolder key = new GeneratedKeyHolder();PreparedStatementCreator psc1=new PreparedStatementCreator(){@Overridepublic PreparedStatement createPreparedStatement(java.sql.Connection con) throws SQLException {int i = 0;//PreparedStatement ps = con.prepareStatement(strSql);PreparedStatement ps = con.prepareStatement(strSql,PreparedStatement.RETURN_GENERATED_KEYS);ps.setString(++i, user.getName());ps.setString(++i, user.getGender() );ps.setInt(++i,user.getAge() );ps.setString(++i, user.getAddress() );ps.setString(++i,user.getQq());ps.setString(++i,user.getEmail() );return ps;}};//这里是使用兰步德表达式 上面的是不使用的
//        PreparedStatementCreator psc = con -> {
//            int i=0;
//            PreparedStatement ps = con.prepareStatement(strSql,PreparedStatement.RETURN_GENERATED_KEYS);
//            ps.setString(++i, user.getName());
//            ps.setString(++i, user.getGender() );
//            ps.setInt(++i,user.getAge() );
//            ps.setString(++i, user.getAddress() );
//            ps.setString(++i,user.getQq());
//            ps.setString(++i,user.getEmail() );
//            return ps;
//        };template.update(psc1,key);int cf_id = key.getKey().intValue();System.out.println(cf_id);}下面是JDBCUtils ///
package cn.itcast.util;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;/*** JDBC工具类 使用Durid连接池*/
public class JDBCUtils {private static DataSource ds ;static {try {//1.加载配置文件Properties pro = new Properties();//使用ClassLoader加载配置文件,获取字节输入流InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");pro.load(is);//2.初始化连接池对象ds = DruidDataSourceFactory.createDataSource(pro);} catch (IOException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}/*** 获取连接池对象*/public static DataSource getDataSource(){return ds;}/*** 获取连接Connection对象*/public static Connection getConnection() throws SQLException {return  ds.getConnection();}
}

jdbctemplate 新增数据 返回主键id相关推荐

  1. sql新增数据返回主键

    sql新增数据返回主键 @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id&quo ...

  2. Mybatis新增返回主键ID

    在做项目的过程中有时候难免会运用到新增一条数据并获取到新增的这条数据的主键ID,这样的一个功能,新增一条订单数据,并返回新增订单的ID.这样做的前提是数据的ID必须为自增. 我是用ssm框架做的项目, ...

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

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

  4. mysql批量插入没有返回主键id

    在大批量新增数据的时候往往会采用批量插入来提高效率,但是经常遇到没有返回主键的情况. 一般会有以下几种可能: 1.升级Mybatis版本到3.3.1.官方在这个版本中加入了批量新增返回主键id的功能 ...

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

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

  6. MyBatis——insert并返回主键ID解决方案

    问题描述 添加记录后获取主键ID,这是一个很常见的需求,特别是在一次前端调用中需要插入多个表的场景. 除了添加单条记录时获取主键值,有时候可能需要获取批量添加记录时各记录的主键值. 问题分析 暂无. ...

  7. mybatis多表新增如何获取主键ID

    记录一下碰到的问题,就当做是笔记吧,防止忘记.在做ssm多表新增的时候,碰到了一个小问题,就是在新增成功一个表的时候我要获取它的ID,然后用它的ID新增下一个表. 但是,我要怎么做呢?新增成功,再查询 ...

  8. oracle 导入数据时主键丢失,Oracle 插入数据 返回主键

    场景:解决getJdbcTemplate往oracle数据库中插入数据返回主键出错有关问题 解决getJdbcTemplate往oracle数据库中插入数据返回主键出错问题 我们使用Spring中的J ...

  9. Mybatis执行插入语句后并返回主键ID

    我们知道JDBC可以实现插入语句后返回主键Id,那mybatis可以实现吗?答案是肯定的. 1.MySQL数据库设置ID自增情况 <insert id="insertUser" ...

最新文章

  1. 从 HTTP 到 HTTP/3 的发展简史
  2. 快速安装及部署DRBD
  3. wpf Command Binding
  4. 小小总结,写得有些乱
  5. quick time不可用是什么意思_fpga是什么意思(fpga怎么用)
  6. python爬虫之路scrapy
  7. 配置SQL Server AlwaysOn高可用性组
  8. 160508Junit使用
  9. 『神器』如何免费下载百度文库付费资料?
  10. android主题编辑器,安卓 EMUI主题编辑器 Theme Editor For EMUI v1.13.5 专业版
  11. Mybatis源码详细分析(最新最全)
  12. angular *ngFor
  13. ASR6601:国产M4内核LoRa SoC芯片替代SX1262/SX1278
  14. 八年级英语下册计算机教学总结,初中信息技术教学工作总结
  15. 多功能噪音消除器支持多种场景模式
  16. Java基础编程之分解质因数
  17. 核磁共振分析处理软件:Nucleomatica iNMR for Mac
  18. 计算机打印预览在哪,excel打印在哪里,EXCEL怎么退出成打印预览的画面
  19. ubuntu16.04下安装新版QQ
  20. C++编程 一个正整数的立方和

热门文章

  1. ROS入门-9.订阅者Subscriber的编程实现
  2. 观察者模式java类图_初探Java设计模式------观察者模式
  3. java web乱码问题_Java Web中文乱码问题解决
  4. Linux下autoconf与automake
  5. [Ext JS 4] Extjs 之 initComponent 和 constructor的区别
  6. JSP, C 写入文件添加BOM头实例
  7. 【切图】门户网首页模板一 (类似CSDN)
  8. ensp期末综合实验_时间表来了!洛阳中小学期末考试25日开始
  9. java可以做网页吗_如果我用java 只会做网页,那么我会不会被淘汰?
  10. 计算机三级之嵌入式系统学习笔记2