import java.util.*;
import java.math.*;
import java.sql.*;
import sqlj.runtime.*;
import sqlj.runtime.ref.*;
import oracle.sql.*;
import oracle.jdbc.driver.*;
#sql iterator CityIter (myCityObject city );
public class sqljObjectJavaSample {
DefaultContext m_dCtx; sqljObjectJavaFrame m_GUI;
public sqljObjectJavaSample() {
try {
m_GUI =new sqljObjectJavaFrame(this);
}catch (Exception e) { m_GUI.putStatus(" Error :");
m_GUI.appendStatus(" "+e.toString());
}
}
public static void main(String[] args) {
sqljObjectJavaSample OOS = new sqljObjectJavaSample();
OOS.dbConnection(); }
public void dispatchEvent (String p_eventName) {
String l_name = m_GUI.m_cityName.getText();
String l_density = m_GUI.m_populationDensity.getText();
String l_state = m_GUI.m_stateProvince.getText();
String l_code = m_GUI.m_cityCode.getText();
if (p_eventName.equals("SELECT"))
selectRecord(l_name, l_density, l_state, l_code);
else if (p_eventName.equals("INSERT"))
insertRecord(l_name, l_density, l_state, l_code);
else if (p_eventName.equals("UPDATE"))
updateRecord(l_name, l_density, l_state, l_code);
else if (p_eventName.equals("DELETE")) {
int l_row = m_GUI.m_cityTable.getSelectedRow();
String l_scode = (String)m_GUI.m_cityTableModel.getRow(l_row).elementAt(2);
deleteRecord(l_scode);
} else if (p_eventName.equals("EXIT")) exitApplication();
}
public void dbConnection(){
m_GUI.enableButtons(false);
try{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
m_GUI.putStatus("Trying to connect to the Database");
String l_dbConnectString =
"(DESCRIPTION=(ADDRESS=(HOST="+ConnectionParams.s_hostName+")"+
"(PROTOCOL=tcp)(PORT="+ConnectionParams.s_portNumber+"))"+
"(CONNECT_DATA=(SID="+ConnectionParams.s_databaseSID+")))";
m_dCtx = new DefaultContext(
"jdbc:oracle:thin:@"+l_dbConnectString,
ConnectionParams.s_userName,
ConnectionParams.s_password,
false);
DefaultContext.setDefaultContext(m_dCtx);
m_GUI.putStatus("Connected to "+ConnectionParams.s_databaseSID+ " as "+
ConnectionParams.s_userName);
m_GUI.enableButtons(true);
} catch(Exception ex){ m_GUI.putStatus(
"Error in Connecting to the Database "+'\n'+ex.toString());
}
}
void selectRecord(String p_name, String p_density, String p_state, String p_code){
try {
if (p_code.equals(""))
p_code = "%";
if(p_name.equals(""))
p_name = "%";
CityIter l_cities;
#sql l_cities = { select a.OBJCITY city from TABLE_CITY_OBJ a where
a.OBJCITY.CITY_CODE LIKE :p_code
AND a.OBJCITY.NAME LIKE :p_name };
while(l_cities.next()) {
myCityObject l_city_object = l_cities.city();
m_GUI.addToJTable(l_city_object.getName(),
(l_city_object.getProvince()==null)?"":l_city_object.getProvince(),
l_city_object.getCityCode(),l_city_object.getDensityString(),
l_city_object.getPopulationDensity());
}
l_cities.close(); m_GUI.appendStatus(" Rows selected");
} catch (Exception ex) { m_GUI.putStatus(" Error in Querying: ");
m_GUI.appendStatus(" "+ex.toString());
}
}
void insertRecord(String p_name, String p_density, String p_state, String p_code){
java.math.BigDecimal l_densityint = new BigDecimal(0);
if (p_density.compareTo("") != 0) {
try {
l_densityint = new BigDecimal(p_density);
} catch (NumberFormatException ex) {
m_GUI.putStatus(" Error in constructing BigDecimal: ");
m_GUI.appendStatus(" "+ex.toString());
}
}
try {
myCityObject l_row = new myCityObject();
l_row.setCityCode(p_code);
l_row.setName(p_name);
l_row.setPopulationDensity(l_densityint);
l_row.setProvince(p_state);
#sql { delete from TABLE_CITY_OBJ a where a.OBJCITY.CITY_CODE = :p_code };
m_GUI.putStatus("Row deleted");
} catch (SQLException ex){ m_GUI.putStatus(" Error in Deleting: ");
m_GUI.appendStatus(" "+ex.toString());
}
m_GUI.m_cityTable.clearSelection();
}
public void exitApplication(){
if (m_dCtx != null) {
try {
m_dCtx.close(); } catch (Exception ex){ m_GUI.putStatus(" Error in Closing the connection: ");
m_GUI.appendStatus(" "+ex.toString());
}
}
System.exit(0);
}
}
|