Java web程序设计转账系统设计完整功能版.docx
- 文档编号:8783126
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:18
- 大小:50.26KB
Java web程序设计转账系统设计完整功能版.docx
《Java web程序设计转账系统设计完整功能版.docx》由会员分享,可在线阅读,更多相关《Java web程序设计转账系统设计完整功能版.docx(18页珍藏版)》请在冰豆网上搜索。
Javaweb程序设计转账系统设计完整功能版
账户系统设计
Java Web程序设计实例——JDBC设计
工程视图
packageamountException;
publicclassamountExceptionextendsException{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
publicamountException(Exceptione){
super(e);
}
publicamountException(Stringe){
super(e);
}
}
packagedao;
importjava.sql.SQLException;
importjava.util.List;
importamountException.amountException;
importpojo.amount;
publicinterfaceamountDao{
//查找指定条件的账户
List
//删除指定账户名
voiddeleteAmount(StringamountName)throwsamountException;
//保存账户到账户表中
intsaveAmount(amountamount)throwsamountException;
//把amount中的钱改变money,如果money为正数表示加钱,否则表示减钱
voidchangMoney(amountamount,intmoney)throwsamountException;
voidClose();
}
packagedao;
importjava.sql.*;
importjava.util.List;
importutil.connectionFactory;
importamountException.amountException;;
publicclassDBtemplate{
protectedConnectionconn;
protectedPreparedStatementpres;
protectedResultSetrs;
protectedStatementstam;
publicDBtemplate(Connectionconn){
super();
this.conn=conn;
}
publicvoidcloseAll(){
closeAll(rs,pres,conn);
}
publicvoidcloseAll(ResultSetrs,PreparedStatementpres,Connectionconn){
if(rs!
=null)
try{
rs.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
if(pres!
=null)
try{
pres.close();
}catch(SQLExceptione){
e.printStackTrace();
}
if(conn!
=null)
try{
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicvoidcloseAll(ResultSetrs,Statementpres,Connectionconn){
if(rs!
=null)
try{
rs.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
if(pres!
=null)
try{
pres.close();
}catch(SQLExceptione){
e.printStackTrace();
}
if(conn!
=null)
try{
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
protectedResultSetexecuteQuery(Stringsql,List
initPreparedStatement(sql,values);
/*System.out.print(values);*/
try{
returnpres.executeQuery();//
}catch(SQLExceptione){
thrownewamountException(e);
}
}
privatevoidinitPreparedStatement(Stringsql,List
try{
pres=conn.prepareStatement(sql);
inti=1;
for(Objecto:
values){
/*System.out.print(o);*/
pres.setObject(i,o);
i++;
}
}catch(SQLExceptione){
thrownewamountException(e);
}
}
protectedintexecuteUpdate(Stringsql,List
intcount=-1;
/*System.out.print(values);
System.out.println(sql);*/
try{
initPreparedStatement(sql,values);//初始化预处理语句对象
count=pres.executeUpdate();
/*System.out.print(count);*/
}catch(Exceptione){
thrownewamountException(e);
}
finally{
closeAll(null,pres,null);
}
returncount;
}
protectedvoidexecuteUpdate(Stringsql){
/*conn=connectionFactory.getConnection();*///如果再次声明连接对象,则覆盖了传过来的连接对象
try{
stam=conn.createStatement();//不适合用于业务dao的处理,因为需要本对象自己提交
inti=stam.executeUpdate(sql);
/*mit();*/
if(i==0){
System.out.print("\n操作失败!
"+i);
}else{
System.out.print("\n操作成功!
"+i);
}
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}finally{
/*closeAll(null,stam,conn);*/
}
}
}
packagedao.impl;
importjava.sql.Connection;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.ArrayList;
importjava.util.List;
importamountException.amountException;
importpojo.amount;
importutil.connectionFactory;
importdao.DBtemplate;
importdao.amountDao;
publicclassamountDaoImplextendsDBtemplateimplementsamountDao{
publicamountDaoImpl(Connectionconn){
super(conn);//TODOAuto-generatedconstructorstub
}
@Override
publicvoidClose(){
//TODOAuto-generatedmethodstub
}
@Override
publicvoidchangMoney(amountamount,intmoney)throwsamountException{
//TODOAuto-generatedmethodstub
Stringsql="updateamountsetmoney=money+";
Stringname=amount.getName();
sql=sql+money+"wherename="+name;
System.out.print(sql);
executeUpdate(sql);
/*if(money>0){
}else{
}*/
}
@Override
publicvoiddeleteAmount(StringamountName)throwsamountException{
//TODOAuto-generatedmethodstub
Stringsql="deletefromamount";
if(amountName!
=null&&!
"".equals(amountName)){
sql=sql+"where"+amountName;
}
System.out.print(sql);
executeUpdate(sql);
/*conn=connectionFactory.getConnection();
try{
stam=conn.createStatement();
inti=stam.executeUpdate(sql);
mit();
System.out.print(i);
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
*/
}
@Override
publicList
List
//TODOAuto-generatedmethodstub
Stringsql="selectname,moneyfromamount";
if(sqlCondition!
=null&&!
"".equals(sqlCondition)){
sql=sql+"where"+sqlCondition;
}
System.out.print(sql);
rs=executeQuery(sql,values);
/*Statementstam=null;
Connectionconn=connectionFactory.getConnection();
try{
stam=conn.createStatement();
rs=stam.executeQuery(sql);
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}*/
List
amountam=null;
try{
while(rs.next()){
am=newamount();
/*System.out.print("rs.next()="+rs.next());*/
/*System.out.print(rs.getString("name"));*/
am.setName(rs.getString("name"));
am.setMoney(rs.getInt("money"));
amounts.add(am);
}
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnamounts;
}
@Override
publicintsaveAmount(amountam)throwsamountException{
StringsqlPre="insertintoamount(";//TODOAuto-generatedmethodstub
StringsqlTail="values(";
/*List
List
if(am.getName()!
=null&&!
"".equals(am.getName())){
sqlPre=sqlPre+"name,money,";
/*System.out.print(sqlPre);*/
sqlTail=sqlTail+"?
?
";
/*System.out.print(sqlTail);*/
values.add(am.getName());
values.add(am.getMoney());
}
sqlPre=sqlPre.substring(0,sqlPre.length()-1)+")";
sqlTail=sqlTail.substring(0,sqlTail.length()-1)+")";
Stringsql=sqlPre+sqlTail;
/*System.out.print(values);*/
/*System.out.println(sql);*/
returnexecuteUpdate(sql,values);
}
}
packagepojo;
publicclassamount{
privateStringname;
privateintmoney;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetMoney(){
returnmoney;
}
publicvoidsetMoney(intmoney){
this.money=money;
}}
packagetest;
importjava.sql.Connection;
importjava.sql.SQLException;
importdao.amountDao;
/*importdao.studentDao;*/
importdao.impl.amountDaoImpl;
/*importdao.impl.studentDaoImpl;*/
importpojo.amount;
importutil.connectionFactory;
publicclassaccountDemoSaveTest{
publicstaticvoidmain(String[]args){
amountam=newamount();
am.setName("813");
am.setMoney(6000);
Connectionconn=null;//此语句必须首先声明,否者下面的conn无法使用;
try{
conn=connectionFactory.getConnection();
/*System.out.print(conn);*/
amountDaoamdao=newamountDaoImpl(conn);
inti=amdao.saveAmount(am);//保存账户对象am;
System.out.print("保存成功oK!
"+i);
mit();//手动提交
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
try{
conn.rollback();
}catch(SQLExceptione2){
//TODOAuto-generatedcatchblock
e2.printStackTrace();
}
try{
conn.rollback();
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
}
finally{
if(conn!
=null)
try{
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
packagetest;
importjava.sql.Connection;
importjava.sql.SQLException;
importamountException.amountException;
importdao.amountDao;
importdao.impl.amountDaoImpl;
importpojo.amount;
importutil.connectionFactory;
publicclassamountDaoChangeTest{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
amountam=newamount();
am.setName("814");
am.setMoney(500);//正数为加钱,负数为减钱
Connectionconn=null;
conn=connectionFactory.getConnection();
amountDaoamDao=newamountDaoImpl(conn);
try{
amDao.changMoney(am,am.getMoney());
try{
mit();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
try{
conn.rollback();
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
}
}catch(amountExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
if(conn!
=null){
try{
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
packagetest;
importjava.sql.Connection;
importjava.sql.SQLException;
importamountException.amountException;
importdao.amountDao;
importdao.impl.amountDa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java web程序设计转账系统设计完整功能版 web 程序设计 转账 系统 设计 完整 功能