package oracle.otnsamples.jdbc.javaobjects; import java.util.Enumeration; import java.util.Properties; import java.util.ResourceBundle; import java.math.BigDecimal;
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.io.IOException;
import oracle.jdbc.driver.OraclePreparedStatement; import oracle.jdbc.driver.OracleResultSet; import oracle.jdbc.pool.OracleDataSource;
public class ObjectJavaSample { Connection connection = null; ObjectJavaFrame gui;
public ObjectJavaSample() { try { gui =new ObjectJavaFrame(this); } catch (Exception e) { gui.putStatus(" Error :"); gui.appendStatus(" "+e.toString()); } }
public static void main(String[] args) { ObjectJavaSample ojs = new ObjectJavaSample(); ojs.dbConnection(); }
public void dispatchEvent (String eventName) { String name = gui.cityName.getText(); String density = gui.populationDensity.getText(); String state = gui.stateProvince.getText(); String code = gui.cityCode.getText();
if (eventName.equals("SELECT")) selectRecord(name, density, state, code); else if (eventName.equals("INSERT")) insertRecord(name, density, state, code); else if (eventName.equals("UPDATE")) updateRecord(name, density, state, code); else if (eventName.equals("DELETE")) { int row = gui.cityTable.getSelectedRow(); String scode = (String)gui.cityTableModel.getRow(row).elementAt(2); deleteRecord(scode); gui.cityTableModel.deleteRow(row); } else if (eventName.equals("EXIT")) exitApplication(); }
private Properties loadParams(String file) throws IOException { Properties prop = new Properties(); ResourceBundle bundle = ResourceBundle.getBundle(file); Enumeration enum = bundle.getKeys(); String key = null; while(enum.hasMoreElements()) { key = (String)enum.nextElement(); prop.put(key, bundle.getObject(key)); } return prop; }
private boolean dbConnection() { try { gui.putStatus("Trying to connect to the Database"); Properties prop = this.loadParams("Connection"); OracleDataSource ods = new OracleDataSource(); ods.setDriverType("thin"); ods.setServerName((String)prop.get("HostName")); ods.setDatabaseName((String)prop.get("SID")); ods.setPortNumber(new Integer((String)prop.get("Port")).intValue()); ods.setUser((String)prop.get("UserName")); ods.setPassword((String)prop.get("Password")); connection=ods.getConnection(); gui.putStatus(" Connected to " + prop.get("SID") + " Database as " + prop.get("UserName")); } catch(SQLException ex) { gui.putStatus("Error in Connecting to the Database "+'\n'+ex.toString()); } catch(IOException ex) { gui.putStatus("Error in reading the properties file "+'\n'+ex.toString()); } if( connection != null ) return true; return false; }
private void selectRecord(String name, String density, String state, String code) { String query = "SELECT * FROM TABLE_CITY_OBJ a "+ "WHERE a.OBJCITY.CITY_CODE LIKE ? AND a.OBJCITY.NAME LIKE ?"; try { PreparedStatement pst = connection.prepareStatement(query);
if(code.equals("")) code = "%"; else code = "%"+code+"%"; if(name.equals("")) name = "%"; else name = "%"+name+"%";
pst.setString(1,code); pst.setString(2,name);
OracleResultSet resultSet = (OracleResultSet)pst.executeQuery();
java.util.Hashtable mymap = new java.util.Hashtable();
Class obj = Class.forName("oracle.otnsamples.jdbc.javaobjects.CityObject");
mymap.put ("OBJ_TYPE_CITY", obj);
while(resultSet.next()) { CityObject city;
city = (CityObject)resultSet.getObject(1, mymap);
gui.addToJTable(city.getName(), (city.getProvince()==null)?"":city.getProvince(), city.getCityCode(), city.getPopulationDensity()); } pst.close(); gui.appendStatus(" Rows selected");
} catch (SQLException ex) { gui.putStatus(" Error in Querying: "); gui.appendStatus("\n"+ex.toString()); } catch (Exception ex) { gui.putStatus(" Error in Querying: "); gui.appendStatus("\n"+ex.toString()); } }
private void insertRecord(String name, String density, String state, String code) { java.math.BigDecimal densityint = new BigDecimal(0); if (density.compareTo("") != 0) { try { densityint = new BigDecimal(density); } catch (NumberFormatException ex) { gui.putStatus(" Error in constructing BigDecimal: "); gui.appendStatus("\n"+ex.toString()); } } try { CityObject row = new CityObject(); row.setCityCode(code); row.setName(name); row.setPopulationDensity(densityint); row.setProvince(state);
OraclePreparedStatement ps = (OraclePreparedStatement)connection.prepareStatement( "INSERT INTO TABLE_CITY_OBJ VALUES (?)");
ps.setObject(1,row); ps.executeUpdate(); ps.close(); gui.putStatus(" Row inserted");
gui.addToJTable(row.getName(), (row.getProvince()==null)?"":row.getProvince(), row.getCityCode(), row.getPopulationDensity()); } catch (SQLException ex) { gui.putStatus(" Error in Inserting: "); gui.appendStatus(" "+ex.toString()); } }
private void updateRecord(String name, String density, String state, String code) { java.math.BigDecimal densityint = new BigDecimal(0); if (density.compareTo("") != 0) { try { densityint = new BigDecimal(density); } catch (NumberFormatException ex) { gui.putStatus(" Error in constructing BigDecimal: "); gui.appendStatus("\n"+ex.toString()); } } try { CityObject row = new CityObject(); row.setCityCode(code); row.setName(name); row.setPopulationDensity(densityint); row.setProvince(state);
OraclePreparedStatement ps = (OraclePreparedStatement)connection.prepareStatement( "UPDATE TABLE_CITY_OBJ a SET a.OBJCITY = ?"+ "WHERE a.OBJCITY.CITY_CODE = ?");
ps.setObject(1,row); ps.setString(2,code);
ps.executeUpdate(); ps.close(); gui.putStatus(" Row updated");
gui.updateJTable(row.getName(),row.getProvince(), row.getCityCode(),row.getPopulationDensity()); } catch (SQLException ex){ gui.putStatus(" Error in Updating: "); gui.appendStatus("\n"+ex.toString()); } }
private void deleteRecord(String code){
try { PreparedStatement ps = connection.prepareStatement( "DELETE FROM TABLE_CITY_OBJ a WHERE a.OBJCITY.CITY_CODE =?"); ps.setString(1,code);
ps.executeUpdate(); ps.close(); gui.putStatus("Row deleted"); } catch (SQLException ex){ gui.putStatus(" Error in Deleting: "); gui.appendStatus("\n"+ex.toString()); } gui.cityTable.clearSelection(); }
private void exitApplication(){ if (connection != null) { try { connection.close(); } catch (Exception ex){ gui.putStatus(" Error in Closing the connection: "); gui.appendStatus(" "+ex.toString()); } } System.exit(0); } }
|