Re: Problem whit insert pdf file into mySQL Database
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 re=
ceive
error and this is my code
markspace and Jeff Higgins have already pointed out that your code will n=
ot
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 err=
or 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_O=
NLY);
fc.setAcceptAllFileFilterUsed(false);
int returnVal = fc.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OP=
TION)
{
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' th=
rows
'NullPointerException'.
"Information", JOptionPane.INFORMATION_MESSAGE);
}
else
{
JOptionPane.showMessageDialog(this, =
"Please select a
file" , "Error", JOptionPane.ERROR_MESSAGE);
}
this.dcument_Location_jTextField.setText(fl.=
toString());
Invoking 'toString()' on a 'String' is wacky; invoking on value 'null' th=
rows
'NullPointerException'.
Variable names (for non-constant or non-final variables) should not conta=
in
underscores.
}
catch(Exception e)
{
JOptionPane.showMessageDialog(this, e.toStri=
ng(), "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 ov=
er
and over and ...
Once, in a static initializer, is enough.
Connection con;
con = DriverManager.getConnection("jdbc:my=
sql://" + 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 docu=
ment_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,
"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.getSelectedItem()));
ps.setString(3, document_Name_jTextField.get=
Text());
String today = getDocumentDate();
ps.setString(4, String.valueOf(today));
ps.setBinaryStream(5, fis, (int), file.lengt=
h());
ps.setString(6,
String.valueOf(bankNOjComboBox.getSelectedItem()));
ps.setString(7, bankNOjTextField.getText());
ps.setString(8, userName.useName);
//ps.setBinaryStream(5, f1, (int) file.lengt=
h());
//ps.setString(5, fd.st_FName);
ps.executeUpdate();
JOptionPane.showMessageDialog(this, "Documen=
t 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.toStri=
ng(), "Error",
JOptionPane.ERROR_MESSAGE);
}
}
--
Lew
Thank you every body
I solve the problem
Best
Salim