package com.oracleObjects.AcessOracleObjects;
import java.io.IOException;
import java.sql.*;
import java.util.List;
import java.util.Properties;
import oracle.sql.STRUCT;
import oracle.sql.StructDescriptor;
/**
* @author tzg136
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class AcessOracleObjectsUsingJava_EMP {
Connection conn = null;
String driverName ="";
String serverName = "";
String username ="";
String password = "";
String portNumber ="";
String sid = "";
String databaseName = "";
public AcessOracleObjectsUsingJava_EMP()
{
Properties configFile = new Properties();
try {
configFile.load(AcessOracleObjectsUsingJava_EMP.class.getClassLoader().getResourceAsStream("config.properties"));
driverName =configFile.getProperty("driverName");
serverName = configFile.getProperty("serverName");
username =configFile.getProperty("username");
password = configFile.getProperty("password");
portNumber =configFile.getProperty("portNumber");
sid = configFile.getProperty("sid");
databaseName = configFile.getProperty("databaseName");
} catch (IOException e) {
e.printStackTrace();
}
}
public Connection getConnection()
{
try
{
Class.forName(driverName);
String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" + sid;
conn = DriverManager.getConnection(url, username, password);
System.out.println("Connected Sucessfully");
}
catch (ClassNotFoundException e) {
System.out.println("ClassNotFoundException "+e.getMessage());
} catch (SQLException e) {
System.out.println("SQl Syntaxt Error "+e.getMessage());
}
catch (Exception e) {
System.out.println("Exception "+e.getMessage());
}
return conn;
}
public void insertTableObjectValue(Emp objEmp)
{
try {
Object objArray[] = new Object[4];
objArray[0] = objEmp.getEmp_id();
objArray[1] = objEmp.getEmp_Name();
objArray[2] = objEmp.getAge();
objArray[3] = new Integer(objEmp.getSalary());
StructDescriptor colStructDesc = StructDescriptor.createDescriptor("OBJ_TYPE_EMP", conn);
oracle.sql.STRUCT colStruct = new STRUCT(colStructDesc,conn, objArray);
PreparedStatement prepa_stmt= conn.prepareStatement( "INSERT INTO TABLE_EMP_OBJ VALUES (?)");
prepa_stmt.setObject(1,colStruct); // Bind the Java Object to the above Statement ps.executeUpdate();
prepa_stmt.executeUpdate();
} catch (SQLException e) {
System.out.println("SQLException"+ e.getMessage());
}
catch (Exception e) {
System.out.println("Exception"+ e.getMessage());
}
}
public void createTableWithObject()
{
/*
*
* CREATE TYPE OBJ_TYPE_EMP as OBJECT (
EMP_ID VARCHAR2(40),
EMP_NAME VARCHAR2(40),
AGE VARCHAR2(10) ,
SALARY NUMBER )
CREATE TABLE TABLE_EMP_OBJ (ObjEmp OBJ_TYPE_EMP )
*/
}
public void selectTableObjectValue()
{
try {
Statement stmt = conn.createStatement();
// Select rows from object1_table
ResultSet resultSet = stmt.executeQuery("SELECT * FROM TABLE_EMP_OBJ");
// OracleResultSet resultSet = (OracleResultSet)pst.executeQuery();
java.util.Hashtable mymap = new java.util.Hashtable();
Class obj = Class.forName("com.oracleObjects.AcessOracleObjects.Emp");
// Map the loaded java class to the object-type
mymap.put ("OBJ_TYPE_EMP", obj);
// Get the OBJECT values from each row
while (resultSet.next())
{
Emp objEmp;
objEmp = (Emp)resultSet.getObject(1, mymap);
System.out.println(""+objEmp.getEmp_Name());
System.out.println(""+objEmp.getAge());
}
}
catch (SQLException e) {
System.out.println("SQLException"+ e.getMessage());
e.printStackTrace();
}
catch (Exception e) {
System.out.println("Exception"+ e.getMessage());
}
}
public void closeConnection()
{
try
{
conn.close();
}
catch (Exception e) {
System.out.println("Exception"+ e.getMessage());
}
}
public static void main(String[] args) {
AcessOracleObjectsUsingJava_EMP objAccessJavaObject= new AcessOracleObjectsUsingJava_EMP();
Emp objEmp= new Emp();
objEmp.setEmp_id("1000");
objEmp.setEmp_Name("Andrew");
objEmp.setAge("34");
objEmp.setSalary(500);
Connection conn= objAccessJavaObject.getConnection();
if(args[0].equalsIgnoreCase("I"))
{
objAccessJavaObject.insertTableObjectValue(objEmp);
}
if(args[0].equalsIgnoreCase("S"))
{
objAccessJavaObject.selectTableObjectValue();
}
objAccessJavaObject.closeConnection();
}
}
No comments:
Post a Comment