Обсуждение: JDBC Driver Help...

Поиск
Список
Период
Сортировка

JDBC Driver Help...

От
Eric Buschelmann
Дата:
I am attempting to use the following code.... However, I seem to always
get to the SQL EXCEPTION (on the query)...
What am I doing wrong? I'm sure it is simple -- but still it is
frustrating :) I'm not sure if this is related to the use
of the driver or my configuration -- if anything -- a URL with some
FAQ's would help...
The details in the JDBC (postgres) guide are a little slim...

Thanks
Eric
ehb@One.net



/*
*
* Test.java
*
*/


import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.applet.*;
/* import necessary for PGSQL */
import java.sql.*;



public class Test extends Appletimplements ActionListener, TextListener {

Button newButton=new Button("New");
Panel flow3 = new Panel (new FlowLayout(FlowLayout.LEFT,5,5));TextArea textArea2 = new TextArea
("",5,10,TextArea.SCROLLBARS_BOTH);Panelborder1 = new Panel (new BorderLayout(5,5));
 

public void init(){ this.setLayout(new BorderLayout()); this.setBackground(SystemColor.control);
this.setForeground(SystemColor.controlText);newButton.addActionListener(this);
flow3.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));flow3.add(newButton); textArea2.setText("Starting
text...");textArea2.setBackground(SystemColor.window); textArea2.setForeground(SystemColor.windowText);
textArea2.addTextListener(this);border1.add("North",flow3); border1.add("Center",textArea2); add("Center",border1);
 

}

public void actionPerformed(ActionEvent evt){
 if (evt.getSource() == newButton )  {

    Connection con = null;

    try {     Class.forName("org.postgresql.Driver").newInstance();     con=DriverManager.getConnection
("jdbc:postgresql:ehb","ehb","rhimgeti");     textArea2.setText("SUCCESSFULL connection object");
    }    catch (SQLException  excpt0)     {     textArea2.setText("EXCEPTION0");     }    catch (ClassNotFoundException
excpt1)    {     textArea2.setText("EXCEPTION1");     }    catch (InstantiationException excpt2)     {
textArea2.setText("EXCEPTION2");    }    catch (IllegalAccessException excpt3)     {
textArea2.setText("EXCEPTION3");    }
 

    /* there should be a connection now*/
    try {    Statement st = con.createStatement();    ResultSet rs = st.executeQuery("insert into test values(2);");
rs.close();

    st.close();    con.close();    }
    catch (SQLException excpt0)        {     textArea2.setText("SQL EXCEPTION ON QUERY!!!");        }



  }

}


public void textValueChanged(TextEvent evt) { String[] test = new String[2];}

} /* end class*/







Re: JDBC Driver Help...

От
Joachim Achtzehnter
Дата:
Yesterday, in a message to pgsql-interfaces, Eric Buschelmann wrote:
> 
> public class Test extends Applet

You should try an application first before complicating things with applet
issues. Once you get JDBC working with an application you can go on to an
applet.

>       Class.forName("org.postgresql.Driver").newInstance();

Creating an instance is not necessary, just load the class:
 Class.forName("org.postgresql.Driver");

>       con=DriverManager.getConnection("jdbc:postgresql:ehb","ehb","rhimgeti");

This looks ok.

>      catch (SQLException excpt0)
>          {
>       textArea2.setText("SQL EXCEPTION ON QUERY!!!");
>          }

To obtain some more info about the failure print a stack trace:
 excpt0.printStackTrace();

Are you running the postmaster with the -i flag? Did you configure
Postgresql to permit TCP connections from the host where your
application/applet runs?

Joachim

-- 
work:     joachima@realtimeint.com (http://www.realtimeint.com)
private:  joachim@kraut.bc.ca      (http://www.kraut.bc.ca)




RE: JDBC Driver Help...

От
Peter Mount
Дата:
INSERT doesn't return any results, so your use of executeQuery() is wrong
here, and an SQLException should be thrown.

You should use executeUpdate() for any SQL statements that don't return a
ResultSet.

PS: If you were writing a shell, so don't know if a ResultSet would be
returned or not, then theres the execute() method, but you have to handle
the results differently, so you should stay away from it.

Peter

-- 
Peter Mount
Enterprise Support Officer, Maidstone Borough Council
Email: petermount@maidstone.gov.uk
WWW: http://www.maidstone.gov.uk
All views expressed within this email are not the views of Maidstone Borough
Council


-----Original Message-----
From: Eric Buschelmann [mailto:ehb@one.net]
Sent: Monday, September 04, 2000 8:25 PM
To: pgsql-interfaces@postgresql.org
Subject: [INTERFACES] JDBC Driver Help...


I am attempting to use the following code.... However, I seem to always
get to the SQL EXCEPTION (on the query)...
What am I doing wrong? I'm sure it is simple -- but still it is
frustrating :) I'm not sure if this is related to the use
of the driver or my configuration -- if anything -- a URL with some
FAQ's would help...
The details in the JDBC (postgres) guide are a little slim...

Thanks
Eric
ehb@One.net



/*
*
* Test.java
*
*/


import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.applet.*;
/* import necessary for PGSQL */
import java.sql.*;



public class Test extends Appletimplements ActionListener, TextListener {

Button newButton=new Button("New");
Panel flow3 = new Panel (new FlowLayout(FlowLayout.LEFT,5,5));TextArea textArea2 = new TextArea
("",5,10,TextArea.SCROLLBARS_BOTH);Panelborder1 = new Panel (new BorderLayout(5,5));
 

public void init(){ this.setLayout(new BorderLayout()); this.setBackground(SystemColor.control);
this.setForeground(SystemColor.controlText);newButton.addActionListener(this);
flow3.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));flow3.add(newButton); textArea2.setText("Starting
text...");textArea2.setBackground(SystemColor.window); textArea2.setForeground(SystemColor.windowText);
textArea2.addTextListener(this);border1.add("North",flow3); border1.add("Center",textArea2); add("Center",border1);
 

}

public void actionPerformed(ActionEvent evt){
 if (evt.getSource() == newButton )  {

    Connection con = null;

    try {     Class.forName("org.postgresql.Driver").newInstance();     con=DriverManager.getConnection
("jdbc:postgresql:ehb","ehb","rhimgeti");     textArea2.setText("SUCCESSFULL connection object");
    }    catch (SQLException  excpt0)     {     textArea2.setText("EXCEPTION0");     }    catch (ClassNotFoundException
excpt1)    {     textArea2.setText("EXCEPTION1");     }    catch (InstantiationException excpt2)     {
textArea2.setText("EXCEPTION2");    }    catch (IllegalAccessException excpt3)     {
textArea2.setText("EXCEPTION3");    }
 

    /* there should be a connection now*/
    try {    Statement st = con.createStatement();    ResultSet rs = st.executeQuery("insert into test values(2);");
rs.close();

    st.close();    con.close();    }
    catch (SQLException excpt0)        {     textArea2.setText("SQL EXCEPTION ON QUERY!!!");        }



  }

}


public void textValueChanged(TextEvent evt) { String[] test = new String[2];}

} /* end class*/






Re: JDBC Driver Help...

От
Bob Kline
Дата:
On Mon, 4 Sep 2000, Eric Buschelmann wrote:

> I am attempting to use the following code.... However, I seem to always
> get to the SQL EXCEPTION (on the query)... [snip]
>      ResultSet rs = st.executeQuery("insert into test values(2);");
>      rs.close();
> 
> 
>      st.close();
>      con.close();
>      }
> 
>      catch (SQLException excpt0)
>          {
>       textArea2.setText("SQL EXCEPTION ON QUERY!!!");
>          }

The two most egregious problems are the fact that you're not letting the
exception objects tell you what they know, and the semicolon isn't part
of the SQL syntax -- lose it.

-- 
Bob Kline
mailto:bkline@rksystems.com
http://www.rksystems.com