Java tutorial
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(); } }