<?xml version="1.0"?>
<oracle_address_config>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:oracle:thin:@192.168.0.90:1521:forecast</url>
<use-name>test</use-name>
<password>test</password>
</oracle_address_config>
这是外部配置数据库参数的XML文件。
平台提供查询,更新,删除,插入,分页5种功能。
使用例子之一:
  void testpage() throws Exception {
    DataManage dm = new DataManage();
    dm.activity("sku");
    Object[][] data = dm.getArrayData(0);
    if (data.length > 0) {
      for (int i = 0; i < data.length; i++) {
        System.out.print("\n第" + (i + 1) + "行的数据:");
        for (int j = 0; j < data[0].length; j++) {
          if (data[i][j] != null) {
            System.out.print(" " + data[i][j].toString());
          }
        }
      }
    }
    else {
      System.out.print("没有数据!");
    }
    dm.closeConnection();  }
注:SKU是数据库表名。
主要的动作:
1.取得DataManage实例
2.激活查询表
3.取回数据方式。
4.释放数据库资源。

解决方案 »

  1.   

    看来你JAVA学的不错,继续!!!!!
      

  2.   

    平台还有另一个XML,是记录着使用表的字段信息,这些信息是一次性放到内存里的。
    这只是平台的一小部分功能,插入时,提供的接口很简单,只需要给出字段名和值。
    就可以进行插入。
      

  3.   

    //测试插入,当时我在做一个WEB测试需要数据,所以就利用它自动创建1000条数据
      //一般应用情况下是非常简单的
      void testInsert() throws Exception {
        String table = "goods";
        TableDesc td = RepositoryFactory.newInstance().findTableDesc(table);
        List fd = td.getFieldDescs();
        genData(table, fd);
      }  void genData(String table, List fd) throws Exception {
        DataManage dm = ConnectionFactory.retFactory().recDataManage();
        dm.activity(table);
        Statement stmt = null;
        dm.getListData();
        Properties prop = new Properties();
        Properties pk = TableInfo.getPrimaryKeys(table);
        Iterator it = pk.keySet().iterator();
        String pkname = null;
        while (it.hasNext()) {
          pkname = it.next().toString();
        }
        dm.nextData();
        int index = 1000;
        while (index++ < 1001) {
          for (int i = 0; i < fd.size(); i++) {
            String fieldname = ( (FieldDesc) fd.get(i)).getFieldName();
            if (!fieldname.equals(pkname)) {
              prop.put(fieldname, dm.getParam(fieldname));
            }
            else {
              String pkvalue = dm.getParam(fieldname);
              prop.put(fieldname, new Long(new Long(pkvalue).longValue() + index));
            }
          }    dm.addBatchInsert(table, prop);
        }
        dm.commit();
        dm.closeConnection();
      }
      

  4.   

    //删除操作,执行的DELETE语句:DELETE FROM sku WHERE skuid='11' or skuid='10'
      void testDelect() throws Exception {
        DataManage dm = new DataManage();    String table = "sku";
        String sql = "skuid='11' or skuid='10'";
        dm.excuteDelect(table, sql);
        dm.closeConnection();
      }
    这个操作简单,接口也简单。
      

  5.   

    //测试插入,分为批量插入和单记录插入两种,这里是批量
      //INSERT INTO SKU (skuname,skuid) VALUES ('汽水','14')
      //INSERT INTO SKU (skuname,skuid) VALUES ('可乐','13')
      //测试插入两条记录
      void testInsert() throws Exception {
        DataManage dm = new DataManage();
        String table = "sku";
        Properties prop = new Properties();
        prop.put("skuid", "14");
        prop.put("skuname", "汽水");    dm.addBatchInsert(table, prop);
        prop.put("skuid", "13");
        prop.put("skuname", "可乐");
        dm.addBatchInsert(table, prop);
        dm.commit();
        dm.closeConnection();
      }
       //测试更新,分成批量更新与单记录更新,这里为批量更新
       //UPDATE sku SET skuname='火柴' WHERE 1=1  and skuid='13'
       //UPDATE goods SET goodsname='测试' WHERE 1=1  and goodsid=1  void testUpdate() throws Exception {
        DataManage dm = new DataManage();
        String table = "sku";
        Properties prop = new Properties();
        prop.put("skuname", "火柴");
        String specialcondition = "skuid='13'";    dm.addBatchUpdate(table, prop, specialcondition);
        table = "goods";
        prop = new Properties();
        prop.put("goodsname", "测试");    specialcondition = "goodsid=1";
        dm.addBatchUpdate(table, prop, specialcondition);
        dm.commit();
        dm.closeConnection();  }
      

  6.   


      /**
       * 带有条件的查询方式,这是返回LIST方式的查询,使用类似ResultSet的rs.getString(name);
       *SELECT SKUID,SKUNAME,SKUDATE FROM SKU WHERE 1=1 AND skuname='可乐' AND
       *skuid='11' AND skuid > 1 
       * @throws Exception
       */
      void testListData() throws Exception {
        DataManage dm = new DataManage();
        dm.activity("sku");
        Properties prop = new Properties();
        prop.put("skuname", "可乐");
        prop.put("skuid", "11");
        String condition = "skuid > 1";
        dm.getListData(prop, condition);
        System.out.print("/***************************/\n");
        while (dm.nextData()) {
          System.out.print(dm.getParam("skuid") + " ");
          System.out.println(dm.getParam("skuname") + " ");
        }    dm.closeConnection();  }  /**
       * 测试分页查询结果,0表示第一页的数据,每个表可自行定义自己的分页数,
       * 在XML文件里进行配置
       * 执行的SQL语句:
       * SELECT SKUID,SKUNAME,SKUDATE FROM SKU WHERE 1=1
       * @throws Exception
       */
      void testpage() throws Exception {
        DataManage dm = new DataManage();
        dm.activity("sku");
        Object[][] data = dm.getArrayData(0);
        if (data.length > 0) {
          for (int i = 0; i < data.length; i++) {
            System.out.print("\n第" + (i + 1) + "行的数据:");
            for (int j = 0; j < data[0].length; j++) {
              if (data[i][j] != null) {
                System.out.print(" " + data[i][j].toString());
              }
            }
          }
        }
        else {
          System.out.print("没有数据!");
        }    System.out.println("\n总共" + dm.COUNT_RECORDS + "条记录");
        dm.closeConnection();  }
      

  7.   

    基本的功能以例举完,还有一个配套的工具,进行表数据XML生成。
    优点是便于管理,一次开发,处处都可使用。再次修改只需专注于
    平台的修改,而不改动其他代码。