版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
-.z.綜合實(shí)驗(yàn)藍(lán)宇快遞打印系統(tǒng)文檔:鵬高目錄一綜合實(shí)驗(yàn)問題的需求分析1.1實(shí)驗(yàn)容和實(shí)驗(yàn)?zāi)康?.2問題描述1.3設(shè)計(jì)要求和功能描述二總體設(shè)計(jì)2.1系統(tǒng)目標(biāo)2.2構(gòu)建開發(fā)環(huán)境2.3系統(tǒng)功能結(jié)構(gòu)三數(shù)據(jù)庫設(shè)計(jì)3.1數(shù)據(jù)庫概要說明3.2數(shù)據(jù)庫E-R圖3.3數(shù)據(jù)庫結(jié)構(gòu)四公共類設(shè)計(jì)4.1公共類DAO4.2公共類SaveUserStateTool五程序主要系統(tǒng)開發(fā)六調(diào)試與測(cè)試實(shí)驗(yàn)結(jié)果七實(shí)驗(yàn)總結(jié)參考文獻(xiàn)附錄(源代碼)一綜合實(shí)驗(yàn)問題的需求分析1.1實(shí)驗(yàn)容和實(shí)驗(yàn)?zāi)康模?)開發(fā)一個(gè)快遞打印系統(tǒng),以支持表單容的記錄與打印。(2)通過本次綜合實(shí)驗(yàn),更進(jìn)一步的了解和掌握J(rèn)ava語言。1.2問題描述隨著社會(huì)的發(fā)展,人們的生活節(jié)奏不斷加快。為了節(jié)約寶貴的時(shí)間,快遞業(yè)務(wù)應(yīng)運(yùn)而生。在快遞過程中,需要填寫大量的表單。如果使用計(jì)算機(jī)來輔助填寫及保存相應(yīng)的記錄,則能大大提高快遞的效率。因此,需要開發(fā)一個(gè)快遞打印系統(tǒng)。該系統(tǒng)應(yīng)該支持快速錄入關(guān)鍵信息,例如發(fā)件人和收件人的、和地址等,快遞物品的信息等。并將其保存在數(shù)據(jù)庫中以便以后查看。1.3設(shè)計(jì)要求和功能描述通過以上對(duì)快遞系統(tǒng)的了解,要求其具備如下功能:(1)具有安全可靠的登陸系統(tǒng)。(2)能夠添加快遞單信息。(3)可以修改快遞單信息。(4)可以打印快遞單信息。(5)進(jìn)入系統(tǒng)后,可以通過“添加用戶”功能添加新的用戶信息。(6)能修改密碼,提高系統(tǒng)的安全性。二總體設(shè)計(jì)2.1系統(tǒng)目標(biāo)通過對(duì)系統(tǒng)進(jìn)行深入的分析得知,本系統(tǒng)需要實(shí)現(xiàn)以下目標(biāo):(1)操作簡單方便,界面整潔大方。(2)保證系統(tǒng)的安全性。(3)方便添加和修改快遞信息。(4)完成快遞單的打印功能。(5)支持用戶添加和密碼修改操作。2.2構(gòu)建開發(fā)環(huán)境操作系統(tǒng):Windows7旗艦版JDK版本:jdk-7u3-windows-i586IDE版本:IndigoServiceRelease2開發(fā)語言:Java后臺(tái)數(shù)據(jù)庫:SQLServer2005分辨率:最佳效果1024×768像素2.3系統(tǒng)功能結(jié)構(gòu)在需求分析的基礎(chǔ)上,確定了該系統(tǒng)需要實(shí)現(xiàn)的功能。根據(jù)功能設(shè)計(jì)出該系統(tǒng)的功能結(jié)構(gòu)圖,如下圖所示。三數(shù)據(jù)庫設(shè)計(jì)3.1數(shù)據(jù)庫概要說明本系統(tǒng)采用SQLServer2005作為后臺(tái)數(shù)據(jù)庫。根據(jù)需求分析和功能結(jié)構(gòu)圖,為整個(gè)系統(tǒng)設(shè)計(jì)了兩個(gè)數(shù)據(jù)表,分別用于存儲(chǔ)快遞單信息和用戶信息。根據(jù)這兩個(gè)表的存儲(chǔ)信息和功能,分別設(shè)計(jì)對(duì)應(yīng)的E-R圖和數(shù)據(jù)表。3.2數(shù)據(jù)庫E-R圖快遞單信息表tb_receiveSendMessage的E-R圖,如左圖所示。用戶信息表tb_user的E-R圖,如右圖所示。3.3數(shù)據(jù)庫結(jié)構(gòu)四公共類設(shè)計(jì)公共類DAO,用于加載數(shù)據(jù)庫驅(qū)動(dòng)及建立數(shù)據(jù)庫連接。具體設(shè)計(jì)如下:package.zzk.dao;importjava.sql.Connection;importjava.sql.DriverManager;importjava*.swing.JOptionPane;publicclassDAO{privatestaticDAOdao=newDAO();//聲明DAO類的靜態(tài)實(shí)例/***構(gòu)造方法,加載數(shù)據(jù)庫驅(qū)動(dòng)*/publicDAO(){try{Class.forName("net.sourceforge.jtds.jdbc.Driver");//加載數(shù)據(jù)庫驅(qū)動(dòng)}catch(ClassNotFoundE*ceptione){JOptionPane.showMessageDialog(null,"數(shù)據(jù)庫驅(qū)動(dòng)加載失敗,請(qǐng)將JTDS驅(qū)動(dòng)配置到構(gòu)建路徑中。\n"+e.getMessage());}}/***獲得數(shù)據(jù)庫連接的方法**returnConnection*/publicstaticConnectiongetConn(){try{Connectionconn=null;//定義數(shù)據(jù)庫連接Stringurl="jdbc:jtds:sqlserver://localhost:1433/db_E*pressPrint";//數(shù)據(jù)庫db_E*press的URLStringusername="sa";//數(shù)據(jù)庫的用戶名Stringpassword="";//數(shù)據(jù)庫密碼conn=DriverManager.getConnection(url,username,password);//建立連接returnconn;//返回連接}catch(E*ceptione){JOptionPane.showMessageDialog(null,"數(shù)據(jù)庫連接失敗。\n請(qǐng)檢查數(shù)據(jù)庫用戶名和密碼是否正確。"+e.getMessage());returnnull;}}}公共類SaveUserStateTool,用于保存登錄用戶的用戶名和密碼。該類主要用于修改用戶的密碼。具體實(shí)現(xiàn)如下:package.zzk.tool;publicclassSaveUserStateTool{privatestaticStringusername=null;privatestaticStringpassword=null;publicstaticvoidsetUsername(Stringusername){SaveUserStateTool.username=username;}publicstaticStringgetUsername(){returnusername;}publicstaticvoidsetPassword(Stringpassword){SaveUserStateTool.password=password;}publicstaticStringgetPassword(){returnpassword;}}五程序主要系統(tǒng)開發(fā)1.系統(tǒng)登錄系統(tǒng)設(shè)計(jì)(1)用于封裝用戶輸入的登錄信息的User設(shè)計(jì):(2)用于封裝用戶名和密碼進(jìn)行驗(yàn)證的UserDao類設(shè)計(jì):2.系統(tǒng)主界面系統(tǒng)設(shè)計(jì)3.添加快遞信息系統(tǒng)設(shè)計(jì)4.修改快遞信息系統(tǒng)設(shè)計(jì)5.打印快遞單與打印設(shè)置系統(tǒng)設(shè)計(jì)6.添加用戶窗體系統(tǒng)設(shè)計(jì)7.修改用戶密碼窗體系統(tǒng)設(shè)計(jì)六調(diào)試與測(cè)試實(shí)驗(yàn)結(jié)果(附注:用戶使用說明及實(shí)驗(yàn)結(jié)果如下:)(1)程序說明本程序使用SQLServer2005數(shù)據(jù)庫開發(fā),導(dǎo)入項(xiàng)目以后需要再對(duì)數(shù)據(jù)庫進(jìn)行配置,配置完數(shù)據(jù)庫運(yùn)行項(xiàng)目啟動(dòng)文件src//zzk/frame/LoginFrame.java就可以運(yùn)行程序了。(2)操作流程(1)啟動(dòng)程序以后,顯示藍(lán)宇快遞打印系統(tǒng)登錄界面,如圖1所示:圖1登錄界面(2)輸入用戶、與密碼之后,進(jìn)入主界面,如圖2所示,系統(tǒng)默認(rèn)用戶名mr,密碼mrsoft。(3)進(jìn)入主界面可以對(duì)快遞單進(jìn)行各種操作,如圖3所示:七實(shí)驗(yàn)總結(jié)通過本次綜合實(shí)驗(yàn),我進(jìn)一步了解和掌握了Java中類的概念和定義,繼承和接口的概念和語法。通過實(shí)驗(yàn),我也進(jìn)一步了解和掌握了Java中GUI的實(shí)現(xiàn)和用法以及數(shù)據(jù)庫等基本操作。當(dāng)然,在實(shí)驗(yàn)的過程中,也遇到了很多問題,但在老師和同學(xué)的幫助和指導(dǎo)下終于解決了。對(duì)于本次的打印系統(tǒng)綜合實(shí)驗(yàn),不僅使我認(rèn)識(shí)到了自己在Java語言學(xué)習(xí)中的不足,而且增進(jìn)了我對(duì)Java語言學(xué)習(xí)和編程的興趣和能力。也為后續(xù)Java的學(xué)習(xí)打下了一個(gè)良好的基礎(chǔ)。參考文獻(xiàn):《Java應(yīng)用開發(fā)與實(shí)踐》--乃琦暢主編?!禞ava從初學(xué)到精通》--辛立偉帆編著附錄(源代碼如下:)package快遞打印系統(tǒng);importjava.awt.*;importjava*.swing.*;importjava*.swing.SwingUtilities;importjava*.swing.WindowConstants;importjava*.swing.ImageIcon;import;import;importjava.awt.print.PageFormat;importjava.awt.print.Printable;importjava.awt.print.PrinterJob;importjava.util.Vector;import;importjava.util.Arrays;importjava.sql.*;importjava.sql.SQLE*ception;importjava*.swing.JOptionPane;importjava.sql.DriverManager;//////////////////////////////////////classUser{privateStringname=null;privateStringpwd=null;privateStringokPwd=null;publicStringgetName(){returnname;}publicvoidsetName(Stringname){=name;}publicStringgetPwd(){returnpwd;}publicvoidsetPwd(Stringpwd){this.pwd=pwd;}publicvoidsetOkPwd(StringokPwd){this.okPwd=okPwd;}publicStringgetOkPwd(){returnokPwd;}}classE*pressMessage{privateintid=0;privateStringsendName=null;privateStringsendTelephone=null;privateStringsendpary=null;privateStringsendAddress=null;privateStringsendPostcode=null;privateStringreceiveName=null;privateStringreceiveTelephone=null;privateStringreceivepary=null;privateStringreceiveAddress=null;privateStringreceivePostcode=null;privateStringControlPosition=null;//快遞單上添加信息的組件位置(坐標(biāo))privateStringe*pressSize=null;//快遞單的尺寸(大小)publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetSendName(){returnsendName;}publicvoidsetSendName(StringsendName){this.sendName=sendName;}publicStringgetSendTelephone(){returnsendTelephone;}publicvoidsetSendTelephone(StringsendTelephone){this.sendTelephone=sendTelephone;}publicStringgetSendpary(){returnsendpary;}publicvoidsetSendpary(Stringsendpary){this.sendpary=sendpary;}publicStringgetSendAddress(){returnsendAddress;}publicvoidsetSendAddress(StringsendAddress){this.sendAddress=sendAddress;}publicStringgetSendPostcode(){returnsendPostcode;}publicvoidsetSendPostcode(StringsendPostcode){this.sendPostcode=sendPostcode;}publicStringgetReceiveName(){returnreceiveName;}publicvoidsetReceiveName(StringreceiveName){this.receiveName=receiveName;}publicStringgetReceiveTelephone(){returnreceiveTelephone;}publicvoidsetReceiveTelephone(StringrecieveTelephone){this.receiveTelephone=recieveTelephone;}publicStringgetReceivepary(){returnreceivepary;}publicvoidsetReceivepary(Stringrecievepary){this.receivepary=recievepary;}publicStringgetReceiveAddress(){returnreceiveAddress;}publicvoidsetReceiveAddress(StringreceiveAddress){this.receiveAddress=receiveAddress;}publicStringgetReceivePostcode(){returnreceivePostcode;}publicvoidsetReceivePostcode(StringreceivePostcode){this.receivePostcode=receivePostcode;}publicStringgetControlPosition(){returnControlPosition;}publicvoidsetControlPosition(StringcontrolPosition){ControlPosition=controlPosition;}publicStringgetE*pressSize(){returne*pressSize;}publicvoidsetE*pressSize(Stringe*pressSize){this.e*pressSize=e*pressSize;}}classE*pressMessageDao{publicstaticvoidinsertE*press(E*pressMessagem){if(m.getSendName()==null||m.getSendName().trim().equals("")){JOptionPane.showMessageDialog(null,"寄件人信息必須填寫。");return;}if(m.getSendTelephone()==null||m.getSendTelephone().trim().equals("")){JOptionPane.showMessageDialog(null,"寄件人信息必須填寫。");return;}if(m.getSendpary()==null||m.getSendpary().trim().equals("")){JOptionPane.showMessageDialog(null,"寄件人信息必須填寫。");return;}if(m.getSendAddress()==null||m.getSendAddress().trim().equals("||")){JOptionPane.showMessageDialog(null,"寄件人信息必須填寫。");return;}if(m.getSendPostcode()==null||m.getSendPostcode().trim().equals("")){JOptionPane.showMessageDialog(null,"寄件人信息必須填寫。");return;}if(m.getReceiveName()==null||m.getReceiveName().trim().equals("")){JOptionPane.showMessageDialog(null,"收件人信息必須填寫。");return;}if(m.getReceiveTelephone()==null||m.getReceiveTelephone().trim().equals("")){JOptionPane.showMessageDialog(null,"收件人信息必須填寫。");return;}if(m.getReceivepary()==null||m.getReceivepary().trim().equals("")){JOptionPane.showMessageDialog(null,"收件人信息必須填寫。");return;}if(m.getReceiveAddress()==null||m.getReceiveAddress().trim().equals("||")){JOptionPane.showMessageDialog(null,"收件人信息必須填寫。");return;}if(m.getReceivePostcode()==null||m.getReceivePostcode().trim().equals("")){JOptionPane.showMessageDialog(null,"收件人信息必須填寫。");return;}Connectionconn=null;//聲明數(shù)據(jù)庫連接//聲明PreparedStatement對(duì)象PreparedStatementps=null;try{conn=DAO.getConn();//獲得數(shù)據(jù)庫連接//創(chuàng)建PreparedStatement對(duì)象,并傳遞SQL語句ps=conn.prepareStatement("insertintotb_receiveSendMessage(sendName,sendTelephone,sendpary,sendAddress,sendPostcode,receiveName,recieveTelephone,recievepary,receiveAddress,receivePostcode,ControlPosition,e*pressSize)values(",",",",",",",",",",",")");ps.setString(1,m.getSendName());//為參數(shù)賦值ps.setString(2,m.getSendTelephone());ps.setString(3,m.getSendpary());ps.setString(4,m.getSendAddress());ps.setString(5,m.getSendPostcode());ps.setString(6,m.getReceiveName());//為參數(shù)賦值ps.setString(7,m.getReceiveTelephone());ps.setString(8,m.getReceivepary());ps.setString(9,m.getReceiveAddress());ps.setString(10,m.getReceivePostcode());ps.setString(11,m.getControlPosition());//為參數(shù)賦值ps.setString(12,m.getE*pressSize());intflag=ps.e*ecuteUpdate();if(flag>0){JOptionPane.showMessageDialog(null,"添加成功。");}else{JOptionPane.showMessageDialog(null,"添加失敗。");}}catch(E*ceptione*){JOptionPane.showMessageDialog(null,"添加失??!");e*.printStackTrace();}finally{try{if(ps!=null){ps.close();}if(conn!=null){conn.close();}}catch(SQLE*ceptione){e.printStackTrace();}}}publicstaticvoidupdateE*press(E*pressMessagem){Connectionconn=null;//聲明數(shù)據(jù)庫連接//聲明PreparedStatement對(duì)象PreparedStatementps=null;try{conn=DAO.getConn();//獲得數(shù)據(jù)庫連接//創(chuàng)建PreparedStatement對(duì)象,并傳遞SQL語句ps=conn.prepareStatement("updatetb_receiveSendMessagesetsendName=",sendTelephone=",sendpary=",sendAddress=",sendPostcode=",receiveName=",recieveTelephone=",recievepary=",receiveAddress=",receivePostcode=",ControlPosition=",e*pressSize="whereid="");ps.setString(1,m.getSendName());//為參數(shù)賦值ps.setString(2,m.getSendTelephone());ps.setString(3,m.getSendpary());ps.setString(4,m.getSendAddress());ps.setString(5,m.getSendPostcode());ps.setString(6,m.getReceiveName());//為參數(shù)賦值ps.setString(7,m.getReceiveTelephone());ps.setString(8,m.getReceivepary());ps.setString(9,m.getReceiveAddress());ps.setString(10,m.getReceivePostcode());ps.setString(11,m.getControlPosition());//為參數(shù)賦值ps.setString(12,m.getE*pressSize());ps.setInt(13,m.getId());intflag=ps.e*ecuteUpdate();if(flag>0){JOptionPane.showMessageDialog(null,"修改成功。");}else{JOptionPane.showMessageDialog(null,"修改失敗。");}}catch(E*ceptione*){JOptionPane.showMessageDialog(null,"修改失??!"+e*.getMessage());e*.printStackTrace();}finally{try{if(ps!=null){ps.close();}if(conn!=null){conn.close();}}catch(SQLE*ceptione){e.printStackTrace();}}}publicstaticVector<E*pressMessage>queryE*press(){Connectionconn=null;//聲明數(shù)據(jù)庫連接//聲明PreparedStatement對(duì)象PreparedStatementps=null;try{conn=DAO.getConn();//獲得數(shù)據(jù)庫連接//創(chuàng)建PreparedStatement對(duì)象,并傳遞SQL語句ps=conn.prepareStatement("selectsendName,sendTelephone,sendpary,sendAddress,sendPostcode,receiveName,recieveTelephone,recievepary,receiveAddress,receivePostcode,ControlPosition,e*pressSizefromtb_receiveSendMessage");ResultSetrs=ps.e*ecuteQuery();Vector<E*pressMessage>v=newVector<E*pressMessage>();while(rs.ne*t()){E*pressMessagem=newE*pressMessage();m.setSendName(rs.getString(1));m.setSendTelephone(rs.getString(2));m.setSendpary(rs.getString(3));m.setSendAddress(rs.getString(4));m.setSendPostcode(rs.getString(5));m.setReceiveName(rs.getString(6));m.setReceiveTelephone(rs.getString(7));m.setReceivepary(rs.getString(8));m.setReceiveAddress(rs.getString(9));m.setReceivePostcode(rs.getString(10));m.setControlPosition(rs.getString(11));m.setE*pressSize(rs.getString(12));v.add(m);}returnv;}catch(E*ceptione*){e*.printStackTrace();returnnull;}finally{try{if(ps!=null){ps.close();}if(conn!=null){conn.close();}}catch(SQLE*ceptione){e.printStackTrace();}}}publicstaticVector<E*pressMessage>queryAllE*press(){Connectionconn=null;//聲明數(shù)據(jù)庫連接//聲明PreparedStatement對(duì)象PreparedStatementps=null;try{conn=DAO.getConn();//獲得數(shù)據(jù)庫連接//創(chuàng)建PreparedStatement對(duì)象,并傳遞SQL語句ps=conn.prepareStatement("selectid,sendName,sendTelephone,sendpary,sendAddress,sendPostcode,receiveName,recieveTelephone,recievepary,receiveAddress,receivePostcode,ControlPosition,e*pressSizefromtb_receiveSendMessage");ResultSetrs=ps.e*ecuteQuery();Vector<E*pressMessage>v=newVector<E*pressMessage>();while(rs.ne*t()){E*pressMessagem=newE*pressMessage();m.setId(rs.getInt(1));m.setSendName(rs.getString(2));m.setSendTelephone(rs.getString(3));m.setSendpary(rs.getString(4));m.setSendAddress(rs.getString(5));m.setSendPostcode(rs.getString(6));m.setReceiveName(rs.getString(7));m.setReceiveTelephone(rs.getString(8));m.setReceivepary(rs.getString(9));m.setReceiveAddress(rs.getString(10));m.setReceivePostcode(rs.getString(11));m.setControlPosition(rs.getString(12));m.setE*pressSize(rs.getString(13));v.add(m);}returnv;}catch(E*ceptione*){e*.printStackTrace();returnnull;}finally{try{if(ps!=null){ps.close();}if(conn!=null){conn.close();}}catch(SQLE*ceptione){e.printStackTrace();}}}}classDAO{privatestaticDAOdao=newDAO();//聲明DAO類的靜態(tài)實(shí)例/***構(gòu)造方法,加載數(shù)據(jù)庫驅(qū)動(dòng)*/publicDAO(){try{Class.forName("net.sourceforge.jtds.jdbc.Driver");//加載數(shù)據(jù)庫驅(qū)動(dòng)}catch(ClassNotFoundE*ceptione){JOptionPane.showMessageDialog(null,"數(shù)據(jù)庫驅(qū)動(dòng)加載失敗,請(qǐng)將JTDS驅(qū)動(dòng)配置到構(gòu)建路徑中。\n"+e.getMessage());}}/***獲得數(shù)據(jù)庫連接的方法**returnConnection*/publicstaticConnectiongetConn(){try{Connectionconn=null;//定義數(shù)據(jù)庫連接Stringurl="jdbc:jtds:sqlserver://localhost:1433/db_E*pressPrint";//數(shù)據(jù)庫db_E*press的URLStringusername="sa";//數(shù)據(jù)庫的用戶名Stringpassword="";//數(shù)據(jù)庫密碼conn=DriverManager.getConnection(url,username,password);//建立連接returnconn;//返回連接}catch(E*ceptione){JOptionPane.showMessageDialog(null,"數(shù)據(jù)庫連接失敗。\n請(qǐng)檢查數(shù)據(jù)庫用戶名和密碼是否正確。"+e.getMessage());returnnull;}}}classUserDao{/***判斷用戶名和密碼的方法**paramuser*實(shí)體類User的實(shí)例*/publicstaticbooleanokUser(Useruser){Connectionconn=null;try{Stringusername=user.getName();Stringpwd=user.getPwd();conn=DAO.getConn();//獲得數(shù)據(jù)庫連接//創(chuàng)建PreparedStatement對(duì)象,并傳遞SQL語句PreparedStatementps=conn.prepareStatement("selectpasswordfromtb_userwhereusername="");ps.setString(1,username);//為參數(shù)賦值ResultSetrs=ps.e*ecuteQuery();//執(zhí)行SQL語句,獲得查詢結(jié)果集if(rs.ne*t()&&rs.getRow()>0){//查詢到用戶信息Stringpassword=rs.getString(1);//獲得密碼if(password.equals(pwd)){SaveUserStateTool.setUsername(username);SaveUserStateTool.setPassword(pwd);returntrue;//密碼正確返回true}else{JOptionPane.showMessageDialog(null,"密碼不正確。");returnfalse;//密碼錯(cuò)誤返回false}}else{JOptionPane.showMessageDialog(null,"用戶名不存在。");returnfalse;//用戶不存在返回false}}catch(E*ceptione*){JOptionPane.showMessageDialog(null,"數(shù)據(jù)庫異常!\n"+e*.getMessage());returnfalse;//數(shù)據(jù)庫異常返回false}finally{if(conn!=null){try{conn.close();}catch(SQLE*ceptione){e.printStackTrace();}}}}/***添加用戶信息的方法**paramuser*實(shí)體類User的實(shí)例*/publicstaticvoidinsertUser(Useruser){Connectionconn=null;try{Stringusername=user.getName();//獲得用戶名Stringpwd=user.getPwd();//獲得密碼StringokPwd=user.getOkPwd();//獲得確認(rèn)密碼if(username==null||username.trim().equals("")||pwd==null||pwd.trim().equals("")||okPwd==null||okPwd.trim().equals("")){JOptionPane.showMessageDialog(null,"用戶名或密碼不能為空。");return;}if(!pwd.trim().equals(okPwd.trim())){JOptionPane.showMessageDialog(null,"兩次輸入的密碼不一致。");return;}conn=DAO.getConn();//獲得數(shù)據(jù)庫連接//創(chuàng)建PreparedStatement對(duì)象,并傳遞SQL語句PreparedStatementps=conn.prepareStatement("insertintotb_user(username,password)values(",")");ps.setString(1,username.trim());//為參數(shù)賦值ps.setString(2,pwd.trim());//為參數(shù)賦值intflag=ps.e*ecuteUpdate();//執(zhí)行SQL語句if(flag>0){JOptionPane.showMessageDialog(null,"添加成功。");}else{JOptionPane.showMessageDialog(null,"添加失敗。");}}catch(E*ceptione*){JOptionPane.showMessageDialog(null,"用戶名重復(fù),請(qǐng)換個(gè)名稱!");return;}finally{try{if(conn!=null){conn.close();//關(guān)閉數(shù)據(jù)庫連接對(duì)象}}catch(E*ceptione*){}}}/***修改用戶密碼的方法**paramoldPwd*原密碼*paramnewPwd*新密碼*paramokPwd*確認(rèn)新密碼*/publicstaticvoidupdateUser(StringoldPwd,StringnewPwd,StringokPwd){try{if(!newPwd.trim().equals(okPwd.trim())){JOptionPane.showMessageDialog(null,"兩次輸入的密碼不一致。");return;}if(!oldPwd.trim().equals(SaveUserStateTool.getPassword())){JOptionPane.showMessageDialog(null,"原密碼不正確。");return;}Connectionconn=DAO.getConn();//獲得數(shù)據(jù)庫連接//創(chuàng)建PreparedStatement對(duì)象,并傳遞SQL語句PreparedStatementps=conn.prepareStatement("updatetb_usersetpassword="whereusername="");ps.setString(1,newPwd.trim());//為參數(shù)賦值ps.setString(2,SaveUserStateTool.getUsername());//為參數(shù)賦值intflag=ps.e*ecuteUpdate();//執(zhí)行SQL語句if(flag>0){JOptionPane.showMessageDialog(null,"修改成功。");}else{JOptionPane.showMessageDialog(null,"修改失敗。");}ps.close();conn.close();//關(guān)閉數(shù)據(jù)庫連接}catch(E*ceptione*){JOptionPane.showMessageDialog(null,"數(shù)據(jù)庫異常!"+e*.getMessage());return;}}}classTest{privatestaticString[]split(Stringte*t){intlength=te*t.length();if(length<20){returnnewString[]{te*t};}elseif(length%20==0){//如果字符串長度是20的整數(shù)倍length/=20;//截取后字符串的個(gè)數(shù)是長度除20的商String[]subStrings=newString[length];for(inti=0;i<subStrings.length;i++){//使用循環(huán)截取subStrings[i]=te*t.substring(20*i,20*(i+1));}returnsubStrings;}else{//如果字符串長度不是20的整數(shù)倍length=length/20+1;//截取后字符串的個(gè)數(shù)是長度除20的商再加一String[]subStrings=newString[length];for(inti=0;i<subStrings.length-1;i++){//使用循環(huán)截取20整數(shù)倍的字符串subStrings[i]=te*t.substring(20*i,20*(i+1));}//截取尾部剩余的字符串subStrings[length-1]=te*t.substring(20*(length-1),te*t.length());returnsubStrings;}}publicstaticvoidmain(String[]args){Stringte*t="123456";String[]array=split(te*t);System.out.println(Arrays.toString(array));}}classSaveUserStateTool{privatestaticStringusername=null;privatestaticStringpassword=null;publicstaticvoidsetUsername(Stringusername){SaveUserStateTool.username=username;}publicstaticStringgetUsername(){returnusername;}publicstaticvoidsetPassword(Stringpassword){SaveUserStateTool.password=password;}publicstaticStringgetPassword(){returnpassword;}}classBackgroundPanele*tendsJPanel{privatestaticfinallongserialVersionUID=1L;privateImageimage;//定義圖像對(duì)象publicBackgroundPanel(Imageimage){super();//調(diào)用超類的構(gòu)造方法this.image=image;//為圖像對(duì)象賦值initialize();}/**重寫paintponent方法*/Overrideprotectedvoidpaintponent(Graphicsg){super.paintponent(g);//調(diào)用父類的方法Graphics2Dg2=(Graphics2D)g;//創(chuàng)建Graphics2D對(duì)象if(image!=null){intwidth=getWidth();//獲得面板的寬度intheight=getHeight();//獲得面板的高度//繪制圖像g2.drawImage(image,0,0,width,height,this);}}privatevoidinitialize(){this.setSize(300,200);}}classUpdatePasswordFramee*tendsJFrame{privatestaticfinallongserialVersionUID=1L;privateJPaneljContentPane=null;privateJLabeljLabel=null;privateJLabeljLabel1=null;privateJLabeljLabel2=null;privateJPasswordFieldpf_oldPwd=null;privateJPasswordFieldpf_newPwd=null;privateJPasswordFieldpf_okNewPwd=null;privateuttonbtn_update=null;privateuttonbtn_return=null;/***Thismethodinitializespf_oldPwd**returnjava*.swing.JPasswordField*/privateJPasswordFieldgetPf_oldPwd(){if(pf_oldPwd==null){pf_oldPwd=newJPasswordField();pf_oldPwd.setBounds(newRectangle(93,21,185,22));pf_oldPwd.setEchoChar('*');pf_oldPwd.addActionListener(newjava.awt.event.ActionListener(){OverridepublicvoidactionPerformed(java.awt.event.ActionEvente){pf_newPwd.requestFocus();}});}returnpf_oldPwd;}/***Thismethodinitializespf_newPwd**returnjava*.swing.JPasswordField*/privateJPasswordFieldgetPf_newPwd(){if(pf_newPwd==null){pf_newPwd=newJPasswordField();pf_newPwd.setBounds(newRectangle(94,54,182,22));pf_newPwd.setEchoChar('*');pf_newPwd.addActionListener(newjava.awt.event.ActionListener(){OverridepublicvoidactionPerformed(java.awt.event.ActionEvente){pf_okNewPwd.requestFocus();}});}returnpf_newPwd;}/***Thismethodinitializespf_okNewPwd**returnjava*.swing.JPasswordField*/privateJPasswordFieldgetPf_okNewPwd(){if(pf_okNewPwd==null){pf_okNewPwd=newJPasswordField();pf_okNewPwd.setBounds(newRectangle(94,90,182,22));pf_okNewPwd.setEchoChar('*');pf_okNewPwd.addActionListener(newjava.awt.event.ActionListener(){OverridepublicvoidactionPerformed(java.awt.event.ActionEvente){StringoldPwd=newString(pf_oldPwd.getPassword());StringnewPwd=newString(pf_newPwd.getPassword());StringokPwd=newString(pf_okNewPwd.getPassword());UserDao.updateUser(oldPwd,newPwd,okPwd);}});}returnpf_okNewPwd;}/***Thismethodinitializesbtn_update**returnjava*.swing.utton*/privateuttongetBtn_update(){if(btn_update==null){btn_update=newutton();btn_update.setBounds(newRectangle(40,123,75,27));btn_update.setTe*t("修改");btn_update.addActionListener(newjava.awt.event.ActionListener(){OverridepublicvoidactionPerformed(java.awt.event.ActionEvente){StringoldPwd=newString(pf_oldPwd.getPassword());//獲得原密碼StringnewPwd=newString(pf_newPwd.getPassword());//獲得新密碼StringokPwd=newString(pf_okNewPwd.getPassword());//獲得確認(rèn)密碼UserDao.updateUser(oldPwd,newPwd,okPwd);//更新密碼}});}returnbtn_update;}/***Thismethodinitializesbtn_return**returnjava*.swing.utton*/privateuttongetBtn_return(){if(btn_return==null){btn_return=newutton();btn_return.setBounds(newRectangle(162,124,82,26));btn_return.setTe*t("返回");btn_return.addActionListener(newjava.awt.event.ActionListener(){OverridepublicvoidactionPerformed(java.awt.event.ActionEvente){dispose();}});}returnbtn_return;}/***Thisisthedefaultconstructor*/publicUpdatePasswordFrame(){super();initialize();}/***Thismethodinitializesthis**returnvoid*/privatevoidinitialize(){this.setSize(317,205);this.setContentPane(getJContentPane());this.setTitle("修改用戶密碼");}/***ThismethodinitializesjContentPane**returnjava*.swing.JPanel*/privateJPanelgetJContentPane(){if(jContentPane==null){jLabel2=newJLabel();jLabel2.setBounds(newRectangle(19,86,73,27));jLabel2.setTe*t("確認(rèn)密碼:");jLabel1=newJLabel();jLabel1.setBounds(newRectangle(20,52,70,27));jLabel1.setTe*t("新密碼:");jLabel=newJLabel();jLabel.setBounds(newRectangle(18,18,71,27));jLabel.setTe*t("原密碼:");jContentPane=newJPanel();jContentPane.setLayout(null);jContentPane.add(jLabel,null);jContentPane.add(jLabel1,null);jContentPane.add(jLabel2,null);jContentPane.add(getPf_oldPwd(),null);jContentPane.add(getPf_newPwd(),null);jContentPane.add(getPf_okNewPwd(),null);jContentPane.add(getBtn_update(),null);jContentPane.add(getBtn_return(),null);}returnjContentPane;}}classUpdateE*pressFramee*tendsJFrame{privatestaticfinallongserialVersionUID=1L;privateJPaneljContentPane=null;privateURLurl=null;//聲明圖片的URLprivateImageimage=null;//聲明圖像對(duì)象privateBackgro
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房地產(chǎn)項(xiàng)目開發(fā)內(nèi)部承包合同范本4篇
- 二零二五年度房地產(chǎn)企業(yè)員工勞動(dòng)合同示范范本
- 二零二五年度醫(yī)療機(jī)構(gòu)人員派遣及管理合同3篇
- 二零二五版模具修復(fù)與性能提升合同3篇
- 二零二四年度校園食堂特色美食開發(fā)與承包經(jīng)營合同3篇
- 二零二五年市中心區(qū)域照明系統(tǒng)智能化升級(jí)合同4篇
- 2025版農(nóng)業(yè)種養(yǎng)殖質(zhì)量安全追溯合作合同范本3篇
- 2025版山林租賃合同樣本:森林資源租賃與生態(tài)保護(hù)合作合同3篇
- 二零二五年度建筑模板腳手架安全防護(hù)設(shè)施供應(yīng)合同規(guī)范4篇
- 二零二五年度天津二手房交易合同范本(專業(yè)版)
- 蛋糕店服務(wù)員勞動(dòng)合同
- 土地買賣合同參考模板
- 2025高考數(shù)學(xué)二輪復(fù)習(xí)-專題一-微專題10-同構(gòu)函數(shù)問題-專項(xiàng)訓(xùn)練【含答案】
- 新能源行業(yè)市場(chǎng)分析報(bào)告
- 2025年天津市政建設(shè)集團(tuán)招聘筆試參考題庫含答案解析
- 巖土工程勘察.課件
- 60歲以上務(wù)工免責(zé)協(xié)議書
- 康復(fù)醫(yī)院患者隱私保護(hù)管理制度
- 2022年7月2日江蘇事業(yè)單位統(tǒng)考《綜合知識(shí)和能力素質(zhì)》(管理崗)
- 沈陽理工大學(xué)《數(shù)》2022-2023學(xué)年第一學(xué)期期末試卷
- 初一英語語法練習(xí)
評(píng)論
0/150
提交評(píng)論