这几天在做一个网上预订系统。刚开始做。现在基本实现了信息,房型信息的显示。用户注册登录也实现了。
    现在说明一下这次问题涉及的表:
    用户表:
    userid int 否 用户编号(主键)
    username varchar(20) 否 用户名
    password varchar(20) 否 密码(最少6位)
    realname varchar(20) 否 真实姓名
    sex         varchar(20) 否 性别
    phonenumber varchar(11) 否 手机号码(11位)
    订单表:
    orderid      int 否 编号(主键)
    roomid      int 否 外键
    userid      int 否 外键
    ordertime      varchar 否 预订日期
    orderroomnumber int 否 预订房间数(不多于3间)
    orderpeoplenumber int 否 入住人数
    starttime     varchar 否 入住时间
    endtime     varchar 否 离店时间
    numbernights int 否 入住天数
    ordertotalprice int 否 住宿总消费
    房型表:
    roomid int 否 编号(主键)
    hotelid int 否 外键
    roomname varchar(20) 否 房间类型
    roomprice int 否 房间价格
    roomnumber int 否 房间数
    酒店表:
    hotelid int 否 编号(主键)
    areaid int 否 外键
    hotelname varchar(20) 否 酒店名称
    hoteltype int 否 酒店星级(1:一星级,2:二星级,3:三星级,依此类推)
   hoteladdress varchar 否 酒店地址
   hotelcontact varchar(20) 否 酒店联系方式
    一些表的其他属性没有写。当然还有一些表没有写:省份表,城市表,区级表;   现在遇到了困难。就是酒店预订功能,还有生成订单,以及订单的显示上的问题:
   1)我知道预订功能通过查找到房型以后,填写相应的信息,点击预订按钮,然后执行Action将该订单插入到订单表,因为在查找以后,很容易得到roomid,但是怎么获得当前的已登录用户的userid?;假如订单成功插入到订单表以后,相应的,就要在房型表中进行数据更新,减少房间数量。我不知道具体的java代码要怎么样写才行?
   2)在编写的过程中,我已经在数据库的订单表中插入了几天信息。显示订单是在用户登录以后显示对应userid的订单信息。同样的,我还是不知道怎么样获取当前已登录用户的userid?
    因为我是新手。不知道该怎么弄了。呜呜呜。。求帮忙啊。
    我把这两个问题部分涉及到的java文件,struts配置,jsp页面放上来:
    ReservationAction.javapublic class ReservationAction extends ActionSupport {
protected TOrder order;
protected TRoom room;
protected IOrderService orderService;
protected IHotelDAO hotelDAO;

private Integer userid;
private Integer roomid;

public Integer getUserid(){
return userid;
}
public void setUserid(Integer userid){
this.userid=userid;
}
public Integer getRoomid(){
return roomid;
}
public void setRoomid(Integer roomid){
this.roomid=roomid;
}

public IHotelDAO getHotelDAO(){
return hotelDAO;
}
public void setHotelDAO(IHotelDAO hotelDAO){
this.hotelDAO=hotelDAO;
}
public TOrder getOrder(){
return order;
}
public void setOrder(TOrder order){
this.order=order;
}
public TRoom getRoom(){
return room;
}
public void setRoom(TRoom room){
this.room=room;
}
public IOrderService getOrderService(){
return orderService;
}
public void setOrderService(IOrderService orderService){
this.orderService=orderService;
}
//预订操作,添加至订单,然后对TRoom表中的房间数量进行更新
public String saveOrder() throws Exception{
//计算总价
int price=order.getTRoom().getRoomprice(); //每间间房价
int roomnumber=order.getOrderroomnumber(); //房间预订数量
int nights=order.getNumbernights();        //入住天数
int total=price*roomnumber*nights;         //总共消费
TOrder order1=new TOrder();
try{
System.out.println(order.getTUser().getUserid());
//保存至订单
order1.setTRoom(order.getTRoom());
order1.setTUser(order.getTUser());
order1.setOrdertime(order.getOrdertime());
order1.setOrderroomnumber(roomnumber);
order1.setOrderpeoplenumber(order.getOrderpeoplenumber());
order1.setStarttime(order.getStarttime());
order1.setEndtime(order.getEndtime());
order1.setNumbernights(nights);
order1.setOrdertotalprice(total);
order1.setOrder(0);
}catch(Exception ex){
System.out.println("Action中的saveOrder");
ex.printStackTrace();
}
//在HotelDAO中完成更新,并检验是否有效;
boolean checkroom=hotelDAO.modifyRoom(roomnumber, room);
boolean checksaveorder=orderService.saveOrder(order1);
boolean isSuccess=checkroom&&checksaveorder;
if(isSuccess){
return SUCCESS;
}
else{
return ERROR;
}
}

//显示历史订单
public String showHistoryOrder() throws Exception{
try{
List order=orderService.showHistoryOrder(userid);
Map request=(Map)ActionContext.getContext().get("request");
request.put("order",order);
}catch(Exception ex){
ex.printStackTrace();
}
return SUCCESS;
}
//显示当前订单
public String showCurrentOrder() throws Exception{
try{
List order=orderService.showCurrentOrder(userid);
Map request=(Map)ActionContext.getContext().get("request");
request.put("order",order);
request.put("userid", userid);

}catch(Exception ex){
ex.printStackTrace();
}
return SUCCESS;
}
}      OrderDAO.javapublic class OrderDAO extends BaseDAO implements IOrderDAO {
//预订添加至订单
public boolean saveOrder(TOrder order){
try{
Session session=getSession();
        //将user对象保存到数据库中
Transaction tx=session.beginTransaction();
session.save(order);
tx.commit();
session.close();
}catch(Exception ex){
System.out.println("Order中的saveOrder\n");
ex.printStackTrace();
}
return true;
}

//显示历史订单
public List showHistoryOrder(Integer userid){
Session session=getSession();
        Query query=session.createQuery("from TOrder o where o.order not in (0) and o.TUser.userid=?");
        query.setParameter(0, userid);
        List order=query.list();
        session.close();
        return order;
}
//显示当前订单
public List showCurrentOrder(Integer userid){
Session session=getSession();
        Query query=session.createQuery("from TOrder o where o.order=0 and o.TUser.userid=?");
        query.setParameter(0, userid);
        List order=query.list();
        session.close();
        return order;
}
}      OrderService.javapublic class OrderService implements IOrderService {
private IOrderDAO orderDAO;

public IOrderDAO getOrderDAO(){
return orderDAO;
}
public void setOrderDAO(IOrderDAO orderDAO){
this.orderDAO=orderDAO;
}

//预订添加至订单
public boolean saveOrder(TOrder order){
this.orderDAO.saveOrder(order);
return true;
}

//显示历史订单
public List showHistoryOrder(Integer userid){
return orderDAO.showHistoryOrder(userid);
}
//显示当前订单
public List showCurrentOrder(Integer userid){
return orderDAO.showCurrentOrder(userid);
}
}
       <!-- 添加至订单 -->
       <action name="saveOrder" class="ReservationAction" method="saveOrder">
          <result name="success">/usercenter.jsp</result>
       </action>
       <!-- 显示历史订单 -->
       <action name="showHistoryOrder" class="ReservationAction" method="showHistoryOrder">
          <result name="success">/userorderinfo.jsp</result>
       </action>
       <!-- 显示当前订单 -->
       <action name="showCurrentOrder" class="ReservationAction" method="showCurrentOrder">
          <result name="success">/userorderinfo.jsp</result>
       </action>      userlogin.jsp
    <form action="login.action" method="post" name="login">
          用户名:<input type="text" name="user.username" /><br>
   密码:<input type="password" name="user.password" /><br>
    <input type="submit" value="登录"><br>
    </form>
      usercenter.jsp
        <table style="border: 1px solid #35719E" width="100px" align="left">
            <tr>
                <td><a href="showCurrentOrder.action?userid=1">当前订单</a></td>
            </tr>
            <tr>
                <td><a href="showHistoryOrder.action?userid=1">历史订单</a></td>
            </tr>
            <tr>
                <td><a href="">我的资料</a></td>
            </tr>
            <tr>
                <td><a href="">修改密码</a></td>
            </tr>
            <tr>
                <td><a href="">酒店评价</a></td>
            </tr>
</table>
      userorderinfo.jsp
        <table style="border: 1px solid #35719E" width="800px" align="center">
            <thead>
                <tr>
                    <td>预订号</td>
                    <td>预订时间</td>
                    <td>预订酒店</td>
                    <td>房间类型</td>
                    <td>间数</td>
                    <td>入住人数</td>
                    <td>入住时间</td>
                    <td>离店时间</td>
                    <td>消费</td>
                    <td>状态</td>
                    <td>订单操作</td>
                </tr>
            </thead>
            <s:iterator value="#request['order']" id="order">
            <tbody>
                <tr>
                    <td><s:property value="#order.orderid"/></td>
                    <td><s:property value="#order.ordertime"/></td>
                    <td><s:property value="#order.roomid"/></td>
                    <td><s:property value="#order.userid"/></td>
                    <td><s:property value="#order.orderroomnumber"/></td>
                    <td><s:property value="#order.orderpeoplenumber"/></td>
                    <td><s:property value="#order.starttime"/></td>
                    <td><s:property value="#order.endtime"/></td>
                    <td><s:property value="#order.ordertotalprice"/>元</td>
                    <td>
                        <s:if test="#order.order==0">已预订</s:if>
                        <s:if test="#order.order==1">已入住</s:if>
                        <s:if test="#order.order==2">已取消</s:if>
                    </td>
                    <td>
                    <s:if test="#order.order==0"><a href="">取消</a></s:if>
                    </td>
                </tr>
            </tbody>
            </s:iterator>
        </table>
看看那位大神能帮忙帮忙啊。对于我这样的新手呜呜呜