<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小結
    主站蜘蛛池模板: 亚洲国产日韩女人aaaaaa毛片在线| 精品无码国产污污污免费网站国产 | 国产一区二区三区免费观看在线| 国产亚洲中文日本不卡二区| 亚洲va国产va天堂va久久| 国产gav成人免费播放视频| 久久WWW免费人成一看片| 国产一级一毛免费黄片| 一级毛片在线免费播放| 亚洲欧美国产国产一区二区三区| 久久亚洲精品成人无码网站 | 人妻仑乱A级毛片免费看| 亚洲人成人网站18禁| 亚洲精品电影在线| 西西人体44rt高清亚洲| 久久久久久久亚洲精品| 免费国产在线观看| 精品无码国产污污污免费| 欧美男同gv免费网站观看| 18禁止看的免费污网站| 99久热只有精品视频免费观看17| 色www永久免费网站| av电影在线免费看| 一级免费黄色大片| 日韩精品免费一线在线观看| 亚洲av无码偷拍在线观看| 亚洲中文字幕无码久久2020| 亚洲国产精品久久丫| 亚洲福利视频一区二区三区| 亚洲av丰满熟妇在线播放| 亚洲AV无码第一区二区三区| 亚洲高清国产AV拍精品青青草原| 亚洲午夜久久久影院伊人| 亚洲免费观看视频| 色久悠悠婷婷综合在线亚洲 | 国产午夜成人免费看片无遮挡| A国产一区二区免费入口| 成人无码区免费A∨直播| 中文字幕乱码免费看电影| 免费无码又爽又刺激网站直播| 免费一级不卡毛片|