📄 10b0c02982d90019124fc7c5db976065
字号:
//Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
//Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
//Decompiler options: packimports(3) fieldsfirst ansi
//Source File Name: MySQLDataAccess.java
package com.globalmethod.addressbook;
import java.sql.*;
//Referenced classes of package com.globalmethod.addressbook:
// AddressBookDataAccess, AddressBookEntry, DataAccessException
public class MySQLDataAccess
implements AddressBookDataAccess
{
private Connection connection;
private PreparedStatement sqlFind;
private PreparedStatement sqlPersonID;
private PreparedStatement sqlInsertName;
private PreparedStatement sqlInsertAddress;
private PreparedStatement sqlInsertPhone;
private PreparedStatement sqlInsertEmail;
private PreparedStatement sqlUpdateName;
private PreparedStatement sqlUpdateAddress;
private PreparedStatement sqlUpdatePhone;
private PreparedStatement sqlUpdateEmail;
private PreparedStatement sqlDeleteName;
private PreparedStatement sqlDeleteAddress;
private PreparedStatement sqlDeletePhone;
private PreparedStatement sqlDeleteEmail;
public MySQLDataAccess()
throws Exception
{
connect();
sqlFind = connection.prepareStatement("SELECT names.personID, firstName, lastName, addressID, address1, address2, city, state, zipcode, phoneID, phoneNumber, emailID, emailAddress FROM names, addresses, phoneNumbers, emailAddresses WHERE lastName = ? AND names.personID = addresses.personID AND names.personID = phoneNumbers.personID AND names.personID = emailAddresses.personID");
sqlPersonID = connection.prepareStatement("SELECT max(personID) AS persionID FROM names");
sqlInsertName = connection.prepareStatement("INSERT INTO names ( firstName, lastName ) VALUES ( ? , ? )");
sqlInsertAddress = connection.prepareStatement("INSERT INTO addresses ( personID, address1, address2, city, state, zipcode ) VALUES ( ? , ? , ? , ? , ? , ? )");
sqlInsertPhone = connection.prepareStatement("INSERT INTO phoneNumbers ( personID, phoneNumber) VALUES ( ? , ? )");
sqlInsertEmail = connection.prepareStatement("INSERT INTO emailAddresses ( personID, emailAddress ) VALUES ( ? , ? )");
sqlUpdateName = connection.prepareStatement("UPDATE names SET firstName = ?, lastName = ? WHERE personID = ?");
sqlUpdateAddress = connection.prepareStatement("UPDATE addresses SET address1 = ?, address2 = ?, city = ?, state = ?, zipcode = ? WHERE addressID = ?");
sqlUpdatePhone = connection.prepareStatement("UPDATE phoneNumbers SET phoneNumber = ? WHERE phoneID = ?");
sqlUpdateEmail = connection.prepareStatement("UPDATE emailAddresses SET emailAddress = ? WHERE emailID = ?");
sqlDeleteName = connection.prepareStatement("DELETE FROM names WHERE personID = ?");
sqlDeleteAddress = connection.prepareStatement("DELETE FROM addresses WHERE personID = ?");
sqlDeletePhone = connection.prepareStatement("DELETE FROM phoneNumbers WHERE personID = ?");
sqlDeleteEmail = connection.prepareStatement("DELETE FROM emailAddresses WHERE personID = ?");
}
private void connect()
throws Exception
{
String driver = "org.gjt.mm.mysql.Driver";
String url = "jdbc:mysql://localhost/addressbook?user=root&password=12345&useUnicode=true&characterEncoding=GB2312";
Class.forName(driver).newInstance();
connection = DriverManager.getConnection(url);
connection.setAutoCommit(false);
}
public AddressBookEntry findPerson(String lastName)
{
try
{
sqlFind.setString(1, lastName);
ResultSet resultSet = sqlFind.executeQuery();
if(!resultSet.next())
{
return null;
} else
{
AddressBookEntry person = new AddressBookEntry(resultSet.getInt(1));
person.setFirstName(resultSet.getString(2));
person.setLastName(resultSet.getString(3));
person.setAddressID(resultSet.getInt(4));
person.setAddress1(resultSet.getString(5));
person.setAddress2(resultSet.getString(6));
person.setCity(resultSet.getString(7));
person.setState(resultSet.getString(8));
person.setZipcode(resultSet.getString(9));
person.setPhoneID(resultSet.getInt(10));
person.setPhoneNumber(resultSet.getString(11));
person.setEmailID(resultSet.getInt(12));
person.setEmailAddress(resultSet.getString(13));
return person;
}
}
catch(SQLException sqlException)
{
return null;
}
}
public boolean savePerson(AddressBookEntry person)
throws DataAccessException
{
try
{
sqlUpdateName.setString(1, person.getFirstName());
sqlUpdateName.setString(2, person.getLastName());
sqlUpdateName.setInt(3, person.getPersonID());
int result = sqlUpdateName.executeUpdate();
if(result == 0)
{
connection.rollback();
return false;
}
sqlUpdateAddress.setString(1, person.getAddress1());
sqlUpdateAddress.setString(2, person.getAddress2());
sqlUpdateAddress.setString(3, person.getCity());
sqlUpdateAddress.setString(4, person.getState());
sqlUpdateAddress.setString(5, person.getZipcode());
sqlUpdateAddress.setInt(6, person.getAddressID());
result = sqlUpdateAddress.executeUpdate();
if(result == 0)
{
connection.rollback();
return false;
}
sqlUpdatePhone.setString(1, person.getPhoneNumber());
sqlUpdatePhone.setInt(2, person.getPhoneID());
result = sqlUpdatePhone.executeUpdate();
if(result == 0)
{
connection.rollback();
return false;
}
sqlUpdateEmail.setString(1, person.getEmailAddress());
sqlUpdateEmail.setInt(2, person.getEmailID());
result = sqlUpdateEmail.executeUpdate();
if(result == 0)
{
connection.rollback();
return false;
} else
{
connection.commit();
return true;
}
}
catch(SQLException sqlException) { }
try
{
connection.rollback();
return false;
}
catch(SQLException exception)
{
throw new DataAccessException(exception);
}
}
public boolean newPerson(AddressBookEntry person)
throws DataAccessException
{
try
{
sqlInsertName.setString(1, person.getFirstName());
sqlInsertName.setString(2, person.getLastName());
int result = sqlInsertName.executeUpdate();
if(result == 0)
{
connection.rollback();
return false;
}
ResultSet resultPersonID = sqlPersonID.executeQuery();
if(resultPersonID.next())
{
int personID = resultPersonID.getInt(1);
sqlInsertAddress.setInt(1, personID);
sqlInsertAddress.setString(2, person.getAddress1());
sqlInsertAddress.setString(3, person.getAddress2());
sqlInsertAddress.setString(4, person.getCity());
sqlInsertAddress.setString(5, person.getState());
sqlInsertAddress.setString(6, person.getZipcode());
result = sqlInsertAddress.executeUpdate();
if(result == 0)
{
connection.rollback();
return false;
}
sqlInsertPhone.setInt(1, personID);
sqlInsertPhone.setString(2, person.getPhoneNumber());
result = sqlInsertPhone.executeUpdate();
if(result == 0)
{
connection.rollback();
return false;
}
sqlInsertEmail.setInt(1, personID);
sqlInsertEmail.setString(2, person.getEmailAddress());
result = sqlInsertEmail.executeUpdate();
if(result == 0)
{
connection.rollback();
return false;
} else
{
connection.commit();
return true;
}
} else
{
return false;
}
}
catch(SQLException sqlException)
{
try
{
sqlException.printStackTrace();
connection.rollback();
return false;
}
catch(SQLException exception)
{
throw new DataAccessException(exception);
}
}
}
public boolean deletePerson(AddressBookEntry person)
throws DataAccessException
{
try
{
sqlDeleteAddress.setInt(1, person.getPersonID());
int result = sqlDeleteAddress.executeUpdate();
if(result == 0)
{
connection.rollback();
return false;
}
sqlDeletePhone.setInt(1, person.getPersonID());
result = sqlDeletePhone.executeUpdate();
if(result == 0)
{
connection.rollback();
return false;
}
sqlDeleteEmail.setInt(1, person.getPersonID());
result = sqlDeleteEmail.executeUpdate();
if(result == 0)
{
connection.rollback();
return false;
}
sqlDeleteName.setInt(1, person.getPersonID());
result = sqlDeleteName.executeUpdate();
if(result == 0)
{
connection.rollback();
return false;
} else
{
connection.commit();
return true;
}
}
catch(SQLException sqlException) { }
try
{
connection.rollback();
return false;
}
catch(SQLException exception)
{
throw new DataAccessException(exception);
}
}
public void close()
{
try
{
sqlFind.close();
sqlPersonID.close();
sqlInsertName.close();
sqlInsertAddress.close();
sqlInsertPhone.close();
sqlInsertEmail.close();
sqlUpdateName.close();
sqlUpdateAddress.close();
sqlUpdatePhone.close();
sqlUpdateEmail.close();
sqlDeleteName.close();
sqlDeleteAddress.close();
sqlDeletePhone.close();
sqlDeleteEmail.close();
connection.close();
}
catch(SQLException sqlException)
{
sqlException.printStackTrace();
}
}
protected void finalize()
{
close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -