ATM自动取款机1.docx
- 文档编号:7745899
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:17
- 大小:19.26KB
ATM自动取款机1.docx
《ATM自动取款机1.docx》由会员分享,可在线阅读,更多相关《ATM自动取款机1.docx(17页珍藏版)》请在冰豆网上搜索。
ATM自动取款机1
packageatm;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.sql.*;
publicclassDBMySqlextendsJFrameimplementsActionListener{
Stringusername;
intpassword;
booleanflag=false,m=false;
longmoney,balance;
Stringmyid;
//驱动器的名称
privateStringstrDBMySql="com.mysql.jdbc.Driver";
//数据库的URL地址
privateStringstrUrl="jdbc:
mysql:
//localhost/atm";
//指定要访问数据库的名称
privateStringstrDBName="atm";
//数据库用户名称
privateStringstrUserName="root";
//数据库用户密码
privateStringstrPassWord=null;
//数据库连接对象,初始化为空
privateConnectionconTemp=null;
//连接的容器对象,初始化为空
privateStatementstmtTemp=null;
//结果集对象初始化为空
privateResultSetrsTemp=null;
//操作记录的行数
privateintintOperateNum=0;
/**
*-----------------------------------------
*
*功能概述:
构造方法,加载指定缺省的驱动程序-------------------------------------------
*/
publicDBMySql(Stringtitle){
//TODOAuto-generatedconstructorstub
super(title);
//this.setBackground(Color.blue);
try{
Class.forName(strDBMySql);
}catch(ClassNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
showCardLayout();
}
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
DBMySqld=newDBMySql("欢迎光临中国交通银行");
d.setSize(400,300);
d.setLocation(300,200);
d.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
d.setVisible(true);
//showCardLayout();
}
/**
*-----------------------------------------
*
*功能概述:
和数据库建立连接-------------------------------------------
*/
publicbooleancreateConnection(){
booleanblConnect=false;
try{
conTemp=DriverManager.getConnection(strUrl,strUserName,strPassWord);
conTemp.setCatalog(strDBName);
conTemp.setAutoCommit(false);
blConnect=true;
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnblConnect;
}
/**
*-----------------------------------------
*
*功能概述:
获得查询结果集-------------------------------------------
*/
publicResultSetexecuteQuery(StringstrSQL){
try{
if(conTemp==null){
createConnection();
}
stmtTemp=conTemp.createStatement();
rsTemp=stmtTemp.executeQuery(strSQL);
returnrsTemp;
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
returnnull;
}
}
/**
*-----------------------------------------
*
*功能概述:
对数据库执行更新、插入操作-------------------------------------------
*/
publicbooleanexecuteUpdate(StringstrSQL){
try{
if(conTemp==null){
createConnection();
}
stmtTemp=conTemp.createStatement();
intOperateNum=stmtTemp.executeUpdate(strSQL);
returntrue;
}catch(Exceptione){
e.printStackTrace();
returnfalse;
}
}//executeUpdate()
/**
*-----------------------------------------
*
*功能概述:
返回操作记录行数-------------------------------------------
*/
publicintgetDBOperateNum(){
returnintOperateNum;
}//getDBOperateNum()
/**
*-----------------------------------------
*
*功能概述:
提交事务-------------------------------------------
*/
publicvoidcommit(){
try{
conTmit();
}catch(Exceptione){
e.printStackTrace();
}
}//commit()
/**
*-----------------------------------------
*
*功能概述:
断开和数据库建立的连接-------------------------------------------
*/
publicvoidcloseDBConnection(){
try{
if(rsTemp!
=null){
rsTemp=null;
}
if(conTemp!
=null){
conTemp=null;
}
if(stmtTemp!
=null){
stmtTemp=null;
}
}catch(Exceptione){
e.printStackTrace();
}
}//closeDBConnection()
//查询余额
publiclonggetmoney(Stringgetname){
DBMySqld=newDBMySql("欢迎光临中国交通银行");
try{
StringstrSQLSelect="SELECTbalanceFROMAccountTableWHEREcardname='"
+getname+"'";
ResultSetrsSQLSelect=d.executeQuery(strSQLSelect);
if(rsSQLSelect.next())
money=rsSQLSelect.getLong("balance");
mit();
}catch(Exceptione){
}
returnmoney;
}
//登陆
publicbooleanlogin(Stringname,intpword){
DBMySqld=newDBMySql("欢迎光临中国交通银行");
try{
StringstrSQLSelect="SELECTcardPassWordFROMAccountTableWHEREcardname='"
+name+"'";
ResultSetrsSQLSelect=d.executeQuery(strSQLSelect);
if(rsSQLSelect.next()){
intpwd=rsSQLSelect.getInt("cardPassWord");
mit();
if(pword==pwd)
returntrue;
}
}catch(Exceptione){
}
returnfalse;
}
//修改密码
publicbooleanalterpassword(intpword,Stringname){
DBMySqld=newDBMySql("欢迎光临中国交通银行");
StringstrSQLUpdate="UPDATEAccountTableSetcardPassWord="+pword+"WHEREcardname='"+name+"'";
booleanbol=d.executeUpdate(strSQLUpdate);
mit();
returnbol;
}
//取款
publicbooleansetmoney(Longmoneys,Stringname){
DBMySqld=newDBMySql("欢迎光临中国交通银行");
longm;
m=getmoney(name);//根据取款人的用户名获得取款人的余额
if(m>moneys){
m=m-moneys;
StringstrSQLUpdate="UPDATEAccountTableSetbalance="+m+"WHEREcardname='"+name+"'";
d.executeUpdate(strSQLUpdate);
mit();
returntrue;
}else
returnfalse;
}
//查询用户名是否存在
publicbooleangetname(Stringname){
Stringaname="";
DBMySqld=newDBMySql("欢迎光临中国交通银行");
try{
StringstrSQLSelect="SELECTcardnameFROMAccountTable";ResultSetrsSQLSelect=d.executeQuery(strSQLSelect);
if(rsSQLSelect.next()){
aname=rsSQLSelect.getString("cardname");
//mit();
if(name==aname)
returntrue;
}
}catch(Exceptione){
}
;
returnfalse;
}
//注册
publicbooleanregist(Stringnames,intpword){
DBMySqld=newDBMySql("欢迎光临中国交通银行");
booleanbol;
bol=getname(names);
if(bol)//如果存在
{
returnfalse;
}else{
StringstrSQLInsert="INSERTINTOAccountTableVALUES('"+names+"',"+pword+",1515520)";
d.executeUpdate(strSQLInsert);
mit();//暂时理解为对数据库进行刷新
returntrue;
}
}
//可能会用到的标签
JLabelb1=newJLabel("欢迎光临中国交通银行");
JLabelb2=newJLabel("请输入您的帐号");
JLabelb3=newJLabel("请输入您的密码");
JLabelb4=newJLabel("请输入您要的取款金额");
JLabelb5=newJLabel("请输入您的新密码");
JLabelb6=newJLabel("请再次输入您的新密码");
JLabelb7=newJLabel("");
JLabelb8=newJLabel("");
JLabelb9=newJLabel("请选择您所需要的服务");
JLabelb10=newJLabel("");
JLabelb11=newJLabel("请输入您的帐号");
JLabelb12=newJLabel("请输入您的密码");
JLabelb13=newJLabel("");
JButtont1=newJButton("返回");
JButtont12=newJButton("返回");
JButtont13=newJButton("返回");
JButtont14=newJButton("返回");
JButtont15=newJButton("返回");
JButtont16=newJButton("返回");
JButtont17=newJButton("返回");
JButtont2=newJButton("进入");
JButtont3=newJButton("退出");
JButtont4=newJButton("确定");
JButtont5=newJButton("取款");
JButtont6=newJButton("修改密码");
JButtont7=newJButton("信息查询");
JButtont8=newJButton("确认");
JButtont9=newJButton("确认");
JButtont10=newJButton("注册新用户");
JButtont11=newJButton("注册");
JTextFieldd1=newJTextField(6);//用户帐号设置为6位
JPasswordFieldd2=newJPasswordField(6);//用户密码设置为6位//貌似这样的话密码会隐藏
JTextFieldd3=newJTextField(6);//取款金额
JPasswordFieldd4=newJPasswordField(6);//新密码输入
JPasswordFieldd5=newJPasswordField(6);//新密码确认
JTextAread6=newJTextArea(5,17);
JTextFieldd7=newJTextField(6);
JPasswordFieldd8=newJPasswordField(6);
JPanelp1=newJPanel();//主面板
JPanela1=newJPanel();
JPanela2=newJPanel();
JPanela3=newJPanel();
JPanelp2=newJPanel();//登陆面板
JPanelbb1=newJPanel();
JPanelbb2=newJPanel();
JPanelbb3=newJPanel();
JPanelbb4=newJPanel();
JPanelp3=newJPanel();//功能选择面板
JPanelc1=newJPanel();
JPanelc2=newJPanel();
JPanelc3=newJPanel();
JPanelp4=newJPanel();//取款面板
JPaneldd1=newJPanel();
JPaneldd2=newJPanel();
JPaneldd3=newJPanel();
JPaneldd4=newJPanel();
JPanelp5=newJPanel();//修改密码面板
JPanele1=newJPanel();
JPanele2=newJPanel();
JPanele3=newJPanel();
JPanele4=newJPanel();
JPanelp6=newJPanel();//信息查询面板
JPanelp7=newJPanel();//用户注册
JPanelg1=newJPanel();
JPanelg2=newJPanel();
JPanelg3=newJPanel();
JPanelg4=newJPanel();
Containerc=getContentPane();
CardLayoutf1=newCardLayout();//将界面看做一系列的卡片,在任何时候只有其中一张卡片//是可见的,
//适用于界面的跳转,show(container,name)方法用于显示container容器中的name卡片
GridLayoutf2=newGridLayout(5,1);
privatevoidshowCardLayout(){
//TODOAuto-generatedmethodstub
d6.setLineWrap(true);
d6.setEditable(false);
c.setLayout(f1);
p1.setLayout(f2);
p2.setLayout(f2);
p3.setLayout(f2);
p4.setLayout(f2);
p5.setLayout(f2);
p6.setLayout(f2);
p7.setLayout(f2);
p1.add(a1);
p1.add(a2);
p1.add(a3);
a1.add(b1);
a2.add(t2);
a2.add(t3);
a3.add(t10);
p2.add(bb1);
p2.add(bb2);
p2.add(bb3);
p2.add(bb4);
bb1.add(b2);
bb1.add(d1);
bb2.add(b3);
bb2.add(d2);
bb3.add(t4);
bb3.add(t16);
bb4.add(b7);
p3.add(c1);
p3.add(c2);
p3.add(c3);
c1.add(b9);
c2.add(t5);
c2.add(t6);
c2.add(t7);
c3.add(t14);
p4.add(dd1);
p4.add(dd2);
p4.add(dd3);
p4.add(dd4);
dd1.add(b4);
dd2.add(d3);
dd3.add(t8);
dd3.add(t12);
dd4.add(b8);
p5.add(e1);
p5.add(e2);
p5.add(e3);
p5.add(e4);
e1.add(b5);
e1.add(d4);
e2.add(b6);
e2.add(d5);
e3.add(t9);
e3.add(t1);
e4.add(b10);
p6.add(d6);
p6.add(t15);
p7.add(g1);
p7.add(g2);
p7.add(g3);
p7.add(g4);
g1.add(b11);
g1.add(d7);
g2.add(b12);
g2.add(d8);
g4.add(t11);
g4.add(t17);
g3.add(b13);
c.add(p1,"1");
c.add(p2,"2")
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ATM 自动 取款