From ba46ad52f6adc3f8ec5b36f8621355a2da86ac6f Mon Sep 17 00:00:00 2001 From: Xi Xu Date: Wed, 29 May 2024 17:00:17 +0800 Subject: [PATCH] Update --- bin/finalexam/Database/PasswordChange.class | Bin 4747 -> 3894 bytes .../Database/ProductAdditionAndInquiry.class | Bin 4847 -> 4708 bytes bin/finalexam/Database/UserLogin.class | Bin 3861 -> 3352 bytes src/finalexam/Database/CashierStatistics.java | 2 +- src/finalexam/Database/PasswordChange.java | 119 ++++++++---------- .../Database/PermissionJudgment.java | 2 +- .../Database/ProductAdditionAndInquiry.java | 55 ++++---- .../ProductModificationAndDeletion.java | 2 +- src/finalexam/Database/UserLogin.java | 83 ++++++------ 9 files changed, 119 insertions(+), 144 deletions(-) diff --git a/bin/finalexam/Database/PasswordChange.class b/bin/finalexam/Database/PasswordChange.class index f8521c222149524cc8e0c6dbc93e14545214e687..7bf3af292420d91f10a21f7eb0b465dd4c942bc3 100644 GIT binary patch delta 1781 zcmZ`(TWl0n82--A?wr}3>4l}G-BNmi!nV8H-D0_Q3)J3#(w0k0!J??!WrUX9?b4l= zR>2kVQbfdhyrLqYh$wOkE-fU+glM7$6M69gUrf}*CleFni-7-Zq3DCj3RqSqxeCw2hHaBB7xeC8El*K%R{SN!FV3^#N;j%Zmh&0%%iGdsz5RifSbWgvGzRogw6Q-8@UPA{uMa1f<>cS?D zjSS8-NfW9=PYgzkPTkP(0J<5hF@4xzkjg7ID|k?RWv$4q!4?e2NKC<_ zVw0_c^@zQ;Mz&RaX$!E&#GkfedAo*Q^oau5&my8lzQ|(YmOM+2V}N6)DCN0Q0*0vJ zbJ&pB!dJ3kae`OLk7GB-6XFIhmiFLDag)z4ZN*a>_Tp)V41HJ+4;p$`d~3+i)6`lN zJR{aB73?`NqLdb@=)$Om{m7)=2}k-9x{6kes%XZj7*~qLUrLYoK`9a4_TBD`P9qfF z(H@F#2=zpCj)M-waa_au=3R0`k8LxyD>xz6IV$ZZaf;(3hCC5h^PCz!#wU~nYTS5l zgqT!{`ErgpYmvp*j$Gv=KGkprXT`6M2C>KC5=APfI$T7zXjk_oEhvBuG6;Ys!UBc% zj(_b{NTj1yr!|W#0`zC}w|Ooh`+VBPNvjC}sF+TxHfewyAwjAP~|r#g<(HrCG8T!Fj$0xB*c5VT&vea=NGEOA*=SRS-F8-lXeB~PHq zf_9(PWt+fi3BC!eV^~u;fej3Yp_xvbQ+VjSDLgXe&7Gm3;&mzi^-jWPbMgPh3E#!h zr*P~p`#828My3hBgY+kF|742MDGP_o?sBBie}~JUiQ(K8RJ|^B>T<#uF>g)ZKNUxk zVUd=r9hn5*XM#gD!Jj3O0(_pC(Z0aooxlMGGyM|G^k0Ub)@&-nG)ljdsx_TAJ23CniR*fc>tf6Tzo8~3r3>L(TI7mB<`RU{kwM!=R;bn|b17$N0UV)&93t16f z#cR|~UIKodqP8KxRJ=iwOksRalx6DYD6Zixk`$txO|2nQGhW56JJNM*$JZCdI!|O2XuN6E!4L(0235 zp$N>WNf3XD{)L_tj%CZoVUtcfKN!b{dYhMyPPh9~ICq*1Cd)a40sB01G%8ZKMAzhz&l#$VCC!|MR;9xUGO^(DKPJy=fB*mh delta 2678 zcmb7GdvH|M8UKCv?%lh4cQ=U}L$cwOKp+n`Y(RN!kT)cO-C$lK5XDQlB++FPHcN;~ zy+s7H7HN9WR$3p$+E}DOEL{=>tbNd#c4~*#_7CeYPNxz6=-76gX|-cbzk7E#^)Ys8 zCb{Q3=lss^JKyho-#JN5dvsRbFF$(u5`dNXxeAF;Ds(CxoLA&j)~sr4jtn+e4W2mc z%<)2lM}#OTtC%EAY0}yv6srgj^6u9A^-xTYcZOQ-?MoWFyqJtB1gSetD2Ujz-94d( zc<-KMOEO{TyJ|HQV4B4^UA!qxmR%?vyl=8g!%WOlQ6{d?jq+@ii|cfAStaJEs3J_V zdHQz8LTeJ;{YE0H$MsGl;YASDVuiF+bE60$FKRGPj7ueSlPHmkoeQu?#X_+{E|M2x ziP$R7a224|i>0_l9F)swxi~4`RJszYRjeZ9Pxx5f6OS7m$?l%G7i+Lqd?eR9>(HR0 zUPK(z<@MMg;*N4x9im<|VxxG8Lap zV6zunu!NxYCc5LvSlojqw0m&}JOrg9*3)NrP=|I8A4j_e9UUsRvx*ZNYiWwC9q2H6 z(_7nNEz7m3T9SIlJ*^47!*F3Iq3rsZ^Vctlv4hW#T@+)F9JzMvg?Ann5yekkVw z?iSA}q1iD)kp(<`>DtB9?>uq#+VO|R&K$b-?Eb%AIIe-f(f6QNysylqgeZ5OqojDt zIn~*Z0Tp}2xU)dM7x#%mbtdf-wQ3zbAP%TC?l0p(75fRroJslOH>z7cfQQ5%)p@0L zION4)JWTKz14hT5q|w&9Lr)sEN)0Z2MO3>g>8oOst2C_PF)R9`*<-O2Y$A4+S5I{I z@#NNYhNbf_$*Oh=zk8gDOsbVmGZ_iJraIoQ8g!^5O?pWX_lo?@V^NaE4HEr+CX#J=kOy@ zr7d+0wQq zDcm(|Eitl=RDWmKbOi&hPkT}V>i=-r{l#70lXdA1xJR(-IC89w>}Dc!X#7u>-IqmZ z0e3)4VNWK$`@fho|Chp^V8AmG5PLJzp(y{A@gQNLx4`?fwF`5u{}FaEgx%II9<|M# zVFssgh_O zqn%E2O&`YVcKZR(aG&dQ$Zm(}3cZoRUFGDoa8_&KxFy4+VcU3Hf+Rzid{VVk!wc-Z zr3Y~rgY&o;Zh()S<#KNO`I#xgBuqmgX0sJUfZvB=Ea3-g6{cW4rlOT++fmOv4d~*L z7&ah*2p4pe18Ky5Y{Vf<=k1uKIEoo~oL{LYQHB$kg%_Fj9LjM46}XH_j=3JcW1=^i z=qeNanTf75(Ys9a9uvKfDtv&sLkrIz73=72#*8uMFO2ycWB$RIe<3OXjgo?ml7=S9^r2qz zqd^K_y)+dYq?w3F%gy{yH0X2w{JjKwi$t@&9C z<`74d!t`;@6II0vDhgDrR8gm*Nku>Z@{Jl%p*!(!G^a;0{SQ&X{SU2wW%?%|OSnVh ze19vSA_Ir`nBT_ne;nT*=X}m#i1~4cycPS0=d)hNS=i4|!ISalwqEk|U5`FS%Dj9^ zRSGZWIZr^5Px()e;A~_LkEEi(6ka~X^LAx%{U~g=q27(#xV$!Tf!)ppwb?%Fk~9%s iWy!%a9{d=uv716(G=iV7BTF@Yr>sZnr)*02*?$0eGDJfF diff --git a/bin/finalexam/Database/ProductAdditionAndInquiry.class b/bin/finalexam/Database/ProductAdditionAndInquiry.class index a018f7f0504351f535c16dc863ef621f8df25186..6bdd682564dcf555d3173d731f7bca35d0b0ea0d 100644 GIT binary patch delta 1994 zcmZXU>r+%^9LK-Up0np1mP5kgg@q7OZtjIuKt$xCxFD;5vVeq_a#@ZDF3W8(G-we^ zQqh!0E$xD7N-<83SX`tRO}(f$P1DP!H_en;Z}JbQhJI&3WNLQKdG@(|pWpBE{XOSN z>aQsmYaOJOl`n`c>=i-bB&ttWWM22P0X1Dvj z-Q6mZkjx+-Zttq{wrLEhe1o*yQt_W$9g^L4g61*VA5A)tH{Ad-eX8+oA^~jinJM9 zWaRTN4RJyN3i(fl6jnSUtVrL+5S{hQz{%f6Z~uPp=A$d8AMuk4wo~TWH2TNDz@wpu z3QBo_5TCOdJ5-dTkbre`wFH7Dq+_RwU8tZO16ps;9SAZA8SC8oOqGh=*u&2XX_7}p z4QlzMP;A|+q8_yjYG;qub$m}(dsB}usGxyH<_~-PVD|CssDk}GNpwaW#LF^XBJRA} z7^|u{gy-mVpTE7E|0O2#a$^!tFgjwQYJy(h(MoSet+&yy$vDct6XOI0ZTyb0A-$b~ zdh*4v37sGp$?xcA2Gj&8lV%k`^zbw(hrPo0OS#HH99MAyukveBxzvx4jMw;MDM=W> zNgg4mEB!d7;&r^i^JMGJA)Jx%CWASwO7-RRXx%;jV2u`3aTezoL>*3;%)Uqr;k=3q zc#A=5*5;9k8SZs%1(*0;+0HosQQmLA!mvE7*X9i#ah9|+yEI=*o7Zo`WxTC>T^Nae zTvKr!@A5;6Goc^vtN1{-B1-Gkd_6&}uA|8t)D+y{a=)H_qIH_gS8m&`^ zz8~IVrnfEtL?V{n>ihyM#|r92U?o21+MyLF*0S!i98D6>z(T|}?S`owY4!$x}aPy~A7=~+XM)ozY^`_$QVMA`u~0OKT*0dcfmG;0}Ogv0`#=@hEs^9^kOJ2GbOT;uK6me z_&6eA!6rJR7zuFEXTgm`G|_AelHsRwJF%83Efsx8LkJmE3swxnh7s7qn5;U05IDSO zq@z??;3EM>@_o>7n3%cfRyE@Y1=B(+Vj=y5RWc6BNdKG6mt~VoUeRq^g10q{_Y_5} z(3Vj>J3nEv5}``FIWUQiDuU{*iWYGOeF7}T84NPyOBQJcry1%k z5={&nsMb_n=^}BuZ!?eRJCQG2OQM>({$zKK4bJ=NDlP;Ct{BW>fZU!e}FyIx>-jOYs9$u`!G+9)>wOM_PhRhsCGN GdH(|W7MCyp delta 2174 zcmY*aS#VQT82(Ojx2CrO!M3EJMOjLh5L!yX)UsKYXj|xtKwUz5DTR`jGzHw60t%>r zz!BWp1gi|{P_$5RhS3KZN5|#e7e{d!AMn8^U+Q;mO2x^XCI5cD??31MGX2(!!%c=> zy|lTZ=E!43M?TzV+-1XuOc@rbd=ohW6E;V;M?<~Ij?PeHEEqGP+0sEx*>?M}kRbj*+~o(Fv@ zSb>dMD3saWsiIg`c&8gdgiOqqPkJYL=b%(RI9*{qJ^U8y$wDBNH1@!JjM?C36HWu1ggvA18+}W9o z#FGNvS%nd$S!&}URLdf5rm@_{3apeZ+M=R|Z9IaN0`|6EC-KzkL|0pHENP*Zl611) zE?xWW+DQwmjbi*ZEcOc-Q5YNr^jg%m^7=#jr)J&%EA^OTJgAv$7Ty;k7aJG zuUWP;=5(iXKcRAub8%=)Mq^u=6498<(WlC0Jt!;m{6)eM$W6yrY~ATy$x>XW+Gux^ zs?S7}h>u0@u@ILZ>1zwR3FocP4)~Bj(nJrr`mf%`Bsple(TnYJwoxv2%9v4M)#GU! z&)`{k+E{7yq2EMG-ZJvNyRchMFbk|cJa6L#?3IhnB4a;ZGV!A9Hgkh7dt^B~omg+uY3^=|CLIf><)F1&&d<1D?Z+h>pJ1{4GoxKQ%e1n^H%IK3 z`+Unq;?lRi^PZGI9&{LBmjUp=g2p}X6la@~5LdxfFS?AZi>}Ey&dLEa8qe8I8(;$b z{Fi}=xSJ9>i@)KeCGgEPWUn1W?q%FlBkDw0^IKOiHLMRJHPc@-gpxtb^p}mU<)drG z=(=DC;o>1wRdHIfX3BZS!+Z`^fR`hWV;Vboz zacbm1K>rez0eu*&dHw;E)+vF{6$k{chqd4hWCXOj0gMXa*bFa?`& z54O^*2UD>f_mk;q*o7H*k#2|h+}uDRzDBVNcRBeYq<9ihH}U7#fEdxJ<~?kKLk@Ex zu@UXGyFoTLp@U^@rtKzVjZkTr*kZC86D?+n1NFcNYHrJgl8=fl%V&=80C&2iRm$og z*h{!%W{xnuXEZ7mtr{DMj}lAiWLniwt!_W;VK-QmoK$RVC9g#(a#~yB?;66kx}di# ztQGrr4C5&e!g@g00@^U1^Fk4`M<8qjjA85(SQ9X)IOxF%*ecQy@_Mn@FVl`@z#MZl z^`KUkj$sPN`@t@=hvev+NMEFo#5zlDIPR zGZ#UWqXP4=kaL8@)?)!05Jn>^(ag1#5Bf$_VH+*>kn}@XjN@3svX{C{Ho!_LG+Y9? z;ZD)U8;zqlL##YZ_cGok(JU8xah5WTsh`C;yhnN~NbLaLr?i#dgAXV(U83)W7-1zQ zSth$C5-vBK`%FGPAUpg{xa`F4q$fgmbzKiC7|ttt6g$QK3ofvAL9OH}J_1}kgK0`M znktqC1+L;#fY>SLD_pe-eE?zplT{Purb?6*xqEZui~qn~&ier@Be=_X<`ujhD|xyI z8~tIz_6RjKl+$AD9i$rAs9e*ym@yW0Q& diff --git a/bin/finalexam/Database/UserLogin.class b/bin/finalexam/Database/UserLogin.class index 323a9d66b28d4e9bc82fd14885990197894c1bd6..06443b38bfb4d016939bb36b802525e46f3eb427 100644 GIT binary patch delta 1521 zcmYjRZ%|ZK6#w0QZ{L0U_PN3$#)7gdAPX$GC`!5hDFOc>VC||1X|d3T=&~UDR4jG1 z(4>DxH%+a`Fr%^}r~wvd{8TedP1#Ieo0_R{a%yt2FZm_xyrr?;ym#+8=bm%!@BGev z_jK;rZ0*bGsjC3i;FAF@U{h{`jvDYv)~Yn zb)_+AYkS)w-9|@OEY6WFZYp!#8s;IFV?M*|-QoRVe>5Cx_g6>5@wg5*JfhIDRLMgD zN4{vW42#4tbE{sIn;;g8 zZ&;3IdQ|9Gie=(6i$}hfpM+QKMrm)(IgMWNjcQH%2CITou=kU%EbW;+G4@0v;8$;+nL2K^+=6>KQUp zVB>qE{^~A*+Get#V>2EUi{uST5L-Ax;*ji?wqlzYl)cJ!G;=hGugLT;c8K5Q#cB|b z=y((@qR?8BXvJe3Z4A!4iGz{&zNit37&;<&oI#F7dJP7tsJL0hE(W!?Bi7zYpB=5( ztz!>%Fxc87M#!M5+BrHIvQya%3iO9MI=iEhny?XB*VWS*HdJ&mcn;EYJ^5+9xMt1v zMX}eUb`?jQ!SP=^%peUtNY@a>ejNwUE9NLm*b`#C;!_UkI7}7wD!K9@6-UK+T6s!* zt+?iy!1{C?hl8kYi+05$b_CI9M;-b^BX^54yjASy9&wu=@XiVu;kG^X;qEQr)@X#I zpW{u2v=oZeF`6k${Hj(cZ{r<~OCsM^EFH$M*lZh=FRFN7+_Gh{4}_)_uo2Y;B6X1@dW$E zp)83o!#Om_iAtr+*`7p)1p(~}qD{`&1iAxum;DNQnkHb3V_!fw_c=JTy-SH=oz9gPuNSG8#Fe!W) z1vI7+mFYyGlNiq+Z4O-;nRGqOMIO<(kZ3F;3YSrrRw4&Aw7LoN>EFu5cJd0tgH9}f zLEeXvkE4|HS&BN1LR_Rj`7(+yiDG<@;U0H1ApLoyg5*p_votlO!uhsD!-_XGyeC+7;MEl19$u)E;7vQ0L(_vgvr8Huu4Lhsxm` zZ*bIc1UXtcyo?UtG=?|^XWrY;G@Z~~pb!h*!Vt|4lHMiM@1@4e_>gQGYz!aaV~oM| E50bD#l>h($ delta 2109 zcma)+ZE%!V6~}*f_j%iAH%nPu$cB=HnlzACUPD<3eE|xzNf43>X)EorY(vt`CTtc+ ztajU4ilt&*ZmU3FZ7mUNi(uUl($+5yArXM(!0Q|yi;)FmbvM+yLPr0I_e8A9JRtBT!Ok@4OZFA zSIq5C97?nt%=M*Px{`@ZCY23PPK8ZO7kp9wLax_meN|4BN^fG7{*`ZGo5Ny7d2(=| zd0=$-K)N~E-`u}%Z?bt)w(n3X>+*SOZE6&AO0m<4OmEA^bYgfo#EsPHKd4nTOKGsF zSIjRF5~F2iZbu@M=uKrqG}5G7ed}E>nU)aCSgt?vRU0c6%k)E5jc)UYt<|itY1KRY z<^G#ktJD4(wN4lOv5M8Sh1kGag*lY%%j8_5+!7KwZqq;W*OYIPU4M9P{KI$k)REVw z&OPy`mmiH+JKTQ4*sypjci3!G%)6G@#z7G!nd=+Ogt(J-eV?(_>f{SH+w~hpm4632 z^)HP&tD7&{+@(L3pD>B(Yi$M<;nG5-!fs0BQZ5<7F8dL2hso*9)(Uk*zk4$FG?wD%_pU32wYcD3GV@72Gt59d`%=E=C6 z*H34%PT?CC=Ykohcbxt+s<_Ka`E?|Qx)XcTDVyUqV~Xqk9cxz8v!B{)_x|kQVQ+@Q z?b3&w7VAxZWOGix?kx3>a$f(=d2!Jj4sXe)WT5Ls6dy z)EELmk1LJg)O($ha*2(iJ-J08EKKPlCN1mPTBbqGDli( z0s>rDYD)lfiAXQNJU%xw+5a(qgjV@UqCFQ_FwUZO)uB37+=x_PY%n#`Dl>YA}9 z=uyOtm@&bZ6sOp3v|2GElAIvrBkoSJzbDc^PC6dU$AXh&dd3+lav&b^RysJde$2hZ zVfdsIy2O`DoiV~5^pK1{ZmOthy@C_9PEBu%TBkYSxxOl{F&>DUF|$ZMW?aVg5_w$F zbeTZY1V@L|(CS=2OW67K>Fw zj5;dhlq_To*VD!#HjDR8s@P67yM;<{0|W9N9~3%IEsx0yd|YOoWC>^TEagq=nWTZA z%ZvLyP5hc>ek+0h$Z|elg=D>wzq5)fvcx~RNg490I>c3&bt=MoRZg2)#0FK%YE{P? z)hNtLVb%!KCd{qEY!Rkim>t}rx`pWx=6+%F`vmG2C?il#pizMymS@^K*guq=%i-l4 zk}vX>l@S=!*Mr36<#GQdzrOH zXDz-bNfwAqi?+7SYc^4vtu~!Ddz9SJtGsG+X6FA2t~)IiHS?bVQ8tf60_`@(w%L4t zS}Gs@EF#Nzf8v(g?vd8CNMZgL7MyX4I6n~F$Lk^}gvGibBL2A4&ix7FGU&>{MK19+ Gv3~(RTgw#y diff --git a/src/finalexam/Database/CashierStatistics.java b/src/finalexam/Database/CashierStatistics.java index 5b5b1b7..665a7e3 100644 --- a/src/finalexam/Database/CashierStatistics.java +++ b/src/finalexam/Database/CashierStatistics.java @@ -71,4 +71,4 @@ public class CashierStatistics { pstmt.close(); conn.close(); } -} \ No newline at end of file +} diff --git a/src/finalexam/Database/PasswordChange.java b/src/finalexam/Database/PasswordChange.java index 1c7b83a..1db3526 100644 --- a/src/finalexam/Database/PasswordChange.java +++ b/src/finalexam/Database/PasswordChange.java @@ -4,81 +4,68 @@ import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; -import java.sql.SQLException; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class PasswordChange { - static final String DBURL = "jdbc:mysql://localhost:3306/xiaoshou?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT"; + private static final String DBDRIVER = "com.mysql.cj.jdbc.Driver"; + private static final String DBURL = "jdbc:mysql://localhost:3306/xiaoshou?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT"; - public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - Connection conn = null; + public static void main(String[] args) throws Exception { + Class.forName(DBDRIVER); + Connection conn = DriverManager.getConnection(DBURL); PreparedStatement pstmt = null; ResultSet rs = null; - try { - Class.forName("com.mysql.cj.jdbc.Driver"); - conn = DriverManager.getConnection(DBURL); - System.out.print("请输入用户名:"); - String username = scanner.nextLine(); - String checkUserSql = "SELECT xingming FROM t_yong WHERE yonghuming=?"; - pstmt = conn.prepareStatement(checkUserSql); - pstmt.setString(1, username); - rs = pstmt.executeQuery(); - if (!rs.next()) { - System.out.println("该用户不存在,请重新输入"); - return; - } - System.out.print("请输入当前用户的原密码:"); - String oldPassword = scanner.nextLine(); - String checkPasswordSql = "SELECT xingming FROM t_yong WHERE yonghuming=? AND mima=MD5(?)"; - pstmt = conn.prepareStatement(checkPasswordSql); - pstmt.setString(1, username); - pstmt.setString(2, oldPassword); - rs = pstmt.executeQuery(); - if (!rs.next()) { - System.out.println("原密码输入不正确,请重新输入"); - return; - } - String newPassword; - while (true) { - System.out.print("请设置新的密码:"); - newPassword = scanner.nextLine(); - if (!isPasswordComplex(newPassword)) - System.out.println("您的密码不符合复杂性要求(密码长度不少于6个字符,至少有一个小写字母,至少有一个大写字母,至少一个数字),请重新输入:"); - else - break; - } - System.out.print("请输入确认密码:"); - String confirmPassword = scanner.nextLine(); - if (!newPassword.equals(confirmPassword)) { - System.out.println("两次输入的密码必须一致,请重新输入确认密码:"); - return; - } - String updatePasswordSql = "UPDATE t_yong SET mima=? WHERE yonghuming=?"; - pstmt = conn.prepareStatement(updatePasswordSql); - pstmt.setString(1, Encrypt.MD5(newPassword)); - pstmt.setString(2, username); - int result = pstmt.executeUpdate(); - if (result > 0) - System.out.println("您已成功修改密码,请谨记"); - else - System.out.println("密码修改失败,请重试"); - } catch (Exception e) { - e.printStackTrace(); - } finally { - try { - if (rs != null) - rs.close(); - if (pstmt != null) - pstmt.close(); - if (conn != null) - conn.close(); - } catch (SQLException se) { - se.printStackTrace(); - } + Scanner scanner = new Scanner(System.in); + System.out.print("请输入用户名:"); + String username = scanner.nextLine(); + String checkUserSql = "SELECT xingming FROM t_yong WHERE yonghuming=?"; + pstmt = conn.prepareStatement(checkUserSql); + pstmt.setString(1, username); + rs = pstmt.executeQuery(); + if (!rs.next()) { + System.out.println("该用户不存在,请重新输入"); + return; } + System.out.print("请输入当前用户的原密码:"); + String oldPassword = scanner.nextLine(); + String checkPasswordSql = "SELECT xingming FROM t_yong WHERE yonghuming=? AND mima=MD5(?)"; + pstmt = conn.prepareStatement(checkPasswordSql); + pstmt.setString(1, username); + pstmt.setString(2, oldPassword); + rs = pstmt.executeQuery(); + if (!rs.next()) { + System.out.println("原密码输入不正确,请重新输入"); + return; + } + String newPassword; + while (true) { + System.out.print("请设置新的密码:"); + newPassword = scanner.nextLine(); + if (!isPasswordComplex(newPassword)) + System.out.println("您的密码不符合复杂性要求(密码长度不少于6个字符,至少有一个小写字母,至少有一个大写字母,至少一个数字),请重新输入:"); + else + break; + } + System.out.print("请输入确认密码:"); + String confirmPassword = scanner.nextLine(); + if (!newPassword.equals(confirmPassword)) { + System.out.println("两次输入的密码必须一致,请重新输入确认密码:"); + return; + } + String updatePasswordSql = "UPDATE t_yong SET mima=? WHERE yonghuming=?"; + pstmt = conn.prepareStatement(updatePasswordSql); + pstmt.setString(1, Encrypt.MD5(newPassword)); + pstmt.setString(2, username); + int result = pstmt.executeUpdate(); + if (result > 0) + System.out.println("您已成功修改密码,请谨记"); + else + System.out.println("密码修改失败,请重试"); + rs.close(); + pstmt.close(); + conn.close(); } public static boolean isPasswordComplex(String password) { diff --git a/src/finalexam/Database/PermissionJudgment.java b/src/finalexam/Database/PermissionJudgment.java index a3f0161..a6b8c89 100644 --- a/src/finalexam/Database/PermissionJudgment.java +++ b/src/finalexam/Database/PermissionJudgment.java @@ -74,4 +74,4 @@ public class PermissionJudgment { pstmt.close(); conn.close(); } -} \ No newline at end of file +} diff --git a/src/finalexam/Database/ProductAdditionAndInquiry.java b/src/finalexam/Database/ProductAdditionAndInquiry.java index 4ac6503..fbdb12d 100644 --- a/src/finalexam/Database/ProductAdditionAndInquiry.java +++ b/src/finalexam/Database/ProductAdditionAndInquiry.java @@ -9,37 +9,38 @@ import java.sql.SQLException; import java.util.Scanner; public class ProductAdditionAndInquiry { + private static final String DBDRIVER = "com.mysql.cj.jdbc.Driver"; private static final String DBURL = "jdbc:mysql://localhost:3306/xiaoshou?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT"; - public static void main(String[] args) { + public static void main(String[] args) throws Exception { + Class.forName(DBDRIVER); + Connection conn = DriverManager.getConnection(DBURL); Scanner scanner = new Scanner(System.in); int choice; - try (Connection conn = DriverManager.getConnection(DBURL)) { - do { - System.out.println("===超市商品管理维护===="); - System.out.println("1、输入商品"); - System.out.println("2、查询商品"); - System.out.println("3、退出"); - System.out.print("请选择(1-3):"); - choice = scanner.nextInt(); - scanner.nextLine(); - switch (choice) { - case 1: - addProduct(scanner, conn); - break; - case 2: - queryProduct(scanner, conn); - break; - case 3: - System.out.println("退出系统"); - break; - default: - System.out.println("无效选择,请重新选择(1-3):"); - } - } while (choice != 3); - } catch (SQLException e) { - e.printStackTrace(); - } + + do { + System.out.println("===超市商品管理维护===="); + System.out.println("1、输入商品"); + System.out.println("2、查询商品"); + System.out.println("3、退出"); + System.out.print("请选择(1-3):"); + choice = scanner.nextInt(); + scanner.nextLine(); + switch (choice) { + case 1: + addProduct(scanner, conn); + break; + case 2: + queryProduct(scanner, conn); + break; + case 3: + System.out.println("退出系统"); + break; + default: + System.out.println("无效选择,请重新选择(1-3):"); + } + } while (choice != 3); + conn.close(); } private static void addProduct(Scanner scanner, Connection conn) throws SQLException { diff --git a/src/finalexam/Database/ProductModificationAndDeletion.java b/src/finalexam/Database/ProductModificationAndDeletion.java index e6ccb73..afa676f 100644 --- a/src/finalexam/Database/ProductModificationAndDeletion.java +++ b/src/finalexam/Database/ProductModificationAndDeletion.java @@ -79,4 +79,4 @@ public class ProductModificationAndDeletion { pstmt.close(); conn.close(); } -} \ No newline at end of file +} diff --git a/src/finalexam/Database/UserLogin.java b/src/finalexam/Database/UserLogin.java index ba8226f..329f447 100644 --- a/src/finalexam/Database/UserLogin.java +++ b/src/finalexam/Database/UserLogin.java @@ -4,63 +4,50 @@ import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; -import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class UserLogin { - static final String DBURL = "jdbc:mysql://localhost:3306/xiaoshou?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT"; + private static final String DBDRIVER = "com.mysql.cj.jdbc.Driver"; + private static final String DBURL = "jdbc:mysql://localhost:3306/xiaoshou?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT"; - public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - Connection conn = null; + public static void main(String[] args) throws Exception { + Class.forName(DBDRIVER); + Connection conn = DriverManager.getConnection(DBURL); PreparedStatement pstmt = null; ResultSet rs = null; - try { - Class.forName("com.mysql.cj.jdbc.Driver"); - conn = DriverManager.getConnection(DBURL); - int attempts = 0; - boolean loginSuccess = false; - while (attempts < 3 && !loginSuccess) { - System.out.println("欢迎使用阳光超市收银系统,请登陆"); - System.out.print("请输入用户名: "); - String username = scanner.nextLine(); - System.out.print("请输入密码: "); - String password = scanner.nextLine(); - String sql = "SELECT xingming FROM t_yong WHERE yonghuming=? AND mima=?"; - pstmt = conn.prepareStatement(sql); - pstmt.setString(1, username); - pstmt.setString(2, Encrypt.MD5(password)); - rs = pstmt.executeQuery(); - if (rs.next()) { - loginSuccess = true; - String xingming = rs.getString("xingming"); - SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒"); - String currentTime = formatter.format(new Date()); - System.out.println("欢迎使用阳光超市收银系统"); - System.out.println("当前收银员:" + xingming); - System.out.println("当前时间:" + currentTime); - } else { - System.out.println("用户名或密码不正确,请重新输入"); - attempts++; - } - } - if (!loginSuccess) - System.out.println("最多只能尝试3次"); - } catch (Exception e) { - e.printStackTrace(); - } finally { - try { - if (rs != null) - rs.close(); - if (pstmt != null) - pstmt.close(); - if (conn != null) - conn.close(); - } catch (SQLException se) { - se.printStackTrace(); + Scanner scanner = new Scanner(System.in); + int attempts = 0; + boolean loginSuccess = false; + while (attempts < 3 && !loginSuccess) { + System.out.println("欢迎使用阳光超市收银系统,请登陆"); + System.out.print("请输入用户名: "); + String username = scanner.nextLine(); + System.out.print("请输入密码: "); + String password = scanner.nextLine(); + String sql = "SELECT xingming FROM t_yong WHERE yonghuming=? AND mima=?"; + pstmt = conn.prepareStatement(sql); + pstmt.setString(1, username); + pstmt.setString(2, Encrypt.MD5(password)); + rs = pstmt.executeQuery(); + if (rs.next()) { + loginSuccess = true; + String xingming = rs.getString("xingming"); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒"); + String currentTime = formatter.format(new Date()); + System.out.println("欢迎使用阳光超市收银系统"); + System.out.println("当前收银员:" + xingming); + System.out.println("当前时间:" + currentTime); + } else { + System.out.println("用户名或密码不正确,请重新输入"); + attempts++; } } + if (!loginSuccess) + System.out.println("最多只能尝试3次"); + rs.close(); + pstmt.close(); + conn.close(); } }