Hi All,
  I am quite confused (PLEASE PLEASE Help), I cannot find anything on
the web). I read that you can declare a class that implements SQLData
(in this case I set up a class called Complex from the /src/tutorial
datatype that mimics the user-defined datatype in the db) and then set
the mapping appropriately (see below).
   But it does not work ( I maybe doing something wrong)!!!
The "getObject" code throws:
Exception in thread "main" org.postgresql.util.PSQLException:
Unsupported Types value: 2,000
and the setObject code throws:
Exception in thread "main" java.lang.ClassCastException: java.lang.Class
 (points to the getObject() line

ANY help would be much appreciated!
much thanks in advance.
-assad

Reference:
//Mapping type setup
                java.util.Map map = db.getTypeMap();
                if(map == null) map = new HashMap();
                map.put("complex", Class.forName("Complex"));
                db.setTypeMap(map);
                
                map = db.getTypeMap();

and then I can set and get as follows:

//set info
                Complex test = new Complex();
                test.a = 5.6;
                test.b = 3.4;
                Statement stmt = db.createStatement();
                PreparedStatement temp = db.prepareStatement("INSERT INTO
test_complex VALUES (DEFAULT, ?);");
                temp.setObject(1,test);
        temp.executeUpdate();

//I also  tried with setObject with the type specified to
java.sql.TYPE_JavaObject

//get info

        ResultSet rs = stmt.executeQuery("SELECT * FROM test_complex");
                System.out.println("Got ");
                
                while(rs.next()){
                        System.out.println("Got ");
                ResultSetMetaData metaData = rs.getMetaData();
                System.out.println("Type from SQL: " +
                metaData.getColumnTypeName(2));

                Object foo = (Object) rs.getObject(2, map);

                if (foo instanceof Complex) {
                Complex cp = (Complex)foo;
                System.out.println("Got: " + cp + " from DB");

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to