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

正文內(nèi)容

基于jsp的藥品進(jìn)銷存管理系統(tǒng)畢業(yè)設(shè)計(jì)論文-資料下載頁

2025-11-07 16:51本頁面
  

【正文】 128 否 批準(zhǔn)文號(hào) MARK_PRICE VARCHAR 10 否 否 市場(chǎng)價(jià)格 IHEALTH_PRICE VARCHAR 10 否 否 i健康價(jià)格 FAC_NAME VARCHAR 128 否 否 生產(chǎn)廠家 MED_DATE VARCHAR 128 否 否 生產(chǎn)日期 MED_NUM VARCHAR 10 否 否 藥品數(shù)量 27 MED_CLASS VARCHAR 128 否 否 藥品類別 。表結(jié)構(gòu)如表 4,3 所示。 表 信息表 (FACTORYINFO) 列名 數(shù)據(jù)類型 長(zhǎng)度 是否允許 為空 是否主鍵 說明 FAC_NAME VARCHAR 128 否 是 廠家名稱 FAC_ADDRESS VARCHAR 256 是 否 廠家地址 CONN_NAME VARCHAR 100 是 否 聯(lián)系人 FAC_TEL VARCHAR 30 是 否 聯(lián)系電話 FAC_EMAIL VARCHAR 128 是 否 聯(lián)系郵箱 4. 訂單信息表主要是記錄了藥品銷售的基本信息,表結(jié)構(gòu)如圖 所示。 表 信息表 (ORDERFORMINFO) 列名 數(shù)據(jù)類型 長(zhǎng)度 允許空 是否主鍵 說明 ORDER_NO VARCHAR 32 否 是 訂單編號(hào) USER_ID VARCHAR 32 否 否 用戶賬號(hào) CONSIGNEE_NAME VARCHAR 100 否 否 收件人 CONSIGNEE_TEL VARCHAR 30 否 否 聯(lián)系電話 CONSIGNEE_ADDRESS VARCHAR 128 否 否 收件地址 MED_NO VARCHAR 32 否 否 藥品編號(hào) MED_NAME VARCHAR 128 否 否 藥品名稱 IHEALTH_PRICE VARCHAR 10 否 否 i健康價(jià)格 BUY_NUM VARCHAR 10 否 否 購買數(shù)量 TOTAL_PRICE VARCHAR 10 否 否 總價(jià)格 DELIVERY VARCHAR 100 否 否 配送方式 ORDER_STATE VARCHAR 10 否 否 訂單狀態(tài) ,表結(jié)構(gòu)如圖 所示。 28 表 信息表 (STOCKINFO) 列名 數(shù)據(jù)類型 長(zhǎng)度 允許空 是否主鍵 說明 STO_NO VARCHAR 128 否 是 入庫編號(hào) FAC_NAME VARCHAR 128 否 否 廠家名稱 MED_NO VARCHAR 32 否 否 藥品編號(hào) MED_NAME VARCHAR 128 否 否 藥品名稱 OPERATOR_NAME VARCHAR 100 是 否 操作人 FAC_TEL VARCHAR 30 是 否 聯(lián)系電話 STO_NUM VARCHAR 10 否 否 數(shù)量 STO_PRICE VARCHAR 10 否 否 價(jià)格 數(shù)據(jù)庫的連接原理 JDBC 采用 JDBC 連接數(shù)據(jù)庫的方式,只需在工程中導(dǎo)入對(duì)應(yīng)數(shù)據(jù)庫的 jar 包,就可以方便的對(duì)數(shù)據(jù)庫進(jìn)行連接,在程序中,用 ()方法來加載驅(qū)動(dòng)程序,在用DriverManager 的 getConnection()方法就可以創(chuàng)建一個(gè)數(shù)據(jù)庫連接。程序采用的是DAO 模式來操作數(shù)據(jù)庫, DAO(Data Access Object,數(shù)據(jù)訪問對(duì)象 ),是 Java 編程中的一種經(jīng)典模式,已被廣泛應(yīng)用,也是 J2EE 架構(gòu)中持久層框架的基礎(chǔ)知識(shí),基于分層次式的軟件架構(gòu)來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的訪問操作。 DAO 模式的主要思想就是從抽 象數(shù)據(jù)源獲取與操縱數(shù)據(jù)的方法。抽象數(shù)據(jù)的含義就是編寫應(yīng)用程序的程序員不必關(guān)心數(shù)據(jù)庫的物理位置,已經(jīng)是何種數(shù)據(jù)庫,只需使用封裝數(shù)據(jù)庫中表示記錄的數(shù)據(jù)對(duì)象即可。其思想如圖 所示: BusinessObject DataAccessObject DataSource DataTransferObject 使用 封裝 創(chuàng)建 /使用 獲取 /修改 29 圖 DAO 模式類圖 圖中 BussinessObject是業(yè)務(wù)對(duì)象,是使用 DAO模式的客戶端; DataTransferObject數(shù)據(jù)傳輸對(duì)象,在應(yīng)用程序不同層次之間傳輸對(duì)象,在一個(gè)分布式應(yīng)用程序中,通??梢蕴岣哒淼男阅?; DataObjectAcces 數(shù)據(jù)輸入 /輸出對(duì)象封裝了對(duì)數(shù)據(jù)源的一些基本操作; DataSource 指的是數(shù)據(jù)源。可以從圖中看出, DAO 模式分離了業(yè)務(wù)邏輯和數(shù)據(jù)邏輯,是的編寫的軟件具有良好的層次式體系結(jié)構(gòu)。本系統(tǒng)為了方便數(shù)據(jù)庫的操作,主要使用 DBContent 的對(duì)象連接一個(gè)數(shù)據(jù)庫(建立一個(gè)類 DBHelp),主要 代碼如下: ,連接數(shù)據(jù)庫,并設(shè)置數(shù)據(jù)庫登錄名以及密碼。 ()。 Connection conn = (jdbc: root, liang)。 exeSQL 類(返回類型為 boolean)和一個(gè) queryMsg 類(返回類型為ResultSet)來對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn) 行增刪改查。 PreparedStatement pst = getConnection().prepareStatement(sql)。 int num = ()。 ResultSet rs = ()。 在程序需要連接數(shù)據(jù)庫的地方,只需要生成一個(gè) DBHelp 的對(duì)象,就可以對(duì)數(shù)據(jù)庫進(jìn)行連接并操作。 30 用 MyBtis 連接數(shù)據(jù)庫 引入 來設(shè)置 name、 (獲取驅(qū)動(dòng) )、(獲取路徑)、 (設(shè)置數(shù)據(jù)庫登陸名)、(設(shè)置數(shù)據(jù)庫密碼)。 MyBtis 的三個(gè)關(guān)鍵的要素是: : 。首先在 中通過配置 properties 屬性里面的 resource 值來飲用外部屬性文件。通過 environments 配置適應(yīng)多種環(huán)境,有助于應(yīng)用多種數(shù)據(jù)庫配置,來配置環(huán)境參數(shù)。 通過配置 mappers 中的 package 標(biāo)簽中的 name 參數(shù)來映射文件查找策略; 心映射文件:通過配置 mapper 標(biāo)簽中的 namespace 屬性來指定命名空間。通過設(shè)置resultMap 結(jié)果映射標(biāo)簽來描述如何從數(shù)據(jù)庫結(jié)果集中加載對(duì)象。通過設(shè)置 insert 標(biāo)簽、update 標(biāo)簽、 delete 標(biāo)簽、 select 標(biāo)簽來對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行增刪改查的操作。 31 5. 系統(tǒng)功能實(shí)現(xiàn) 繼需求分析以及系統(tǒng)設(shè)計(jì)等階段后,就著手開始系統(tǒng)功能實(shí)現(xiàn)階段。將系統(tǒng)從技術(shù)層面提升到物理層面上,使用戶能夠直接通過一個(gè)直觀的界面操縱數(shù)據(jù)。是之前各個(gè)階段的結(jié)合。 登陸頁面實(shí)現(xiàn) 描述 為了保證各用戶可以分別管理自己的信息,并保證系統(tǒng)以及用戶信息的安全性,在使用該系統(tǒng)之前,需要對(duì)用戶身份以及賬戶信息進(jìn)行驗(yàn)證。(即驗(yàn)證用戶的賬號(hào)及密碼) 程序運(yùn)行效果圖如圖 所示: 圖 系統(tǒng)登陸頁面設(shè)計(jì) 32 實(shí)現(xiàn)過程 在登陸頁面輸入賬號(hào)和密碼,點(diǎn)擊登陸按鈕,跳轉(zhuǎn)到登陸的 service 中 ,在該 service中會(huì)對(duì)用戶名,密碼的正確性進(jìn)行判斷,驗(yàn)證通過進(jìn)入 中。由于 doGet 方法的安全性不如 doPost方法的安全性高,故將這里的 doPost方法寫入 doGet方法。在 doPost方法中寫入我們的主要操作。 ( 1)在登錄頁面中,使用的是 MyBatis 框架,故需要在一開始通過 resource 來加載配置文件和映射文件( ); ( 2)構(gòu)造 讀取 xml 文件 的方式。 需要 創(chuàng)建 SqlSessionFactory 類的實(shí)例(相當(dāng)于是產(chǎn)生連接池) , 通過調(diào)用 SqlSessionFactoryBuilder 類的實(shí)例的 build 方法來完成。 正如它名字暗示那樣 ; ( 3) 通過 SqlSessionFactory 來創(chuàng)建一個(gè) SqlSession 實(shí)例。 SqlSession 包含了所有執(zhí)行數(shù)據(jù)庫 SQL 語句的方 法 ,然后可以 通過 SqlSession 實(shí)例執(zhí)行映射 SQL 語句 ; ( 4)通過 session 中的 getMapper 方法從會(huì)話中獲取 mapper,從而得到相應(yīng)數(shù)據(jù)庫中的 userid 和 password,并對(duì) userid 和 password 的正確性進(jìn)行驗(yàn)證;( 5)最后,關(guān)閉會(huì)話。 關(guān)鍵代碼如下: SqlSession session = (true)。 try { UserDao userDao = ()。 User user = new User()。 user = (userid)。 if(user!=null amp。amp。 ().equals(password)){ (true)。 }else{ (false)。 } } finally { ()。 } 33 注冊(cè)頁面實(shí)現(xiàn) 描述 在用戶沒有 i 健康賬號(hào)的時(shí)候,如果需要進(jìn)行購買、查看訂單等操作時(shí),需要注冊(cè)一個(gè)用戶。其中包括:賬號(hào)、密碼、姓名、年齡、聯(lián)系方式、性別等用戶的基本信息。 程序運(yùn)行效果圖如圖 所示: 34 圖 系統(tǒng)注冊(cè)頁面設(shè)計(jì) 實(shí)現(xiàn)過程 在注冊(cè)頁面的第一個(gè)標(biāo)簽頁:設(shè)置登錄名中,輸入賬號(hào)和密碼,點(diǎn)擊下一步按鈕,跳轉(zhuǎn)到注冊(cè)的 service 中,在該 service 中會(huì)對(duì)用戶名,密碼輸入的正確性進(jìn)行判斷。驗(yàn)證通過進(jìn)入下一個(gè)標(biāo)簽頁:填寫賬戶信息,輸入姓名、性別、年齡、電話、郵箱、所在地區(qū)等,點(diǎn)擊注冊(cè)按鈕,跳轉(zhuǎn)到注冊(cè)的 service 中,在該 service 中對(duì)用戶的信息進(jìn)行添加。 ( 1)在注冊(cè)頁面中,使用的是 MyBatis 框架,通過 resource 來加載配置文件和映射文件( ); ( 2) 通過調(diào)用 SqlSessionFactoryBuilder 類的實(shí)例的 build 方法來 構(gòu)造 讀取 xml 文件 的方式 SqlSessionFactory ( 3) 通過 SqlSessionFactory 創(chuàng)建 SqlSession 實(shí)例 來執(zhí)行映射 SQL 語句; ( 4)通過 session 中的 getMapper 方法從會(huì)話中獲取 mapper,從而得到相應(yīng)數(shù)據(jù)庫中的 userid 以及用戶的其他重要信息,并通過 中的條件判斷語句 user==null 來 驗(yàn)證輸入用戶是否為空,如果不為空則該用戶是否存在,如果不存在則跳轉(zhuǎn)到 中,獲取各個(gè)字段的值、創(chuàng)建新用戶設(shè)置各個(gè)字段的值、增加該用戶信息到數(shù)據(jù)庫中 ; 35 ( 5)最后,關(guān)閉會(huì)話。 關(guān)鍵代碼如下: String userid = (userid)。 (userid)。 (users)。 信息管理實(shí)現(xiàn) 的左邊欄中的無序列表中每個(gè) li列都對(duì)應(yīng)一個(gè) src,通過鼠標(biāo)點(diǎn)擊觸發(fā)事件,而跳轉(zhuǎn)到相應(yīng)的頁面。 用戶信息管理 在后臺(tái)管理界面中,在左側(cè)欄中選擇用戶信息,進(jìn)入用戶信息管理界面。上面主要顯示了各個(gè)用戶的基本信息(包括賬號(hào)、姓名、密碼、性別、年齡、聯(lián)系方式、郵箱、住址等內(nèi)容)??梢赃M(jìn)行用戶信息的增刪改查操作。 程序運(yùn)行效果圖如圖 所示 圖 用戶信息管理頁面設(shè)計(jì) 用戶信息錄入 管理員登陸到用戶管理界面后,鼠標(biāo)右擊選擇添加或者直接選擇添加按鈕 ,均可彈出添加用戶信息窗口,在該窗口中進(jìn)行用戶信息添加即可。如果信息輸入有誤,則彈出出錯(cuò)提示。否則,添加成功,并在該頁面中顯示出剛添加用戶的信息。 所示: 36 圖 用戶信息添加頁面設(shè)計(jì) 3. 實(shí)現(xiàn)過程 ( 1)有關(guān) doGet 和 doPost 方法與之前的用戶登錄與注冊(cè)頁面基本相同,故再之后的描述中均不再贅述,如需要,可以轉(zhuǎn)到之前的登錄和注冊(cè)描述中查看; ( 2)有關(guān)于中文亂碼的解決。通過對(duì) req 和 resp 的 setCharacterEncoding 屬性為UTF8 來解決在代碼及數(shù)據(jù) 庫中出現(xiàn)的中文亂碼問題; ( 3)通過 jdbc 連接到數(shù)據(jù)庫。 創(chuàng)建一個(gè) DBHelp 對(duì)象來將錄入的信息插入數(shù)據(jù)庫中。 主要代碼如下: String sql = insert into user values(?,?,?,?,?,?,?,?)。 boolean boo = new DBHelp().exeSQL(sql,userid,username,password,sex,age,tel,,address)。 用戶信息修改 管理員登陸到用戶管理界面后,單擊選中要修改用戶信息的行,鼠標(biāo)右擊選擇修改,方可彈出修改窗口,在該窗口中進(jìn)行該用戶信息的修改即可。如果信息輸入有誤,則彈出出錯(cuò)提示。否則,修改成功,并在該頁面中顯示出剛添加用戶的信息。 37 所示: 圖 用戶信息修改頁面設(shè)計(jì) ( 1)先通過 ()方法得到通過 Post 方法提交過來的數(shù)據(jù)。 (
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1