Gå til innhold

hva er feil her? applet mot Postgres base


Anbefalte innlegg

Fått til å koble meg til databasen min og lagt inn en insert og listet ut innholdet i tabellen, men da bare med System.out.println(variabler);

 

Også fått til en enkel applet , men får feilmelding når jeg prøver å kjøre insert metoden inni applet'n (prøvd å lage en enkel applet som kjører en insert i tab ).

 

None som ser hva jeg har gjort galt? :blush:

 

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.util.*;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;

public class NavneApplet extends JApplet {
 
//data dbase 
 private Container guiBeholder;
   
 DefaultListModel listeinnhold = new DefaultListModel();
 JList liste = new JList(listeinnhold);
 String tekst;
 private JTextField datofelt = new JTextField(20);
 private JTextArea infofelt = new JTextArea(4,20);
 private JLabel hilsen = new JLabel();
 
 String SQL;
 
 String databasedriver = "org.postgresql.Driver";
 
 
 
 void database(String d, String i)throws SQLException{
 
   try {
   Class.forName(databasedriver);
     } catch (ClassNotFoundException cnfe) {
       System.err.println("Couldn't find driver class:");
        cnfe.printStackTrace();
     }
   
     String brukernavn = "user"
     String passord = "pass";
     String databasenavn = "jdbc:postgresql://localhost/dbase";
     
     Connection forbindelse = DriverManager.getConnection(databasenavn,brukernavn,passord);
     
     Statement setning = forbindelse.createStatement();
     try{
     SQL ="insert into dagbok (dato,info) values ('" + d +"','" + i +"')";
     ResultSet res = setning.executeQuery(SQL);
     forbindelse.close();
     }catch(SQLException se){
     System.out.println("feil: "+ se);
     }
 
 }
 
  
 public void init() {
       
   guiBeholder = getContentPane();
   guiBeholder.setLayout(new FlowLayout());
   
   JLabel ledetekst = new JLabel("Registrer info ");
   guiBeholder.add(ledetekst);
   guiBeholder.add(datofelt);
   guiBeholder.add(infofelt);

   JButton knapp = new JButton("Registrer");
   guiBeholder.add(knapp);
   Knappelytter knappelytteren = new Knappelytter();
   knapp.addActionListener(knappelytteren);
   
   guiBeholder.add(hilsen);
 } 
  
 private class Knappelytter implements ActionListener {
   public void actionPerformed(ActionEvent hendelse) {
     
     String dato = datofelt.getText();
     String info = infofelt.getText();
   try{
       database(dato,info);
     }catch(SQLException se){
       hilsen.setText("Feilmelding: " + se); 
   }        
   }
   
 }
}

 

Kode lagt i

-tag av moderator
Endret av Mr.Berg
Lenke til kommentar
Videoannonse
Annonse

Jeg har ikke fått pusset krystallkulen min på en stund, så inntil du faktisk oppgir hva slags feilmelding du får, blir det bare synsing.

 

Personlig holder jeg en knapp på en av eller begge disse:

 

1. Du har feil dato-format på "d"

2. Du skulle ha brukt executeUpdate og ikke executeQuery

 

(Og du burde ikke bygge opp sql-setninger opp på denne måten, mulighetene for sql-injection er legio her.)

 

(Og det å bruke norsk i koden er vemmelig :-)

Lenke til kommentar

Fant feilen. var bare postgresjdbc.jar fila som ikke var lagt i ext katalogen i jdk.

 

En annen feil som dukket opp derimot var at når jeg endret adresse fra localhost til et domene på min server, da fikk jeg feil melding. port 5432 står opne så det er ikke det.

i consollet får jeg:

 

org.postgresql.util.PSQLException: Something unusual has occured to cause the driver to fail. Please report this exception.

at org.postgresql.Driver.connect(Driver.java:263)

at java.sql.DriverManager.getConnection(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

at Applt.init(Applt.java:30)

at sun.applet.AppletPanel.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

Caused by: java.security.AccessControlException: access denied (java.net.SocketPermission schei.mine.nu resolve)

at java.security.AccessControlContext.checkPermission(Unknown Source)

at java.security.AccessController.checkPermission(Unknown Source)

at java.lang.SecurityManager.checkPermission(Unknown Source)

at java.lang.SecurityManager.checkConnect(Unknown Source)

at java.net.InetAddress.getAllByName0(Unknown Source)

at java.net.InetAddress.getAllByName0(Unknown Source)

at java.net.InetAddress.getAllByName(Unknown Source)

at java.net.InetAddress.getByName(Unknown Source)

at java.net.InetSocketAddress.<init>(Unknown Source)

at java.net.Socket.<init>(Unknown Source)

at org.postgresql.core.PGStream.<init>(PGStream.java:60)

at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:77)

at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:65)

at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:116)

at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)

at org.postgresql.jdbc3.Jdbc3Connection.<init>(Jdbc3Connection.java:24)

at org.postgresql.Driver.makeConnection(Driver.java:369)

at org.postgresql.Driver.connect(Driver.java:245)

... 5 more

java.lang.NullPointerException

at Applt.paint(Applt.java:46)

at sun.awt.RepaintArea.paintComponent(Unknown Source)

at sun.awt.RepaintArea.paint(Unknown Source)

at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

Lenke til kommentar

hehe nei sikkert ikke. måtte bare prøve litt. Vitsen ble jo litt vekke når en må ha odbc driveren liggende på klient maskinen. Da må jo alle som skal se siden har den lagt inn først. Ville det vært en bedre ide og benyttet seg av RMI pakken og lage en lokal java fil som henter ut data fra databasen og sender objekter videre via rmi kanskje (Om jeg ikke har missforstått helt da )

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...