| 
     
  
import java.math.BigDecimal; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLData; 
import java.sql.SQLException; 
import java.sql.SQLInput; 
import java.sql.SQLOutput; 
import java.sql.Statement; 
import java.text.NumberFormat; 
import java.util.Map; 
 
class Employee implements SQLData { 
  public BigDecimal SSN; 
 
  public String FirstName; 
 
  public String LastName; 
 
  public BigDecimal Salary; 
 
  private String sqlUdt; 
 
  public void writeSQL(SQLOutput stream) throws SQLException { 
    stream.writeBigDecimal(SSN); 
    stream.writeString(FirstName); 
    stream.writeString(LastName); 
    stream.writeBigDecimal(Salary); 
  } 
 
  public String getSQLTypeName() throws SQLException { 
    return sqlUdt; 
  } 
 
  public void readSQL(SQLInput stream, String typeName) throws SQLException { 
    sqlUdt = typeName; 
    SSN = stream.readBigDecimal(); 
    FirstName = stream.readString(); 
    LastName = stream.readString(); 
    Salary = stream.readBigDecimal(); 
  } 
 
  public String calcMonthlySalary() { 
    double monthlySalary = Salary.doubleValue() / 12; 
    NumberFormat nf = NumberFormat.getCurrencyInstance(); 
    String str = nf.format(monthlySalary); 
    return str; 
  } 
 
} 
 
public class Main { 
 
  public static void main(String[] args) throws Exception { 
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 
 
    Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@myserver:1521:ORCL", "yourName", "mypwd"); 
 
    Statement stmt = conn.createStatement(); 
 
    Map map = conn.getTypeMap(); 
    map.put("EMP_DATA", Class.forName("Employee")); 
    conn.setTypeMap(map); 
 
    ResultSet rs = stmt.executeQuery("SELECT * from Emp"); 
 
    Employee employee; 
 
    while (rs.next()) { 
      int empId = rs.getInt("EmpId"); 
      employee = (Employee) rs.getObject("Emp_Info"); 
 
      System.out.print("Employee Id: " + empId + ", SSN: " + employee.SSN); 
      System.out.print(", Name: " + employee.FirstName + " " + employee.LastName); 
      System.out.println(", Yearly Salary: $" + employee.Salary + " Monthly Salary: " 
          + employee.calcMonthlySalary()); 
    } 
    conn.close(); 
  } 
} 
 
    
   
    
    |