Re: [問題] Abstract and vendor independent JDBC??

看板java作者 (swpoker)時間11年前 (2013/01/14 11:59), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串4/4 (看更多)
通常我會這樣一邊思考一邊這樣寫 ※ 引述《mahoihei (Alvar)》之銘言: : 大概是1+2吧 : 抱歉,我一直寫中文寫作都是不合格的..... : 我說一次完整的流程好了 : 首先,我要做的大概是一個制作html form的系統 : 大概是這樣子,http://www.wufoo.com/ : 先舉例說ADMIN 要做一張申請上廁所的表單 看到表單,通常就是某個BEAN拉 所以先弄個類別取名叫 WCBEAN : 他就用這個系統drag and drop一張表單的template出來 看到這裡才發現原來不是wcbean 其實要是做metadata阿 所以又弄了一個METADATABean出來 : 表單入面有一些欄位,Staff Id,Toilet Id,date,time..... 這個時候其實把wcbean跟metadatabean連結起來 所以這裡應該要是 meta_id,bean_id,attr_name,attr_type,attr_rule,.. : ADMIN可以做一些validation rule : 例如,time不可以大於"某個值" 這裡有行為,所以我建立一個方法,參數先不管,之後再重構 public boolean checkrole() : "某個值"是由哪裏來的? : ADMIN由WEB 介面輸入db的connection string,username,pw.... : 就會顯示出這個db的所有TABLE,選一個TABLE中的某一個ATTR來當"某個值" 這裡有點有趣 有點太理所當然了 跟我的業務單位的想法很類似:不就去某個系統看個值,然後去某個檔案找一下, 不就有了嗎? 通常我一聽到心裡就有點苦笑~你想的很簡單~可我做的不簡單阿 不過在這裡我應該會這樣 1. con = 根據連線設定得到連線(); all_table_rs = con.getalltable(); 2. rs = con.queryall(tableid); rs內有全部資料及相關的metadata : 如果職員申請去15分,而validate rule設定只能去10分鐘,系統會自動reject那張申請 table_name = "wc"; msg=msgbean(); metadata = getmetadata(table_name); wcbean = WCBean(meatdata,msg); wcbean.setApplyTime(Date applytime); --- public void setApplyTime(Date applytime){ if(meta.checkrule(applytime) == false){ msg.add('applytime','too long'); return; } this.applytime = applytime; } --- 處理一下msg這樣 其實實作bean的驗證的方式跟framework有很多,可選擇自己喜歡的就好 這裡只是點一下而已 : 而compile time是不會知道admin 會用什麼DB,入面有什麼TABLE..... : 而系統應該支援多種的DB(oracle,mysql........) 這邊就是可以用介面做 adapter 例如 1.輸入資料庫的設定:不同的資料有不同的設定 2.查詢table的方法也不一樣 所以我可以這樣做 DatabaseAbs{ public String getName(); public List<ConfigBean> instanceConfig(); public List<TableBean> queryTable(); } List<DatabaseAbs> dbs = 得到系統支援的資料庫(); 這裡實做的方式就看你摟 : 再不明白,我看我還是回去補一下國小語文科.... 我都是習慣一邊想一邊寫 然後重構兩三次就好啦 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.29.29.131

01/14 12:23, , 1F
頒布好人徽章一枚 XD
01/14 12:23, 1F
文章代碼(AID): #1GyuAits (java)
討論串 (同標題文章)
文章代碼(AID): #1GyuAits (java)