On May 22, 6:27*pm, Lew <no...@lewscanon.com> wrote:
> sahm wrote:
> > I'm trying to insert PDF file in to mySQL [sic] Data Base but I keep receive
> > error and this is my code
>
> markspace and Jeff Higgins have already pointed out that your code will not
> compile and that you fail to reveal your actual problem.
>
> But wait, there's more.
>
> > public static File file;
> > public static FileInputStream fis;
>
> Sorry, 'public' members? *And why 'static'?
>
> > void get_Doc()
> > * * *{
>
> (Unconventional indentation - should line up with 'void getDoc()' line.)
>
> > * * * * *try
> > * * * * *{
> > * * * * * * *String fl = null;
>
> It's not often a good idea to initialize a variable to a value you never
> intend to use. *In the code you show us, doing so pushes a compiler error to a
> runtime exception. *You want to do the opposite.
>
>
>
> > * * * * * * *JFileChooser fc = new JFileChooser();
> > * * * * * * *fc.setDialogTitle("Select File");
> > * * * * * * *FileFilter filter, filter2;
> > * * * * * * *filter = new FileNameExtensionFilter("PDF", "PDF");
> > * * * * * * *filter2 = new FileNameExtensionFilter("JPG", "JPG");
> > * * * * * * *fc.addChoosableFileFilter(filter2);
> > * * * * * * *fc.addChoosableFileFilter(filter);
> > * * * * * * *fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
> > * * * * * * *fc.setAcceptAllFileFilterUsed(false);
> > * * * * * * *int returnVal = fc.showOpenDialog(this);
>
> > * * * * * * *if (returnVal == JFileChooser.APPROVE_OPTION)
> > * * * * * * *{
> > * * * * * * * * *file = fc.getSelectedFile();
> > * * * * * * * * *//fl = file.toString();
> > * * * * * * * * *fis = new FileInputStream(file);
>
> Be very, very careful mixing long-running actions with the Event Dispatch
> Thread. *You should separate non-GUI actions to a different thread.
>
> > * * * * * * * * *JOptionPane.showMessageDialog(this, fl.toString(),
>
> Invoking 'toString()' on a 'String' is wacky; invoking on value 'null' throws
> 'NullPointerException'.
>
> > "Information", JOptionPane.INFORMATION_MESSAGE);
>
> > * * * * * * *}
> > * * * * * * *else
> > * * * * * * *{
> > * * * * * * * * *JOptionPane.showMessageDialog(this, "Please select a
> > file" , "Error", JOptionPane.ERROR_MESSAGE);
>
> > * * * * * * *}
> > * * * * * * *this.dcument_Location_jTextField.setText(fl.toStri ng());
>
> Invoking 'toString()' on a 'String' is wacky; invoking on value 'null' throws
> 'NullPointerException'.
>
> Variable names (for non-constant or non-final variables) should not contain
> underscores.
>
>
>
> > * * * * *}
> > * * * * *catch(Exception e)
> > * * * * *{
> > * * * * * * *JOptionPane.showMessageDialog(this, e.toString(), "Error",
> > JOptionPane.ERROR_MESSAGE);
> > * * * * *}
> > * * *}
> > ///////////////////////////////////////////////////////////////////////
>
> > \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
> > void insert_Doc()
> > * * *{
> > * * * * *try
> > * * * * *{
> > * * * * * * IPClass ipc = new IPClass();
>
> > * * * * * * *Class.forName("com.mysql.jdbc.Driver");
>
> You don't need to attempt to reload a class over and over and over and over
> and over and ...
>
> Once, in a static initializer, is enough.
>
> > * * * * * * *Connection con;
> > * * * * * * *con = DriverManager.getConnection("jdbc:mysql://" + ipc.ip
> > + "/" + ipc.db,ipc.user,ipc.ps);
>
> Why on separate lines?
>
> > * * * * * * *//Statement stat = con.createStatement();
>
> Use 'PreparedStatement' instead of plain 'Statement' almost always.
>
> > * * * * * * * String inserting_Data = "insert into document_archive ("
> > +
> > * * * * * * * * * * * * * * * * * * *"Doc_ID, Doc_Type, Doc_Name,
> > Doc_Date, Doc_file, " +
>
> Whoa, there, sport! *That's some wide indentation you got there!
>
> > * * * * * * * * * * * * * * * * * * *"Doc_Bank_NO, Doc_Bank_Name,
> > Doc_Add_user ) " +
> > * * * * * * * * * * * * * * * * * * *"values (?, ?, ?, ?, ?, ?, ?, ?)";
>
> > * * * * * * *PreparedStatement ps = null;
>
> Why in the world do you bother initializing 'ps' to 'null'?
>
>
>
> > * * * * * * *ps = con.prepareStatement(inserting_Data);
>
> > * * * * * * *ps.setInt(1,
> > Integer.valueOf(documen_NO_jTextField.getText()));
> > * * * * * * *ps.setString(2,
> > String.valueOf(document_Type_jComboBox.getSelected Item()));
> > * * * * * * *ps.setString(3, document_Name_jTextField.getText());
> > * * * * * * *String today = getDocumentDate();
> > * * * * * * *ps.setString(4, String.valueOf(today));
> > * * * * * * *ps.setBinaryStream(5, fis, (int), file.length());
> > * * * * * * *ps.setString(6,
> > String.valueOf(bankNOjComboBox.getSelectedItem())) ;
> > * * * * * * *ps.setString(7, bankNOjTextField.getText());
> > * * * * * * *ps.setString(8, userName.useName);
> > * * * * * * *//ps.setBinaryStream(5, f1, (int) file.length());
> > * * * * * * *//ps.setString(5, fd.st_FName);
>
> > * * * * * * *ps.executeUpdate();
> > * * * * * * *JOptionPane.showMessageDialog(this, "Document inserted
> > successfully", "Information", JOptionPane.INFORMATION_MESSAGE);
> > * * * * * * *clean_Data();
>
> Dude! *Separate worker threads from the EDT!
>
> This is covered in the Swing tutorial on java.sun.com. *Read it.
>
> > * * * * *}
> > * * * * *catch(Exception e)
> > * * * * *{
> > * * * * * * *JOptionPane.showMessageDialog(this, e.toString(), "Error",
> > JOptionPane.ERROR_MESSAGE);
> > * * * * *}
> > * * *}
>
> --
> Lew
Thank you every body
I solve the problem
Best
Salim