<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-23  評論-6  文章-1  trackbacks-0

    1.運行環境:
    JDK,ORACLE9i以上,CASTOR包。建議使用JBUILDE
    工具進行開發
    2.使用環境:
    采用ORM(關系對象映射)操作數據庫數據,適用于Application與WEB方式下的開發。

    3.功能:
        提供查詢,更新,刪除,插入(沒實現主鍵自動生成),(分頁暫時沒實現)。4.使用步驟:
    首先在數據庫建立一個cat表,字段為cat_id;name;sex;weight;類型1,4為數字型,2,
    3為字符串型。

    其次建立兩個配置文件(由自己定義文件名稱):
    repository.xml配置信息:
    <?xml version="1.0" encoding="UTF-8"?>
    <Repository>
     <TableDesc execid="CAT" identifyField="CAT_ID">
      <table>CAT</table>
      <condition />
     <FieldDesc name="CAT_ID" fieldType="java.lang.String" >
      <title>CAT_ID</title>
      </FieldDesc>
     <FieldDesc name="NAME" fieldType="java.lang.String" >
      <title>NAME</title>
      </FieldDesc>
     <FieldDesc name="SEX" fieldType="java.lang.String" >
      <title>SEX</title>
      </FieldDesc>
     <FieldDesc name="WEIGHT" fieldType="java.lang.Long" >
      <title>WEIGHT</title>
      </FieldDesc>
      </TableDesc>
    </Repository>
    配置文件的設計說明如下:
    TableDesc 表示一個表的聲明。
    Execid 是類名一般情況下最好和表名一致(容易找到對應關系),但是不允許有下劃線出現。注意這個類名不是全路徑。
    DentifyField 表中的主鍵,如果是復合主鍵則以逗號相隔開
    Table 數據庫表名
    <FieldDesc name="SEX" fieldType="java.lang.String" >
      <title>SEX</title>
      </FieldDesc>
    這里是表中字段的描述,name是字段名。 fieldType 是數據庫字段對
    應java中的類型,只有4中類型可填充:java.lang.String,
    java.lang.Long, java.util.Date, java.lang.Double
    title可要可不要.如果存在多個表,那么就在</TableDesc>和
    </Repository>之間加入表描述。

    pool-config.xml配置信息:
    <?xml version="1.0" encoding="GB2312"?>
    <ResourceParams>
    <maxActive>10</maxActive>
    <maxIdle>5</maxIdle>
    <maxWait>10000</maxWait>
    <username>test</username>
    <password>test</password>
    <driverClassName>oracle.jdbc.driver.OracleDriver</driverClassName>
    <url>jdbc:oracle:thin:@192.168.0.90:1521:forecast</url>
    <removeAbandoned>true</removeAbandoned>
    <removeAbandonedTimeout>60</removeAbandonedTimeout>
    <logAbandoned>true</logAbandoned>
    </ResourceParams>
    把上述信息保存為XML文件。對這個文件不多做說明了。

    確定兩個文件已經存在,接下來就是要創建表CAT。
    還有表所對應的BEAN。
    下面是我在Hibernate的一個例子中建立的VO。(借用)
    package com.cea.boat.dao;
      import java.util.*;
      public class Cat implements Cloneable  {
        //Declare Field
        private java.lang.String  catId;
        private java.lang.String  name;
        private java.lang.String  sex;
        private java.lang.Long  weight;
        //Get Method
        public java.lang.String getCatId() {
           return catId;
        }
        public java.lang.String getName() {
           return name;
        }
        public java.lang.String getSex() {
           return sex;
        }
        public java.lang.Long getWeight() {
           return weight;
        }
        //Set Method
        public void setCatId(java.lang.String catId) {
           this.catId=catId;
        }
        public void setName(java.lang.String name) {
           this.name=name;
        }
        public void setSex(java.lang.String sex) {
           this.sex=sex;
        }
        public void setWeight(java.lang.Long weight) {
           this.weight=weight;
        }
      public Object clone() {
        Object o = null;
        try {
          o = super.clone();
        }
        catch (CloneNotSupportedException ex) {
          System.out.println(o);
        }
        return o;
      }
      public boolean equals(Object obj) {
        Cat o = (Cat)obj;
        boolean result = true
            && (catId == o.catId || catId.equals(o.catId))
            && (name == o.name || name.equals(o.name))
            && (sex == o.sex || sex.equals(o.sex))
            && (weight == o.weight || weight.equals(o.weight))
        ;
        return result;
      }
      }
    到此已經完成了該做的事了,下面是一個使用的例子。

    l查詢方式:
    例子:
    Void testQuery() throws Exception{
        {
    System.setProperty(Const.RUN_KEY, Const.POOL_FACTORY_KEY);
          System.setProperty(Const.CONFIG_PATH,
                             "E:/project/CEAConnection/pool-config.xml");
          System.setProperty(Const.REPOSITORY_CONFIG_PATH,
                             "E:/project/CEAConnection/repository.xml");
    }

    ConnectionManage connectionManage = new ConnectionManage();
     connectionManage.activity("com.cea.boat.dao.Cat cat");
      
       Query Query=connectionManage.createQuery(“cat. Catid=’1’ ”);
        while (Query.hasNext()) {
          Object[] objects = Query.next();
          Cat cat = (Cat) objects[0];
        }
     connectionManage.close();
    }
    說明:
    在WEB中使用只需要在網站啟動時聲明一次即可。
    {
    //指明使用連接池
    System.setProperty(Const.RUN_KEY, Const.POOL_FACTORY_KEY);
    //連接池參數配置文件
          System.setProperty(Const.CONFIG_PATH,
                             "E:/project/CEAConnection/pool-config.xml");
    //配置文件指定
          System.setProperty(Const.REPOSITORY_CONFIG_PATH,
                             "E:/project/CEAConnection/repository.xml");
    }

       聲明一個連接管理者,管理數據庫資源,事務的起始,它的生命周期最好是在一個事務結束就完結,當然你也可以在這個事務完結時繼續用這個實例,來創建下一個事務的開始。不建議如此使用。
        ConnectionManage DataManage = new ConnectionManage();
       
    激活要使用類(在配置中必須有Cat),類名為全路徑如果要使用多個對象,則對象間要用逗號相隔開
    connectionManage.activity("com.cea.boat.dao.Cat cat");

    這里只需要給出SQL查詢條件比如SQL中是select * from cat cat where cat.Catid=‘1’那么 select * from cat cat where 這里后臺已經幫你完成,你需要做的就是把條件完成,如果沒有條件則為空.
    Query Query = connectionManage.createQuery(“cat. Catid=’1’ ”);


       Query.hasNext()的作用相當于resultset.next()查看是否還存在記錄,Query.next()返回一個對象數組這里如果activity的是多個對象,那么objects里會順序的存儲相應的對象實例,使用的時候強制轉化就可以了。
    while (Query.hasNext()) {
          Object[] objects = Query.next();
          Cat cat = (Cat) objects[0];
      }

    使用完畢,釋放使用的數據庫資源
     connectionManage.close();

    l新增方式:
      由于沒有主鍵自動生成,因此主鍵暫時只能由自己來維護,要保證catid為111的在表里不存在,否則會出現異常。
    Void testInsert() throws Exception{
    Cat cat = new Cat();
    cat. setCatId(“111”);
        cat. SetSex(“F”);
        cat. setName(“catm”);
        ConnectionManage cm = new ConnectionManage();
        cm.create(cat);
        cm.commit();
    cm.close();
    }

    l更新方式:
    表里已經存在catid為111的貓,否則查不到這條記錄就更新不了信息
    Void testUpdate() throws Exception{
    Cat cat = new Cat();
    cat. setCatId(“111”);
        cat. SetSex(“F”);
        cat. setName(“catmm”);
        ConnectionManage cm = new ConnectionManage();
        cm.update(cat);
        cm.commit();
    cm.close();
    }

    l刪除方式:
    刪除方式比較簡單,只要給出對象,并且主鍵值不為空,就可以刪除表中記錄。
    Void testDelete() throws Exception{
    Cat cat = new Cat();
    cat. setCatId(“111”);
        ConnectionManage cm = new ConnectionManage();
        cm.delete(cat);
        cm.commit();
    cm.close();
    }

    posted on 2005-09-15 23:41 ceaboat 閱讀(432) 評論(0)  編輯  收藏 所屬分類: JAVA小結
    主站蜘蛛池模板: 久久久久亚洲国产AV麻豆| 亚洲精品午夜国产va久久| 成年免费a级毛片| 国产一区二区视频免费| 亚洲Aⅴ在线无码播放毛片一线天| 久久久久免费看黄A片APP| 亚洲人成影院在线高清| 18禁成年无码免费网站无遮挡| 亚洲人成图片网站| 国产精品久久久久影院免费| 老司机午夜性生免费福利 | 一级毛片免费在线| 在线观看亚洲天天一三视| 两个人日本WWW免费版| 亚洲成a人片在线观看日本| 久久久99精品免费观看| 亚洲中字慕日产2020| 美女黄网站人色视频免费国产 | 免费国产污网站在线观看15| 亚洲理论在线观看| 成人A级毛片免费观看AV网站| 久久亚洲精品11p| 亚洲中文字幕久久精品无码喷水| 国产一精品一AV一免费| 亚洲男女性高爱潮网站| 麻豆国产入口在线观看免费| 天堂亚洲免费视频| 亚洲综合日韩中文字幕v在线| 插B内射18免费视频| 污污污视频在线免费观看| 日本亚洲成高清一区二区三区| 免费能直接在线观看黄的视频 | 三级片免费观看久久| 亚洲成人激情在线| 成人毛片18女人毛片免费96| 无码人妻一区二区三区免费视频 | 亚洲国产三级在线观看| 国语成本人片免费av无码| 一区二区三区免费视频播放器| 亚洲一卡2卡三卡4卡有限公司| 国产青草视频免费观看97|