miknira Skrevet 2. mai 2007 Del Skrevet 2. mai 2007 (endret) 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? 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 8. mai 2007 av Mr.Berg Lenke til kommentar
Bigbagaroo Skrevet 2. mai 2007 Del Skrevet 2. mai 2007 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
miknira Skrevet 8. mai 2007 Forfatter Del Skrevet 8. mai 2007 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
krigun Skrevet 9. mai 2007 Del Skrevet 9. mai 2007 Ikke helt sikker på om Applets og JDBC hører veldig godt sammen i utgangspunktet ;-) Lenke til kommentar
miknira Skrevet 10. mai 2007 Forfatter Del Skrevet 10. mai 2007 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
krigun Skrevet 11. mai 2007 Del Skrevet 11. mai 2007 Ja, det er anbefalt å ikke eksponere databasen din rett mot nett på den måten, men heller pakk noe kode rundt den, f.eks RMI, Servlets, EJB, Web Services osv. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå