InsertCustomType2_Oracle.java Source code

Java tutorial

Introduction

Here is the source code for InsertCustomType2_Oracle.java

Source

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