Re: [問題] Abstract and vendor independent JDBC??
通常我會這樣一邊思考一邊這樣寫
※ 引述《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
01/14 12:23, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):