SQLData user-defined-types and getObject()

Поиск
Список
Период
Сортировка
От Assad Jarrahian
Тема SQLData user-defined-types and getObject()
Дата
Msg-id 4bd3e1480601071928r372ccb5ct8653d50558edeba@mail.gmail.com
обсуждение исходный текст
Ответы Re: [JDBC] SQLData user-defined-types and getObject()  (Kris Jurka <books@ejurka.com>)
Список pgsql-general
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");

В списке pgsql-general по дате отправления:

Предыдущее
От: Marcos José Setim
Дата:
Сообщение: Create one prepared function
Следующее
От: Neil Conway
Дата:
Сообщение: Re: Create one prepared function