Autor Thema: JSP INSERT INTO TABLE Problem mit mySQL  (Gelesen 6830 mal)

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
JSP INSERT INTO TABLE Problem mit mySQL
« am: 18.12.08 - 20:51:25 »
Hi @Inselbewohner;

ich versuche gerade mit mit einer jsp ( Tomcat ) Datei einen Datensatz in eine mysql-DB zu schreiben.

Das ist mein Statement. Leider führt es zu einem Fehler.

String sSql = "INSERT INTO `globaladr`.`emailadr` ( `Nr`, `email` ) VALUES ( NULL , `test@web.de`)";

Wenn ich das hier schreibe:

String sSql = "SELECT * FROM Table";

läuft dat.
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.277
  • Geschlecht: Männlich
Re: JSP INSERT INTO TABLE Problem mit mySQL
« Antwort #1 am: 18.12.08 - 21:25:39 »
Ist ja eine reine JSP Java Geschichte, würde ich lieber mal hier suchen:
http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi

davon mal abgesehen ist der INSERT INTO Befehl falsch, Hilfe findest Du hier:
http://dev.mysql.com/doc/refman/5.1/de/insert.html
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16
--
Nur ein toter Bug, ist ein guter Bug!

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re: JSP INSERT INTO TABLE Problem mit mySQL
« Antwort #2 am: 18.12.08 - 23:07:42 »
Ich bin etwas weiter. Dennoch ist die Hürde noch zu nehmen. Hier ist jetzt der letzte Fehlercode.

An error occurred at line: 30 in the jsp file: /insertemail.jsp
Type mismatch: cannot convert from int to ResultSet
27:       Class.forName( sDbDrv );
28:       cn = DriverManager.getConnection( sDbUrl, sUsr, sPwd );
29:       st = cn.createStatement();
30:       rs = st.executeUpdate( sSql );
31:            }
32:    
33:    finally {


Stacktrace:
   org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
   org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
   org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423)
   org.apache.jasper.compiler.Compiler.compile(Compiler.java:317)
   org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
   org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
   org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
   javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re: JSP INSERT INTO TABLE Problem mit mySQL
« Antwort #3 am: 19.12.08 - 12:14:12 »
jo,

jetzt habe ich wat Neues :) Man glaubt ja gar nicht, wie viel Zeit man bei einer ( ich denke bei einer einfachen BASIC Anforderung = Schreibe einen Datensatz in eine MYSQL DB über JDBC ) trivialen Anforderung verlieren kann. Ich kann mich kaum erinnern, dass irgend eine Sache auf anhieb mit Java funktioniert hat. : ) Man kommt wirklich von Hölzchen auf Stöckchen.

Eine Frage an die Java Programmierer. Wie haltet ihr das aus ? Ich habe die selbe Anforderung mit php in 1/2 Stunde fertig gehabt. Jetzt will ich das auch über JSP schaffen.

hier kommt jetzt die nächste Fehlermeldung :)

Type mismatch: cannot convert from int to ResultSet


Ach ja. Im Code ist eine Zeile markiert. Diese wird im Editor nicht farblich umgesetzt. Bleibt einfach schwarz.

Code:

<html>
<head><title>E-Mail - DB Search</title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%
  String sDbDrv = "com.mysql.jdbc.Driver";
  String smailaddress = request.getParameter( "emailaddress" );
  String sDbUrl = "jdbc:mysql://localhost:3306/globaladr";
  String sUsr   = "root";
  String sPwd   = "";
  String sSql   =  "insert into emailadr ('email') VALUES ('test@web.de')";

 
  //String sSql = "SELECT * FROM emailadr";
    
    try {
      Class.forName( sDbDrv );
      Connection cn = DriverManager.getConnection( sDbUrl, sUsr, sPwd );
     Statement st = cn.createStatement();
     ResultSet rs = st.executeUpdate("INSERT INTO emailadr VALUES ('Dominobox@web.de')");
           }
         
   catch (Exception e) {
   out.println("Error" + e);
   e.printStackTrace();
   }
   
   finally {
    }
%>
<br>
<a href="user_page.html">Back to userpage Site</a>
</body>
</html>

Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.277
  • Geschlecht: Männlich
Re: JSP INSERT INTO TABLE Problem mit mySQL
« Antwort #4 am: 19.12.08 - 13:06:13 »
Mein Tip, schreib das ganze in Eclipse und nimm diese Erfahrung für dein PHP Script.

Und in Java muss man schon mehr "schreiben" um zum Erfolg zu kommen, dafür kann man dann auch "mehr" ;)
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16
--
Nur ein toter Bug, ist ein guter Bug!

Offline m3

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: JSP INSERT INTO TABLE Problem mit mySQL
« Antwort #5 am: 19.12.08 - 13:14:03 »
Wie bei Notes sollte man auch bei Java die Dokumentation lesen. Zu executeUpdate meint diese:
Zitat
Returns:
    either the row count for INSERT, UPDATE or DELETE statements, or 0 for SQL statements that return nothing
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re: JSP INSERT INTO TABLE Problem mit mySQL
« Antwort #6 am: 19.12.08 - 15:00:07 »
jepp,

die Sache läuft jetzt. Sieht nur ganz anders aus, als alle Beispiele, die im Web zu finden sind und deswegen auch nicht laufen.

so ist es richtig:

    try {
   
Connection cn = null;
Statement  st = null;
Object rs = null;
Class.forName( sDbDrv );
cn = (Connection) DriverManager.getConnection( sDbUrl, sUsr, sPwd );
st = (Statement) cn.createStatement();
rs = st.executeUpdate( sSql );
      }

Ach ja und wer wissen möchte, wie das SQL Statement aussieht.

String sSql =  "INSERT INTO `globaladr`.`emailadr` ( `email`) VALUES ('"  + smailaddress + "')";

Auch völlig anders, als alle Beispiele die im Web zu finden sind.

:) Ich habe es dann mit dem Eclipse ausprobiert. Das war ein guter Tip.
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: JSP INSERT INTO TABLE Problem mit mySQL
« Antwort #7 am: 23.12.08 - 14:10:58 »
Schon merkwürdig.
Bei mir sehen SQL Inserts in java-code so aus:
Code
public void save(Verkaufstelle vks) {
		vks.setVersion(1);
		getSqlMapClientTemplate().insert("insertVerkaufstelle", vks);
	}




Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: JSP INSERT INTO TABLE Problem mit mySQL
« Antwort #8 am: 23.12.08 - 14:21:16 »
Hallo Andreas!

Lies dir doch mal die Antworten auch durch die du bekommst. m3 hat dir doch schon geschrieben, dass executeUpdate kein Resultset sondern eine Zahl zurückliefert. In deiner letzten Version verwendest du aber noch immer rs. Solche falsch Benennung führt zu schwerwiegenden Problemen beim verstehen des Codes. Weiters würde ich dir unbedingt anraten bei SQL Statements diese nicht mit String concatenation zusammenzusetzen, da du dann unglaublich anfällig für SQL Injections bist. Solcher Code ist noch der Untergang des Webs. Bei jeglichen SQLStatments sollen Parameter ausschliesslich über Parametermarker gesetzt werden. Auch die Performance deiner Applikation wird es dir danken.

Grüße

Ralf
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: JSP INSERT INTO TABLE Problem mit mySQL
« Antwort #9 am: 23.12.08 - 15:03:26 »
So macht man das sowieso einfach nicht.

Gründe:
1. Es ist extrem ressourcen-fressend, sich bei jedem Laden der JSP-Seite eine neue Datenbank-Connection zu holen. Dafür gibt es Connection Pools.
2. sollte man aus verschiedenen Gründen besser PreparedStatement statt Statement verwenden (wie Ralf schon sagt).
3. sollte man in Java Anwendungen Code schichtenweise aufbauen.
Web-Layer -> Business Logik -> Datenbankzugriff
Sonst kann man keine Integrationstests schreiben.
4. gibts so Frameworks wie IBatis SQLMaps, hibernate oder EJB3 nicht zum Spaß. Und das ist keine esoterische Freakware. Vielmehr werden sie in praktisch jedem Java Projekt eingesetzt. Aus guten Gründen...

Gruß Axel
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Mark³

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
  • Nordisch by Nature
    • Das Leben aus der Sicht eines Menschen
Re: JSP INSERT INTO TABLE Problem mit mySQL
« Antwort #10 am: 23.12.08 - 16:05:21 »
Ich habe die selbe Anforderung mit php in 1/2 Stunde fertig gehabt.

So ist das mit php: alles ist in ein paar Zeilen fertig. Da hatten wir hier auch einige Studenten von, schnell mal für ein Projekt eingekauft und ein Quick Win erzielt, danach liegt hier der Schrott, ist unsicher, unperformant und kaum zu warten, weil alles stur hintereinandergecodet ist.   :knuddel:
sagt Mark.



slowfood.de

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re: JSP INSERT INTO TABLE Problem mit mySQL
« Antwort #11 am: 29.12.08 - 20:29:11 »
Vielen Dank für die tollen Antworten. Jeder fängt halt klein an. Erst läuft die Sache gar nicht, dann macht man einfache Fehler und dann wird der Code überarbeitet.

Und irgendwann bekommt man von einem wirklich guten Programmierer die richtige Vorgehensweise erklärt.

 ;D

Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: JSP INSERT INTO TABLE Problem mit mySQL
« Antwort #12 am: 30.12.08 - 12:50:28 »
EINE richtige Vorgehensweise gibts nicht.
Es ist die schrittweise und stets kritische Einführung von architektonischen, design-mässigen und pm-Elementen im Hinblick auf die Bedürfnisse des Projekts und der Fähigkeiten des technisch Projektverantwortlichen ... wobei letzteres einen dynamischen, selbstverstärkenden Prozess darstellt.
Praktisch den fachlichen Diskurs über architektonische, design-mässige und pm-Elemente auf die Straße bringen.

Gibt immer und überall Leute, die sagen, dass dies bullshit ist und die Lösung der Probleme ganz einfach ist.
Glaub denen nur einfach nicht.  ;D

 
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Mark³

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
  • Nordisch by Nature
    • Das Leben aus der Sicht eines Menschen
Re: JSP INSERT INTO TABLE Problem mit mySQL
« Antwort #13 am: 30.12.08 - 13:02:32 »
eine billige php-Lösung, die ihren Zweck erfüllt und niemals Hackerangriffen ausgesetzt wurde (weil sie zB im Intranet nur von einer Abteilung wohlmeinender Zeitgenossen genutzt wurde) ist sicher besser als eine perfekte 7-Tier multi-Buzz-fähige geclusterte Erlang-Anwendung, die leider nicht fertig wurde und daher nie zum Einsatz kam.

Leider ging es bei meinen Kunden in den letzten Jahren nur darum, irgendwas schnell und dreckig zum Laufen zu bringen  :'(

Es ist genau wie beim Essen: Wenn man total ausgehungert ist tut es der erstbeste Fastfood-Kram auch sehr gut. Wenn ich aber bewusst zu Hause mit Ruhe koche, dann müssen die Zutaten und auch die Zubereitung sowie die Atmosphäre beim Essen stimmen. Einen guten Wein nicht zu vergessen  :)
sagt Mark.



slowfood.de

Offline CLI_Andreas_Schmidt

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
    • Lotus Notes & Domino Schulung und Entwicklung
Re: JSP INSERT INTO TABLE Problem mit mySQL
« Antwort #14 am: 31.12.08 - 12:11:42 »
Du sprichst mir aus der Seele Mark³.

Du hast Recht. Diese Art und Weise der Projektarbeit kenne ich nur zu gut. Letzt endlich geht es doch um die Kosten. Schnell fertig heisst, niedrige Projektkosten. Auch gebe ich Dir Recht, dass es nicht immer notwendig ist, immer den absoluten Perfect-Code zu schreiben um eine simple Funktion zum laufen zu bringen. Vorallem, wenn hacker-Angriffe gar nicht vorkommen können. Ich glaube ein hardcore Programmierer wird es sehr schwer haben, von einfachen Lösungen Gebrauch zu machen.  Liegt schlicht und Einfach an der Denkweise und an der hohen Perfektion. Aber auch hier sollte immer daran gedacht werden:"Genie und Wahnsinn" liegen dicht zusammen.

Der Mensch ist ja nicht perfekt. Das Errorhandling wird jeden Tag erweitert.

Ein Beispiel:

Ein Programmier Anfänger und ein Hardcore Programmierer wurden mal aufgefordert, eine Notes Datenbank zu programmieren. Beiden wurde die selbe Anforderung gestellt.

Nach einem Tag.

Beginner = Design fertig und die helfte der Funktionen
Profi = Kein Design und fast alle Funktionen.

Welche wurde genommen ?

= Die des Beginners und die fehlenden Funktionen vom Profi wurden angepasst.

Warum das so gekommen ist, lag an den Menschen, die letzt endlich entscheiden. Und das sind in der Regel, Betriebswirte.

:)
Viele Grüße

Andreas.Schmidt@lotus-schmidt.de

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: JSP INSERT INTO TABLE Problem mit mySQL
« Antwort #15 am: 31.12.08 - 13:30:23 »
Die wirklich
- größeren
- dadurch auch sozial interessanteren
- und btw. deshalb auch weniger anstrengenden Projekte
werden in oft internationalen Teams entwickelt. Zumindest war das bei mir in den letzten Jahren so.

Um da überhaupt zum Telefon-Interview in Betracht zu kommen, brauchst du ein paar buzzwords auf dem cv.
Im Telefoninterview wird dann festgestellt, ob du
a) die buzzwords auch mit gewissen sinnvollen Inhalten verknüpfen kannst und
b) in der Lage bist, in einem sozialen Verband hinreichend zu interagieren.

Wenn du nicht in die Forschung willst - was zur Zeit übrigens für die entsprechend vorgebildeten Leute nicht einfach ist (und ich kenn jemanden, bins aber nicht- wird nachgefragt, dass du
- dich mit einem spezifischen Thema supertoll auskennst (bei mir wär das etwa Integration von Domino in nicht-Domino Systeme) und/oder
- eine ziemliche Breite an Kenntnissen hast (RDBMS, Betriebssysteme, Web, Java-Frameworks, automatisiertes Testen, deployment, SOA, etc.). Die Breite bekommst du am einfachsten, wenn du in Teams mit anderen zusammenarbeitest (wirklich gute Linux/DB2/MQ Series Leute als Beispiel).

Die wirklich harten, mathematischen Dinger sind eh für Leute von der Uni, die sich wirklich mit Algorythmen und den geforderten mathematischen Spezial-Themen auskennen.

Für die Spezialaufgaben - also Projekte mit einer geringeren Laufzeit als sagen wir 10 Mann Jahren - mußt du dich natürlich immer am erwarteten Bedarf des Kunden orientieren. Es geht nicht um die "richtige" Methode des Projektmanagements oder die "richtige" Architektur sondern um die angemessene. Inwieweit du dann den Kunden überzeugen kannst, hängt weniger davon ab, wie tief du nun dein permanentes technisches Lernen in deinem Beruf organisierst. Meine Projekte der letzten 2 Jahre waren
a) in größeren Projekten mit vielen Leuten oder
b) absolute Spezialaufgaben -> sowas wie eine Geddys CRM Anwendung in csv für einen Systemwechsel nach update CRM zu konvertieren, die Attachments als Dateien und den Mailverkehr als html, DXL-Zeugs, Ajax-Zeugs
c) Enterprise Java mässige Systeme mit Browser-Frontend unter der Zuhilfenahme von openSource Frameworks.

Über Budget-befindende Leute werden seit Jahren bombardiert mit dem Mantra "Frameworks, agile Projekt-Techniken und Standards senken die Total Costs of Ownership". Die sind inzwischen fast alle "weich-geklopft", auch wenn sie da en detail nicht sattelfest sind.

Das ist jedenfalls der Blick auf die Welt aus meiner kleinen Perspektive und in den letzten Jahren hatte ich - mit Ausnahme der Zeit unmittelbar nach einem verlorenen Machtkampf, der überall vorkommt - wirklich nicht zu wenig Arbeit.
Es gibt aber ganz sicher verschiedene Nischen. Realität ist eben ambivalent  ;)

und wenn mir jemand in Chile einen Sack mit 1.3 Mio Pesos im Monat rüberschiebt, würd ich 1 Jahr dort arbeiten. Das ist aber wg. Krise schwieriger als vor 6 Monaten. Ohne buzzwords kriegst du aber für solche stunts nicht mal Interviews.
« Letzte Änderung: 31.12.08 - 13:47:43 von Pitiyankee »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz