Mega Code Archive

 
Categories / Java / Database SQL JDBC
 

Insert custom type to Oracle

import java.io.Serializable; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLData; import java.sql.SQLException; import java.sql.SQLInput; import java.sql.SQLOutput; public class InsertCustomType_Oracle {   public static Connection getConnection() throws Exception {     String driver = "oracle.jdbc.driver.OracleDriver";     String url = "jdbc:oracle:thin:@localhost:1521:databaseName";     String username = "userName";     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 demo";     String author = "rntsoft";     int edition = 1;     Connection conn = null;     PreparedStatement pstmt = null;     try {       conn = getConnection();       String insert = "insert into book_table values(?, BOOK(?, ?, ?, ?))";       pstmt = conn.prepareStatement(insert);       pstmt.setString(1, id);       pstmt.setString(2, isbn);       pstmt.setString(3, title);       pstmt.setString(4, author);       pstmt.setInt(5, edition);       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);   } }