博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDBC获取表的主键
阅读量:5138 次
发布时间:2019-06-13

本文共 2225 字,大约阅读时间需要 7 分钟。

JDBC获取表的主键

案例,创建订单,并根据订单号向订单明细表插入数据

sql语句:

创建两表

create table orders(

  id number(4) primary key,
  customer varchar2(20) not null,
  orderdate date default sysdate
);

create table orderDetails(
  id number(4) primary key,
  order_id number(4),
  product varchar2(50) not null,
  count number(4) not null,
  unitprice number(7,2)
);

这里核心是要使得订单的主键id = order_id

 

public void OrderInsert(){        Connection conn = null;        PreparedStatement pstmt = null;        ResultSet rs = null;                try {                        conn = DBUtils.getConnection();            //事务开始            conn.setAutoCommit(false);            //业务逻辑            //插入订单表,谁,什么时间            //插入订单明细表,上一步生产的订单号            //插入商品明细,商品单价            pstmt = conn.prepareStatement(INSERT_ORDER,                                          new String[]{"id"});//获取主键名称                        pstmt.setString(1, "威震天");            pstmt.setTimestamp(2,new java.sql.Timestamp(System.currentTimeMillis()));            pstmt.executeUpdate();            //获取ID值            rs= pstmt.getGeneratedKeys();            int orderId =0 ;            if(rs.next()){                orderId = rs.getInt(1);            }            System.out.println("order id:"+orderId);                        //事物2:            pstmt = conn.prepareStatement(INSERT_DETIAL);            pstmt.setInt(1, orderId);            pstmt.setString(2, "Cube");            pstmt.setInt(3, 10);            pstmt.setDouble(4, 5000);            pstmt.executeUpdate();            System.out.println("订单明细已插入");                                                conn.commit();                    } catch (Exception e) {            try {                conn.rollback();            } catch (SQLException sqkex) {                // TODO Auto-generated catch block                sqkex.printStackTrace();            }            e.printStackTrace();                    }finally {            try {                conn.setAutoCommit(true);                if(conn !=null)  conn.close();                } catch (SQLException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }                    }            }

 

转载于:https://www.cnblogs.com/fengdashen/p/5077015.html

你可能感兴趣的文章
kubernetes_book
查看>>
Redis 常用数据结构命令
查看>>
软件工程课堂作业
查看>>
OpenFire 的安装和配置
查看>>
web.config详解
查看>>
ZJOI2018游记Round1
查看>>
侧边栏广告和回到顶部
查看>>
https://blog.csdn.net/u012106306/article/details/80760744
查看>>
【转】从头到尾彻底理解KMP
查看>>
ios应用版本号设置规则
查看>>
海上孤独的帆
查看>>
error: more than one device and emulator 问题解决
查看>>
Java基础:容器
查看>>
YUV摘要格式
查看>>
【方法2】删除Map中Value反复的记录,而且仅仅保留Key最小的那条记录
查看>>
C# CheckedListBox控件的使用方法
查看>>
【HDOJ】2007平方和与立方和
查看>>
js中const,var,let区别
查看>>
NFS和DHCP
查看>>
版本号的比较
查看>>