⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 10b0c02982d90019124fc7c5db976065

📁 在ECLIPSE开发环境下使用JAVA编写的通讯录
💻
字号:
//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 + -