Java web程序设计转账系统设计完整功能版Word文档下载推荐.docx
《Java web程序设计转账系统设计完整功能版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java web程序设计转账系统设计完整功能版Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
//保存账户到账户表中
intsaveAmount(amountamount)throwsamountException;
//把amount中的钱改变money,如果money为正数表示加钱,否则表示减钱
voidchangMoney(amountamount,intmoney)throwsamountException;
voidClose();
importjava.sql.*;
importjava.util.List;
importutil.connectionFactory;
;
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!
pres.close();
e.printStackTrace();
if(conn!
conn.close();
publicvoidcloseAll(ResultSetrs,Statementpres,Connectionconn){
protectedResultSetexecuteQuery(Stringsql,List<
values)throwsamountException{
initPreparedStatement(sql,values);
/*System.out.print(values);
*/
try{
returnpres.executeQuery();
//
}catch(SQLExceptione){
thrownewamountException(e);
}
privatevoidinitPreparedStatement(Stringsql,List<
pres=conn.prepareStatement(sql);
inti=1;
for(Objecto:
values){
/*System.out.print(o);
pres.setObject(i,o);
i++;
protectedintexecuteUpdate(Stringsql,List<
values)throwsamountException{
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();
*///如果再次声明连接对象,则覆盖了传过来的连接对象
stam=conn.createStatement();
//不适合用于业务dao的处理,因为需要本对象自己提交
inti=stam.executeUpdate(sql);
/*mit();
if(i==0){
System.out.print("
\n操作失败!
"
+i);
}else{
System.out.print("
\n操作成功!
}catch(SQLExceptione1){
e1.printStackTrace();
}finally{
/*closeAll(null,stam,conn);
}
packagedao.impl;
importjava.sql.Connection;
importjava.sql.Statement;
importjava.util.ArrayList;
importdao.DBtemplate;
importdao.amountDao;
publicclassamountDaoImplextendsDBtemplateimplementsamountDao{
publicamountDaoImpl(Connectionconn){
super(conn);
//TODOAuto-generatedconstructorstub
@Override
publicvoidClose(){
//TODOAuto-generatedmethodstub
publicvoidchangMoney(amountamount,intmoney)throwsamountException{
Stringsql="
updateamountsetmoney=money+"
Stringname=amount.getName();
sql=sql+money+"
wherename="
+name;
System.out.print(sql);
executeUpdate(sql);
/*if(money>
0){
}else{
}*/
publicvoiddeleteAmount(StringamountName)throwsamountException{
deletefromamount"
if(amountName!
=null&
&
!
.equals(amountName)){
sql=sql+"
where"
+amountName;
System.out.print(sql);
executeUpdate(sql);
/*conn=connectionFactory.getConnection();
stam=conn.createStatement();
inti=stam.executeUpdate(sql);
mit();
System.out.print(i);
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
*/
publicList<
findAmountsByCondition(StringsqlCondition,
List<
values)throwsamountException{
selectname,moneyfromamount"
if(sqlCondition!
.equals(sqlCondition)){
+sqlCondition;
rs=executeQuery(sql,values);
/*Statementstam=null;
Connectionconn=connectionFactory.getConnection();
rs=stam.executeQuery(sql);
List<
amounts=newArrayList<
();
//建立集合对象
amountam=null;
while(rs.next()){
am=newamount();
/*System.out.print("
rs.next()="
+rs.next());
/*System.out.print(rs.getString("
name"
));
am.setName(rs.getString("
am.setMoney(rs.getInt("
money"
amounts.add(am);
e.printStackTrace();
returnamounts;
publicintsaveAmount(amountam)throwsamountException{
StringsqlPre="
insertintoamount("
//TODOAuto-generatedmethodstub
StringsqlTail="
values("
/*List<
object>
value=newArrayList<
values=newArrayList<
if(am.getName()!
.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.println(sql);
returnexecuteUpdate(sql,values);
packagepojo;
publicclassamount{
privateStringname;
privateintmoney;
publicStringgetName(){
returnname;
publicvoidsetName(Stringname){
this.name=name;
publicintgetMoney(){
returnmoney;
publicvoidsetMoney(intmoney){
this.money=money;
}}
packagetest;
/*importdao.studentDao;
importdao.impl.amountDaoImpl;
/*importdao.impl.studentDaoImpl;
publicclassaccountDemoSaveTest{
publicstaticvoidmain(String[]args){
amountam=newamount();
am.setName("
813"
);
am.setMoney(6000);
Connectionconn=null;
//此语句必须首先声明,否者下面的conn无法使用;
conn=connectionFactory.getConnection();
/*System.out.print(conn);
amountDaoamdao=newamountDaoImpl(conn);
inti=amdao.saveAmount(am);
//保存账户对象am;
System.out.print("
保存成功oK!
mit();
//手动提交
}catch(Exceptione){
conn.rollback();
}catch(SQLExceptione2){
e2.printStackTrace();
try{
conn.rollback();
finally{
if(conn!
try{
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
publicclassamountDaoChangeTest{
*@paramargs
amountam=newamount();
am.setName("
814"
am.setMoney(500);
//正数为加钱,负数为减钱
Connectionconn=null;
conn=connectionFactory.getConnection();
amountDaoamDao=newamountDaoImpl(conn);
amDao.changMoney(am,am.getMoney());
}catch(amountExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
if(conn!
=null){
conn.close();
importdao.impl.amountDa