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

正文內(nèi)容

圖書進存銷系統(tǒng)(參考版)

2024-08-14 11:13本頁面
  

【正文】 //調(diào)用setAssociate方法設(shè)置關(guān)聯(lián)的兩個對象 return setAssociate(result)。 = concernDao。 //當(dāng)構(gòu)造BookServiceImpl的時候,需要三個接口 public BookServiceImpl(BookDao bookDao, TypeDao typeDao, ConcernDao concernDao) { = bookDao。 private TypeDao typeDao。 //省略setter和getter方法因此在BookService的實現(xiàn)類中,我們需要將兩個外鍵轉(zhuǎn)換成兩個對象,這時的轉(zhuǎn)換,則需要TypeDao和ConcernDao來根據(jù)ID查找兩個對象了。代碼清單:code\book\src\org\crazyit\book\vo\ //書本種類,從數(shù)據(jù)庫查詢出來的時候,這個屬性為null,再通過本類的TYPE_ID_FK去設(shè)置這個屬性 private Type type。該接口給界面對象調(diào)用。 }}與出版社管理類似,只提供一句SQL,再通過該句SQL,調(diào)用父類的getDatas方法返回數(shù)據(jù),getDatas方法對ResultSet進行了封裝。代碼清單: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。首先,我們先實現(xiàn)數(shù)據(jù)訪問層,再實現(xiàn)業(yè)務(wù)層。 獲取全部書獲得數(shù)據(jù)庫中全部的書,并將其顯示在列表,與出版社類似,寫一句SQL查找得到結(jié)果的集合,再使結(jié)果顯示在界面中。另外,書還包括圖片,因此對圖片的處理上還需要編寫一些代碼。和出版社管理相類似的書本種類管理,實現(xiàn)起來比出版社管理更加簡單,同樣地,書本類型管理也沒有任何的外鍵關(guān)聯(lián),書本類型表的字段也比出版社表的字段少,因此在本例中省略如何實現(xiàn)書本種類管理。 }注:以上黑體代碼為getConcern方法,與新增時的getConcern方法一樣,都是根據(jù)界面中各個相關(guān)的值獲得一個沒有ID屬性的Concern對象,update方法中獲得該對象后,由于該對象沒有ID,因此還需要setID。 //重新讀取數(shù)據(jù) setViewDatas()。 (id)。 }代碼清單:code\book\src\org\crazyit\book\ui\ //修改方法 private void update() { //取得當(dāng)前修改記錄的ID String id = ()。代碼清單:code\book\src\org\crazyit\book\service\impl\ public Concern update(Concern c) { //調(diào)用DAO方法修改對象 String id = (c)。 //直接返回對象的ID return ()。 + () + 39。 + () + 39。 + () + 39。 + () + 39。 + () + 39。為ConcernDao加入接口方法,用于修改一個Concern對象。 修改出版社,我們已經(jīng)知道,保存按鈕是有兩個操作的,至于執(zhí)行哪一個操作,由存放ID的隱藏的JTextFiled來決定的,只是沒有提供實現(xiàn)。當(dāng)調(diào)用業(yè)務(wù)方法新增了一個出版社后,需要將列表刷新,將表單清空,因此我們實現(xiàn)父類的clear方法,該方法也可以讓界面中的清空按鈕使用,為清空按鈕添加監(jiān)聽器:代碼清單:code\book\src\org\crazyit\book\ui\ //清空按鈕監(jiān)聽器 (new ActionListener(){ public void actionPerformed(ActionEvent arg0) { clear()。 ()。 ()。//調(diào)用父類的刷新列表方法 //清空表單中的各個文本框(域)的值 ()。//重新讀取數(shù)據(jù) clear()。//獲得界面中的值并封裝成對象 (c)。 return new Concern(null, concernName, pubTel, pubLinkMan, pubIntro)。 String pubLinkMan = ()。代碼清單:code\book\src\org\crazyit\book\ui\ //從表單中獲取數(shù)據(jù)并封裝成Concern對象, 沒有id值 private Concern getConcern() { String concernName = ()。 //得到返回的ID //根據(jù)ID再查找對象 return find(id)。以下是concernServiceImpl的實現(xiàn)。 }以上代碼的黑體部分,調(diào)用父類的getJDBCExecutor()方法,獲得JDBCExecutor對象,調(diào)用該對象執(zhí)行SQL的executeUpdate方法,該方法返回新數(shù)據(jù)的主鍵。 //調(diào)用JDBCExecutor的executeUpdate方法,并返回新數(shù)據(jù)的主鍵 String id = (getJDBCExecutor().executeUpdate(sql))。 + () + 39。 + () + 39。 + () + 39。 + () + 39。ConcernDao添加新的接口方法: //添加一個出版社并返回新增的id String add(Concern concern)。 } })。 else update()。 return。當(dāng)用戶正在查看一個出版社,又想馬上新增一個新的出版社的時候,可以點擊清空按鈕。但在整個界面中,只有一個保存按鈕,也就是說,無論新增還是修改操作,都是使用同一個按鈕。//設(shè)置簡介的文本域 }查看出版社的功能已經(jīng)實現(xiàn)。//設(shè)置聯(lián)系人的文本框 (())。//設(shè)置ID的JTextFiled(隱藏) (())。代碼清單:code\book\src\org\crazyit\book\ui\ //查看一個出版社 private void view(String id) { Concern c = (id)。 }業(yè)務(wù)層與之前的一樣,直接返回數(shù)據(jù),不必經(jīng)過任何處理。 }數(shù)據(jù)訪問層中,與查詢所有出版社方法一樣,只是改變了一下SQL,得到了相應(yīng)的數(shù)據(jù)集,再判斷如果數(shù)據(jù)集的size不為1的話,則返回null。 //獲得數(shù)據(jù),并返回第一條 ListConcern datas = (ListConcern)getDatas(sql, new ArrayList(), )。代碼清單:code\book\src\org\crazyit\book\dao\impl\ //實現(xiàn)ConcernDao接品方法 public Concern find(String id) { //查詢的SQL String sql = SELECT * FROM T_PUBLISHER pub WHERE = 39。注意以上代碼的黑體部分,調(diào)用了父類(CommonPanel)的getSelectId方法,返回選擇行的id列的值。 view(id)。代碼清單:code\book\src\org\crazyit\book\ui\ //查看一個出版社 private void view(String id) { //暫時空實現(xiàn) } //表格選擇監(jiān)聽器 getJTable().getSelectionModel().addListSelectionListener(new ListSelectionListener(){ public void valueChanged(ListSelectionEvent event) { //當(dāng)選擇行時鼠標(biāo)釋放時才執(zhí)行 if (!()) { //如果沒有選中任何一行, 則返回 if (getJTable().getSelectedRowCount() != 1) return。 }設(shè)置了列表的樣式后,現(xiàn)在可以為列表的Jtable添加監(jiān)聽器,當(dāng)選擇一行數(shù)據(jù)的時候,可以將所選擇行的信息顯示到列表中。 getJTable().getColumn(簡介).setMinWidth(400)。代碼清單:code\book\src\org\crazyit\book\ui\ //設(shè)置表格樣式 public void setTableFace() { //隱藏id列 getJTable().getColumn(id).setMinWidth(1)。當(dāng)我們在做出版社列表的時候,需要為列表的JTable對象添加一列,專門用于存放數(shù)據(jù)的ID值,并設(shè)置ID列為隱藏,可以在setTableFace方法中設(shè)置,該方法是CommonPanel的方法,需要各個子類去實現(xiàn)。//刷新列表 }在表現(xiàn)層的ConcernPanel中,通過業(yè)務(wù)接口得到數(shù)據(jù)后,再進行數(shù)據(jù)格式轉(zhuǎn)換,調(diào)用父類的setDatas方法和refreshTable方法設(shè)置數(shù)據(jù)和刷新表格。 //轉(zhuǎn)換數(shù)據(jù)格式 setDatas(datas)。 VectorConcern concerns = (VectorConcern)(name)。 }同樣地,在業(yè)務(wù)層中,我們也不需要對結(jié)果集進行處理,只需要返回數(shù)據(jù)即可。 }注意以上代碼的like關(guān)鍵字,這是MySQL提供的關(guān)鍵字。 ORDER BY DESC。代碼清單:code\book\src\org\crazyit\book\dao\impl\ //實現(xiàn)接口ConcernDao的方法方法 public CollectionConcern findByName(String name) { //使用like關(guān)鍵字 String sql = SELECT * FROM T_PUBLISHER pub WHERE like 39。MySQL的提供一個like關(guān)鍵字,可以實現(xiàn)SQL的模糊查詢。創(chuàng)建列表的方法主要是父類的initData方法。 setJTable(table)。//設(shè)置列表數(shù)據(jù) DefaultTableModel model = new DefaultTableModel(null, )。 initColumns()。我們在上面所編寫的setViewDatas方法,同樣的也需要在構(gòu)造器中調(diào)用。 //使用業(yè)務(wù)接口得到數(shù)據(jù) setDatas(datas)。 } //實現(xiàn)父類方法,查詢數(shù)據(jù)庫并返回對應(yīng)的數(shù)據(jù)格式, 調(diào)用父類的setDatas方法設(shè)置數(shù)據(jù)集合 public void setViewDatas() { VectorConcern concerns = (VectorConcern)()。 (v)。 (())。 (())。 for (Concern c : datas) { Vector v = new Vector()。接下來,就是表現(xiàn)層如何得到數(shù)據(jù)并進行顯示了。如果需要進行一些業(yè)務(wù)的處理,那么可以在業(yè)務(wù)層的實現(xiàn)類中進行處理。 } //直接返回數(shù)據(jù) public CollectionConcern getAll() { return ()。代碼清單:code\book\src\org\crazyit\book\service\impl\public class ConcernServiceImpl implements ConcernService { //數(shù)據(jù)訪問對象 private ConcernDao dao。接下來,再去實現(xiàn)業(yè)務(wù)層:ConcernService,代碼清單:code\book\src\org\crazyit\book\service\public interface ConcernService { //獲取全部的出版社 CollectionConcern getAll()。 }}注意以上代碼中的黑體部分,調(diào)用父類的方法返回數(shù)據(jù)集合,返回怎樣的數(shù)據(jù)集合,根據(jù)參數(shù)類型決定。}ConcernDaoImpl,代碼清單:code\book\src\org\crazyit\book\dao\impl\public class ConcernDaoImpl extends CommonDaoImpl implements ConcernDao { public CollectionConcern findAll() { //查找的SQL String sql = SELECT * FROM T_PUBLISHER pub ORDER BY DESC。 獲取全部出版社新建ConcernDao的實現(xiàn)類(數(shù)據(jù)訪問層的實現(xiàn)類)ConcernDaoImpl,為ConcernDao添加一個需要實現(xiàn)的方法findAll,以下為findAll的接口方法及期實現(xiàn)。出版社數(shù)據(jù)訪問層接口:public interface ConcernDao { //提供需要實現(xiàn)的接口方法}出版社業(yè)務(wù)接口:public interface ConcernService { //提供需要實現(xiàn)的接口方法}那么在表現(xiàn)層的JPanel中,我們可以在JPanel的構(gòu)造器中,將ConcernService作為構(gòu)造參數(shù)傳入到ConcernPanel(出版社管理界面)中。
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1