Mega Code Archive

 
Categories / Java / Database SQL JDBC
 

Register custome type to Oracle

import java.util.*; import java.io.*; import java.sql.*; public class InsertCustomType2_Oracle {   public static Connection getConnection() throws Exception {     String driver = "oracle.jdbc.driver.OracleDriver";     String url = "jdbc:oracle:thin:@localhost:1521:databaseName";     String username = "name";     String password = "pass";     Class.forName(driver); // load Oracle driver     return DriverManager.getConnection(url, username, password);   }   public static void main(String[] args) {     String id = "001";     String isbn = "1234567890";     String title = "Java Oracle";     String author = "rntsoft";     int edition = 1;     // create the Book object     Book book = new Book(isbn, title, author, edition);     book.print();     Connection conn = null;     PreparedStatement pstmt = null;     try {       conn = getConnection();       // create type map       java.util.Map map = conn.getTypeMap();       System.out.println("map=" + map);       map.put("BOOK", Class.forName("Book"));       System.out.println("map=" + map);       String insert = "insert into book_table(ID, BOOK) values(?, ?)";       pstmt = conn.prepareStatement(insert);       pstmt.setString(1, id);       pstmt.setObject(2, book);       pstmt.executeUpdate();     } catch (Exception e) {       e.printStackTrace();       System.exit(1);     } finally {       try {         pstmt.close();         conn.close();       } catch (SQLException e) {         e.printStackTrace();       }     }   } } /**  * A class to hold a copy of "BOOK" data type  */ class Book implements SQLData, Serializable {   public static final String SQL_TYPE_NAME = "BOOK";   public String isbn;   public String title;   public String author;   public int edition;   public Book() {   }   public Book(String isbn, String title, String author, int edition) {     this.isbn = isbn;     this.title = title;     this.author = author;     this.edition = edition;   }   // retrieves the fully qualified name of the SQL   // user-defined type that this object represents.   public String getSQLTypeName() {     return SQL_TYPE_NAME;   }   // populates this object with data it reads from stream   public void readSQL(SQLInput stream, String sqlType) throws SQLException {     this.isbn = stream.readString();     this.title = stream.readString();     this.author = stream.readString();     this.edition = stream.readInt();   }   // writes this object to stream   public void writeSQL(SQLOutput stream) throws SQLException {     stream.writeString(this.isbn);     stream.writeString(this.title);     stream.writeString(this.author);     stream.writeInt(this.edition);   }   public void print() {     System.out.println("isbn=" + isbn);     System.out.println("title=" + title);     System.out.println("author=" + author);     System.out.println("edition=" + edition);   } }