zoukankan      html  css  js  c++  java
  • JDBC获取表的主键

    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();
                    }
                
            }
            
        }
        
  • 相关阅读:
    不透明度
    浮动塌陷
    滑动门技术
    文本替换
    清除浮动
    浮动
    定位概述
    IE6中使用通用选择器模拟子选择器效果
    js对象
    bzoj:2049: [Sdoi2008]Cave 洞穴勘测
  • 原文地址:https://www.cnblogs.com/fengdashen/p/5077015.html
Copyright © 2011-2022 走看看