如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
餐饮系统之订单数据库代码获取自动生成主键插入一条记录后想要立刻获取其数据表中的主键返回值。这个主键是自动生成的。比如:系统中有一张订单表:/********************订单信息表********************/CREATETABLEOrderInfo(orderIDintIDENTITY(1,1)primarykey,--订单编号customerNamenvarchar(20)NOTNULL,--客户名称addressnvarchar(100)NOTNULL,--送货地址zipCodenvarchar(20)NOTNULL,--邮编telephonenvarchar(30)NOTNULL,--联系电话movePhonenvarchar(30),--移动电话noticetextNULL,--备注totalPricenumeric(18,0)NOTNULL--订单总金额)一张订单项目表:/*************************************订单项目表**************************************/CREATETABLEOrderItem(orderIDintreferencesOrderInfo(orderID),--订单编号bookIDvarchar(20)notnull,--所订购的书籍编号quantityintnotnull,--订购的数量finalPricenumeric(18,0),--书籍打折后的价格primarykey(orderID,bookID)--订单项目表使用联合主键)我们要保存一张订单,首先需要在OrderInfo表中插入一条记录,生成定单,然后将这张订单中的商品插入到订单项目表中,此时就需要在插入orderInfo表中数据的同时,获取自动生成的订单编号即(OrderID)。JDBC3.0中java.sql.Statement接口中定义了ResultSetgetGeneratedKeys()throwsSQLException方法,该方法检索由于执行此Statement对象而创建的所有自动生成的键。如果此Statement对象没有生成任何键,则返回空的ResultSet对象。SQLServer2005的驱动程序(sqljdbc.jar)实现了这个方法,而SQLServer2000的驱动程序(3个jar包)没有实现这个方法。MySql的驱动程序也实现了这个方法。具体使用方法如下:打开数据库连接:publicstaticConnectiongetConnection(){StringdriverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver";Stringurl="jdbc:sqlserver://localhost:1433;databaseName=test";Stringuser="sa";Stringpassword="";try{Class.forName(driverClass);returnDriverManager.getConnection(url,user,password);}catch(ClassNotFoundExceptione){e.printStackTrace();}catch(SQLExceptione){e.printStackTrace();}returnnull;}保存订单项目方法:/****@paramconn*@paramorderID:订单编号*@parambookID:订购的书籍的编号*@paramquantity:订购数量*@paramfinalPrice:打折后的价格*@throwsSQLException*/publicstaticvoidsaveOrderItem(Connectionconn,intorderID,intbookID,intquantity,doublefinalPrice)throwsSQLException{StringstrSql="insertintoOrderItemvalues(?,?,?,?)";PreparedStatementpstat=conn.prepareStatement(strSql);pstat.setInt(1,orderID);psta