我现在用的 dao 模式有两张表  一张是 卡号表,另一张是订购表
我需要实现的功能是在订购的同时,也就是往订购表里面插入数据的时候,从卡表里面读取卡号然后和订购表一起往里面插入数据!这个功能我实现不了啊! 不知道怎么能从卡表里面读取出来,然后再插入另一张表里去??
哪位高手能帮帮我啊 !! 
   十分火急
代码如下:
  dao:
       /**
 * 从卡库中查询所有的卡号
 * @return
 * @throws DaoException
 */
List<Tcard> getListTcard()throws DaoException;  
   dao 操作的实现类:
        //查询卡表中的卡号!
public List<Tcard> getListTcard() throws DaoException { QueryRunner qr = new QueryRunner(); List<Tcard> list = new ArrayList<Tcard>();
Connection conn = ConnectionFactory.getConnection();
String sql = "select * from t_card where status = 1";
try {
list = qr.query(conn, sql, new BeanListHandler<Tcard>(Tcard.class));
} catch (SQLException e) {
e.printStackTrace();
throw new DaoException("查询所有部门列表时异常", e);
}
return list;
}        //往订单表里面插入数据      QueryRunner qr = new QueryRunner();
Connection conn = ConnectionFactory.getConnection(); boolean validorderid = true;
int n = 0;
while (!validorderid) {
n++;
if (n > 20)
break;
String oid = car.MakeOrderID();
String SqlStr = "select * from t_cardorder where oid='" + oid + "'"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(SqlStr);
if (!rs.next())
validorderid = true;
}
String sql = "insert into t_cardorder  (cardid,oid,productid,ppackage,dname,dphone,daddress,dtime,edid,tname,tphone,taddress,ttime,status)values('"
+ (r.nextInt()) + "','" + temp + "',?,?,?,?,?,?,?,?,?,?,?,1)"; Object[] params = { tcardor.getProductid(), tcardor.getPpackage(),
tcardor.getDname(), tcardor.getDphone(), tcardor.getDaddress(),
tcardor.getDtime(), tcardor.getEdid(), tcardor.getTname(),
tcardor.getTphone(), tcardor.getTaddress(), tcardor.getTtime() };
try {
qr.update(conn, sql, params);
} catch (SQLException e) {
throw new DaoException("新增时出现异常", e);
}          r.nextInt()) 我现在用的是随机数! 其实是往里面插入从卡表里面读取出来的卡号!

解决方案 »

  1.   

    你的订购表没有实体类么?直接把卡号查出来,赋值给给订购表里的卡号属性不就可以了么?你这个数据库感觉好有问题啊,首先,卡号表至少应该有俩字段吧(用户和卡号),订购表(至少有卡号,用户)别的不说了,用户订购的时候,你得根据用户查到他的卡号吧(不知道你这里卡号是否是会员卡一类的东西)?,查到卡号后,直接赋值给订购表里的卡号,然后再执行insert不就行了么?而且这里也不涉及事物,没有需要回滚之类的东西存在!如果你的卡号是别的用途,希望能说明白一些
      

  2.   

    什么叫不知道怎么实现,插入数据直接插就可以了啊,根据你的标识符进行查询,然后insert难道不行吗?