ADF初体验

任务要求:设计一个电影院买票管理系统


数据库设计:5个表格

1. User(UserID, name, password, VIP_Level, phone, Gender。。。)

2. movie_list (movieID, movie_star, movie_language)

3. movie_detail (informationID, director, price, director, description, movieID....)

4. movie_showtime(movieID, showTime, screenNumber, maxSeat, availableSeat)

5. ticket(ID, userID, movieID, screenNumber, showTime, seatNeeded, Price, orderTme)


建立一个Fusion Web Application, 包含两个部分(Model和Control)

Model中存放VO,EO以及AM; Control中定义manageBean,.jpx文件等


遇到的问题:如何获取页面上的值???

1. 在Control中创建一个javaBean(与视图层关联)

2. 在adfc.config中的Managed Beans中注册过后才可以使用

3. 将页面上的数据与ManagedBean进行绑定(字段绑定后会生成Set, Get方法,方法绑定后会自动生成代码框架)


遇到的问题:如何与数据库连接???

1. 在AM中生成.java文件(需要再.xml的java栏的Client Interface中将方法暴露出来

2. 在生成的java文件中添加业务逻辑代码


ADF数据库中的Number数据类型转为Int类型

int price = Integer.ParseInt(moviePrice.getValue()).toString();


如何在一个表格中显示两张表中的字段???

1. 两张表先建一个AO

2. 在主VO中筛选要显示的字段


如何根据页面上的值进行条件查询???

1. 在VO的Query中添加Bind Variables

2. 编辑Query语句查询,将条件写在查询语句中, 如 where movieID = :bindID

3. 将页面上的值传给绑定变量

  •    javaBean中获取页面上的条件值
  •   AM中  将值传给绑定变量(bindID)并执行
    public void queryBooking(int ID)
    {
            
            ViewObjectImpl vo = this.getMbpTicket1();
            vo.setWhereClause(null);
            vo.setWhereClauseParams(null);
            vo.setNamedWhereClauseParam("bindID", ID);
            vo.executeQuery();  

        }


如何根据一个字段查询数据库的另一个字段???

// 根据用户名查询用户的VIP等级

    public int discountLevel(String name)
    {
        int level;

        DBTransaction dbTransaction = this.getDBTransaction();
        Statement stmt = dbTransaction.createStatement(1)

         String strQuery_UserLevel =
            "select VIP_LEVEL FROM MBP_MOVIE_USER WHERE FIRST_NAME = '" + name + "' ";


        ResultSet rs_userLevel;
        Integer userLevel = null;
        try {
            rs_userLevel =
                    dbTransaction.createStatement(0).executeQuery(strQuery_UserLevel);
            if (rs_userLevel.next()) {
                userLevel = ((BigDecimal)rs_userLevel.getObject(1)).intValue();
            }
        } catch (SQLException e) {
            throw new JboException(e);
        }
        
        return userLevel;

        }

注: 不建议直接操作数据库,应该操作封装好的VO,后面的文章中会做具体的介绍。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值