📄 databaseconnector.java
字号:
accountInfo.setAccountClass(resultset.getInt("accountClass"));
accountInfo.setAccountName(resultset.getString("accountName").trim());
accountInfo.setAccountSex(resultset.getInt("accountSex"));
accountInfo.setAccountAddress(resultset.getString("accountAddress"));
accountInfo.setAccountWage(resultset.getInt("accountWage"));
accountList.add(accountInfo);
}
resultset.close(); //关闭数据库连接
connect.close();
}catch (Exception e) {
e.printStackTrace();//把该 Throwable 和它的跟踪情况打印到标准错误流。
}
/////////////////////////////////////////
return accountList;
}
//保存新建帐户信息
public void saveNewAccountInfo(Account user){
Account account = new Account();
account = user;
try{
System.out.println("连接数据库。。。");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//连接数据库
Connection connect=DriverManager.getConnection("jdbc:odbc:hotelmanager"," "," ");
System.out.println("成功连接数据库");
///////////////////////////////////////////////////
String sql3="insert into AccountInfo(accountId,password,"+
"accountClass,accountName,accountSex,accountAddress,accountWage) "+
" values(?,?,?,?,?,?,?)";
PreparedStatement prepareStategr=connect.prepareCall(sql3);//设定数据库查寻条件
prepareStategr.clearParameters();
String accountId=account.getAccountId();
String password=account.getPassword();
int accountClass=account.getAccountClass();
String accountName=account.getAccountName();
int accountSex=account.getAccountSex();
String accountAddress=account.getAccountAddress();
int accountWage=account.getAccountWage();
prepareStategr.setString(1,accountId);
prepareStategr.setString(2,password);
prepareStategr.setInt(3,accountClass);
prepareStategr.setString(4,accountName);
prepareStategr.setInt(5,accountSex);
prepareStategr.setString(6,accountAddress);
prepareStategr.setInt(7,accountWage);
int resultroomguest = prepareStategr.executeUpdate(); //执行数据库添加
if(resultroomguest==1) //成功更新数据库
{
System.out.println("保存预订客人预订的房间的信息成功");
}else{
System.out.println("失败保存预订的房间信息");
connect.close();
return;
}
////////////////////////////////////////////////////
connect.close();
}catch (Exception e) {
e.printStackTrace();//把该 Throwable 和它的跟踪情况打印到标准错误流。
}
}
public void saveReturnRoomInfo(CheckInInfo cinfo,Account u,String td,double inc,long num){
CheckInInfo cii=new CheckInInfo();
Account user = new Account();
cii = cinfo;
user = u;
String tradeDate = td;
double income=inc;
long stayNum=num;
////////////////////////////////////////////
System.out.println("连接数据库,保存退房信息");
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//连接数据库
Connection connect=DriverManager.getConnection("jdbc:odbc:hotelmanager"," "," ");
////////////////////////////////////删除登记信息
int checkGId=cii.getCheckInGuestId();
String sql="delete from CheckInGuestPersonInfo where checkInGuestId=?";
PreparedStatement prepareState=connect.prepareCall(sql);//设定数据库查寻条件
prepareState.clearParameters();
prepareState.setInt(1,checkGId);
int result = prepareState.executeUpdate();
if(result==1) //成功更新数据库
{
System.out.println("删除登记信息成功");
}else{
System.out.println("删除登记信息失败");
connect.close();
return;
}
///////////////////////////////////更新房间状态信息
Vector deleteRoom=new Vector();
deleteRoom=cii.getChoosenRoomList();
String sqlupdateRS="update GuestRoom set roomState=? where guestRoomId=?";
PreparedStatement prepareStaters=connect.prepareCall(sqlupdateRS);//设定数据库查寻条件
prepareStaters.clearParameters();
for(int i=0;i<deleteRoom.size();i++){
GuestRoom room= (GuestRoom) deleteRoom.get(i);
String roomId= room.guestRoomId.toString().trim();
prepareStaters.setInt(1,0); //设置房间状态为空
prepareStaters.setString(2,roomId);
int resultroomrs = prepareStaters.executeUpdate(); //执行数据库添加
if(resultroomrs==1) //成功更新数据库
{
System.out.println("成功更新房间状态信息");
}else{
System.out.println("失败更新房间状态信息");
connect.close();
return;
}
}
//////////////////////////////更新记帐表 也就是帐目表
String userId=user.getAccountId();
String sql3="insert into ReckoningInfo(checkInGuestId,income,tradeDate,accountId) values(?,?,?,?)";
PreparedStatement prepareStategr=connect.prepareCall(sql3);//设定数据库查寻条件
prepareStategr.clearParameters();
prepareStategr.setString(1,checkGId+"");
prepareStategr.setDouble(2,income);
prepareStategr.setString(3,tradeDate);
prepareStategr.setString(4,userId);
int resultroomguest = prepareStategr.executeUpdate(); //执行数据库添加
if(resultroomguest==1) //成功更新数据库
{
System.out.println("更新记帐表信息成功");
}else{
System.out.println("失败更新记帐表");
connect.close();
return;
}
////////////////////////////更新历史客人信息
int firstCheckInId=cii.getCheckInGuestId(); //第一次登记的登记号
int certificateKind=cii.getCertificateKind();
String certificateId=cii.getCertificateId().trim(); //证件类型&证件号为唯一标志客人的信息
String guestName=cii.getGuestName();
int totalStayNum=(int)stayNum; //计算客人总共在酒店住的天数
double totalExpense=income; //记录客人总的花费,将成为以后的优惠政策的依据
CallableStatement csmt = connect.prepareCall("{call update_HistoryGuestInfo(?,?,?,?,?,?)}");
csmt.setInt(1,firstCheckInId);
csmt.setInt(2,certificateKind);
csmt.setString(3,certificateId);
csmt.setString(4,guestName);
csmt.setInt(5,totalStayNum);
csmt.setDouble(6,totalExpense);
csmt.execute();
//////////////////////////////////////////////
connect.close();
}catch (Exception e) {
e.printStackTrace();//把该 Throwable 和它的跟踪情况打印到标准错误流。
}
}
/////////////////////////////////////////////////////////////////////
//保存登记信息
public void saveCheckInInfo(CheckInInfo cii){
CheckInInfo checkInInfo = new CheckInInfo();
checkInInfo = cii;
//////////////////////////////////
try{
System.out.println("连接数据库。。。");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//连接数据库
Connection connect=DriverManager.getConnection("jdbc:odbc:hotelmanager"," "," ");
System.out.println("成功连接数据库");
///////////////////////////////////
//添加登记客人个人信息,并生成标志号
String sql="insert into CheckInGuestPersonInfo(guestName,certificateKind,certificateId,sex,guestNum,stayDayNum,note,desposit,arriveDate) values(?,?,?,?,?,?,?,?,?)";
String name=checkInInfo.getGuestName();
int certifyKind=checkInInfo.getCertificateKind();
String certifyId=checkInInfo.getCertificateId();
int sex=checkInInfo.getSex();
int num=checkInInfo.getGuestNum();
int staydaynum=checkInInfo.getStayDayNum();
String note=checkInInfo.getNote();
int money=checkInInfo.getDesposit();
String arrivedate=checkInInfo.getArriveDate();
PreparedStatement prepareState=connect.prepareCall(sql);//设定数据库查寻条件
prepareState.clearParameters();
prepareState.setString(1,name);
prepareState.setInt(2,certifyKind);
prepareState.setString(3,certifyId);
prepareState.setInt(4,sex);
prepareState.setInt(5,num);
prepareState.setInt(6,staydaynum);
prepareState.setString(7,note);
prepareState.setInt(8,money);
prepareState.setString(9,arrivedate);
int result = prepareState.executeUpdate(); //执行数据库添加
if(result==1) //成功更新数据库
{
System.out.println("保存登记的客人个人信息成功");
}else{
System.out.println("保存登记失败");
connect.close();
return;
}
///////////////////////////////更新客人的登记的房间信息
//获得登记客人标号
System.out.println("获得登记客人标号");
String sql2="select checkInGuestId from CheckInGuestPersonInfo where certificateKind=? and certificateId = ?";
PreparedStatement prepare2=connect.prepareCall(sql2);
prepare2.clearParameters();
prepare2.setString(1,certifyKind+"");
prepare2.setString(2,certifyId+"");
ResultSet resultset=prepare2.executeQuery();
int guestId=0;
while(resultset.next())
{
guestId=resultset.getInt("checkInGuestId");
System.out.println("登记客户号码:"+guestId);
}
///////////////////////////////
GuestRoom room=new GuestRoom();
String roomId="";
for (Enumeration ee = checkInInfo.getChoosenRoomList().elements(); ee.hasMoreElements() ;)
{
room=(GuestRoom)ee.nextElement();
roomId=room.guestRoomId;
String sql3="insert into CheckInGuestRoomInfo(checkInGuestId,guestRoomId) values(?,?)";
PreparedStatement prepareStategr=connect.prepareCall(sql3);//设定数据库查寻条件
prepareStategr.clearParameters();
prepareStategr.setString(1,guestId+"");
prepareStategr.setString(2,roomId);
int resultroomguest = prepareStategr.executeUpdate(); //执行数据库添加
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -