/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mysqltesting;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.Date;
import javax.swing.JFileChooser;

/**
 *
 * @author Todd
 */
public class Csc25412 {

    public static void main(String[] args) {

        try {
            System.out.println(" *** PREPARING TABLE *** ");
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3310/test?useServerPrepStatements=false&useUnicode=true&characterEncoding=gbk", "root", null);
            Statement stmt = conn.createStatement();
            stmt.execute("DROP TABLE IF EXISTS `user_info_appeal`");
            stmt.execute("CREATE TABLE `user_info_appeal` ( `id` int(10) unsigned NOT NULL auto_increment, `userid` varchar(80) collate gbk_bin NOT NULL default '', `createtime` datetime default NULL, `logintime` datetime default NULL, `otherinfo` text collate gbk_bin, `personalid` varchar(30) collate gbk_bin default NULL, `personalidpic` longblob, `email` varchar(50) collate gbk_bin default NULL, `submittime` datetime default NULL, `status` char(1) collate gbk_bin default '0', `modifytime` datetime default NULL, `modifyuser` varchar(20) collate gbk_bin default NULL, `modifydesc` varchar(255) collate gbk_bin default NULL, PRIMARY KEY (`id`), KEY `key_user_info_appeal_userid` (`userid`) ) ENGINE=InnoDB DEFAULT CHARSET=gbk COLLATE=gbk_bin");
            stmt.close();
            System.out.println(" *** READY TO INPUT BINARY DATA *** ");

            JFileChooser jfc = new JFileChooser();

            if (jfc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
                File f = jfc.getSelectedFile();
                if (f.exists()) {
                    InputStream is = new FileInputStream(f);
                    PreparedStatement prst = null;

                    String sql = "insert into user_info_appeal(userid,createtime,logintime,otherinfo,personalid,personalidpic,email,status,submittime) values(?,NOW(), NOW(),?,?,?,?,?,NOW())";
                    prst = conn.prepareStatement(sql);
                    prst.setInt(1, 1);
                    prst.setString(2, "N/A");
                    prst.setString(3, "N/A");
                    prst.setBinaryStream(4, is, (int) f.length());
                    prst.setString(5, "N/A");
                    prst.setString(6, "N");
                    prst.executeUpdate();
                    System.out.println(" *** DONE WITH INSERT *** ");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(" *** COMPLETE *** ");

    }
}
