freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

圖書進存銷系統-資料下載頁

2025-08-03 11:13本頁面
  

【正文】 SQL,得到了相應的數據集,再判斷如果數據集的size不為1的話,則返回null。代碼清單:code\book\src\org\crazyit\book\service\impl\ //實現接品方法 public Concern find(String id) { return (id)。 }業(yè)務層與之前的一樣,直接返回數據,不必經過任何處理。那么現在就可以去實現表現層的view方法,得到出版社對象后,再將出版社的各個值設置到對應的地方。代碼清單:code\book\src\org\crazyit\book\ui\ //查看一個出版社 private void view(String id) { Concern c = (id)。 //通過業(yè)務接口得到出版社對象 (())。//設置ID的JTextFiled(隱藏) (())。//設置出版社名稱的文本框 (())。//設置聯系人的文本框 (())。//設置聯系電話的文本框 (())。//設置簡介的文本域 }查看出版社的功能已經實現。 查看出版社 新增出版社接下來實現新增出版社的功能,與查看出版社的功能相反,是從輸入框中得到數據,再寫進數據庫中。但在整個界面中,只有一個保存按鈕,也就是說,無論新增還是修改操作,都是使用同一個按鈕。什么時候是新增,什么時候是修改,判斷的標準是當前編輯的數據是否有ID,我們在查看出版社的時候,可以看到有一個隱藏的JTextField來保存出版社的ID,也就是說,當這個隱藏的JTextField有值的時候,點擊保存,就是修改操作,沒有值點擊保存按鈕,就是新增操作。當用戶正在查看一個出版社,又想馬上新增一個新的出版社的時候,可以點擊清空按鈕。代碼清單:code\book\src\org\crazyit\book\ui\ //保存方法 private void save() { if (().trim().equals()) { //調用父類的方法,彈出錯誤提示 showWarn(請輸入出版社名稱)。 return。 } //如果id為空, 則為新增, 不為空則為修改操作 if (().equals()) add()。 else update()。 } //新增方法 private void add() { //暫時不實現 } //修改方法 private void update() { //暫時不實現 }為保存按鈕添加監(jiān)聽器: //保存按鈕監(jiān)聽器 (new ActionListener(){ public void actionPerformed(ActionEvent arg0) { save()。 } })。此時,可以去實現業(yè)務層和數據訪問層。ConcernDao添加新的接口方法: //添加一個出版社并返回新增的id String add(Concern concern)。代碼清單:code\book\src\org\crazyit\book\dao\impl\ public String add(Concern c) { //利用出版社對象拼裝SQL String sql = INSERT INTO T_PUBLISHER VALUES (ID, 39。 + () + 39。, 39。 + () + 39。, 39。 + () + 39。, 39。 + () + 39。)。 //調用JDBCExecutor的executeUpdate方法,并返回新數據的主鍵 String id = (getJDBCExecutor().executeUpdate(sql))。 return id。 }以上代碼的黑體部分,調用父類的getJDBCExecutor()方法,獲得JDBCExecutor對象,調用該對象執(zhí)行SQL的executeUpdate方法,該方法返回新數據的主鍵。為ConcernService添加接口方法,新增一個Concern對象。以下是concernServiceImpl的實現。代碼清單:code\book\src\org\crazyit\book\service\impl\ public Concern add(Concern c) { String id = (c)。 //得到返回的ID //根據ID再查找對象 return find(id)。 }接下來就要表現層將數據封裝成一個Concern 對象,再調用業(yè)務層的add方法執(zhí)行新增操作。代碼清單:code\book\src\org\crazyit\book\ui\ //從表單中獲取數據并封裝成Concern對象, 沒有id值 private Concern getConcern() { String concernName = ()。 String pubTel = ()。 String pubLinkMan = ()。 String pubIntro = ()。 return new Concern(null, concernName, pubTel, pubLinkMan, pubIntro)。 } //新增方法 private void add() { Concern c = getConcern()。//獲得界面中的值并封裝成對象 (c)。 setViewDatas()。//重新讀取數據 clear()。//刷新表單 } //實現父類的方法,清空表單并刷新列表 public void clear() { refreshTable()。//調用父類的刷新列表方法 //清空表單中的各個文本框(域)的值 ()。 ()。 ()。 ()。 ()。 }注:以上代碼中的getConcern方法,返回時需要用到Concern的構造器,該構造器有5個參數,我們在DataUtil使用Class里面的newInstance方法,因此我們需要為Concern顯示提供一個無參數的構造器。當調用業(yè)務方法新增了一個出版社后,需要將列表刷新,將表單清空,因此我們實現父類的clear方法,該方法也可以讓界面中的清空按鈕使用,為清空按鈕添加監(jiān)聽器:代碼清單:code\book\src\org\crazyit\book\ui\ //清空按鈕監(jiān)聽器 (new ActionListener(){ public void actionPerformed(ActionEvent arg0) { clear()。 } })。 修改出版社,我們已經知道,保存按鈕是有兩個操作的,至于執(zhí)行哪一個操作,由存放ID的隱藏的JTextFiled來決定的,只是沒有提供實現。修改與新增大致相同,都是讀到數據,再執(zhí)行SQL進行修改。為ConcernDao加入接口方法,用于修改一個Concern對象。代碼清單:code\book\src\org\crazyit\book\dao\impl\ public String update(Concern c) { //利用參數拼裝修改的SQL String sql = UPDATE T_PUBLISHER pub SET =39。 + () + 39。, =39。 + () + 39。, =39。 + () + 39。, =39。 + () + 39。 WHERE =39。 + () + 39。 //執(zhí)行SQL getJDBCExecutor().executeUpdate(sql)。 //直接返回對象的ID return ()。 }為ConcernService接口加入update方法,并在ConcernServiceImpl中提供實現。代碼清單:code\book\src\org\crazyit\book\service\impl\ public Concern update(Concern c) { //調用DAO方法修改對象 String id = (c)。 //重新查找該對象 return find(id)。 }代碼清單:code\book\src\org\crazyit\book\ui\ //修改方法 private void update() { //取得當前修改記錄的ID String id = ()。 //根據界面數據獲得Concern對象 Concern c = getConcern()。 (id)。 (c)。 //重新讀取數據 setViewDatas()。 //刷新列表 refreshTable()。 }注:以上黑體代碼為getConcern方法,與新增時的getConcern方法一樣,都是根據界面中各個相關的值獲得一個沒有ID屬性的Concern對象,update方法中獲得該對象后,由于該對象沒有ID,因此還需要setID。出版社的查看、新增和修改功能都已經實現了,由于出版社與其他的表沒有任何關聯,因此實現起來都比較簡單,業(yè)務層幾乎不需要處理任何業(yè)務。和出版社管理相類似的書本種類管理,實現起來比出版社管理更加簡單,同樣地,書本類型管理也沒有任何的外鍵關聯,書本類型表的字段也比出版社表的字段少,因此在本例中省略如何實現書本種類管理。 書本管理功能與出版社管理功能相比,書本管理復雜一點,因為書與出版社、書本種類相關聯,因此在操作書的同時,也需要考慮如何得到這兩種數據。另外,書還包括圖片,因此對圖片的處理上還需要編寫一些代碼。除了書本記錄有外鍵和需要有圖片處理的功能外,其他功能都與出版社管理類似,交互方式也是大體一致的。 獲取全部書獲得數據庫中全部的書,并將其顯示在列表,與出版社類似,寫一句SQL查找得到結果的集合,再使結果顯示在界面中。,書本管理界面對應的是BookPanel類,同樣地,該類也是CommonPanel的子類,只需要重寫一些方法,并設置相關的數據讓父類去根據這些數據生成列表即可。首先,我們先實現數據訪問層,再實現業(yè)務層。新建接口BookDao,并為其提供BookDaoImpl的實現類,為BookDao加入findAll的接口方法,用于查找全部的書本。代碼清單:code\book\src\org\crazyit\book\dao\impl\public class BookDaoImpl extends CommonDaoImpl implements BookDao { public CollectionBook findAll() { //查找的SQL語句 String sql = SELECT * FROM T_BOOK book ORDER BY desc。 //調用父類的方法返回數據 return getDatas(sql, new Vector(), )。 }}與出版社管理類似,只提供一句SQL,再通過該句SQL,調用父類的getDatas方法返回數據,getDatas方法對ResultSet進行了封裝。添加一個BookService的業(yè)務接口,并為其提供一個BookServiceImpl的實現,加入getAll方法,用于查找全部的書本。該接口給界面對象調用。在實現BookService的時候,我們需要知道,Book對象里面包含有書表的各個字段,包括種類(PUB_ID_FK)和出版社(TYPE_ID_FK)外鍵,只是保存一個ID,但是界面上需要顯示的是出版社名稱和種類名稱,因此我們需要為Book類添加兩個屬性,分別是種類(Type)和出版社(Concern)。代碼清單:code\book\src\org\crazyit\book\vo\ //書本種類,從數據庫查詢出來的時候,這個屬性為null,再通過本類的TYPE_ID_FK去設置這個屬性 private Type type。 //書對應的出版社,與type相同 private Concern concern。 //省略setter和getter方法因此在BookService的實現類中,我們需要將兩個外鍵轉換成兩個對象,這時的轉換,則需要TypeDao和ConcernDao來根據ID查找兩個對象了。代碼清單:code\book\src\org\crazyit\book\service\impl\ private BookDao bookDao。 private TypeDao typeDao。 private ConcernDao concernDao。 //當構造BookServiceImpl的時候,需要三個接口 public BookServiceImpl(BookDao bookDao, TypeDao typeDao, ConcernDao concernDao) { = bookDao。 = typeDao。 = concernDao。 } //實現接口方法 public CollectionBook getAll() { CollectionBook result = ()。 //調用setAssociate方法設置關聯的兩個對象 return setAssociate(result)。 } //設置關系對象 private CollectionBook setAssociate(CollectionBook result) { //遍歷結果集合,設置每一個書的對象 for (Book book : result) { //查找出對應的種類,再為書設置種類對象 (
點擊復制文檔內容
范文總結相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1