InsertCustomType_Oracle.java Source code

Java tutorial

Introduction

Here is the source code for InsertCustomType_Oracle.java

Source

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 = "java2s";
        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);
    }
}