von anfang an

Status
Nicht offen für weitere Antworten.

espanol

Neues Mitglied
hola erstmal,
hab ein dickes problem, mus ein java proc schreiben das auf eine datenbank zugreift, kenn mich mit sql, c, c++,
mit java schon en bissel, aber finde kein vernünftiges tutorial.
würde mich um hilfe freuen,da dafür es auch foren gibt um sich gegenseitig zu helfen.
also datenbank ms access

import java.sql.*; //ist also nötig

Unter Windows sehr einfach: Richte einfach unter Start > Einstellungen > Systemsteuerung > Verwaltung > Datenquellen (ODBC) einen DSN zu der Access-Datenbank ein. Und dann kannst Du einfach per JDBC-ODBC-Bridge darauf zugreifen.
im forum gefunden und auch auf einer anderen site

wie gehts konkret weiter, würde mich freuen wenn ihr nicht direkt auf google verweist und mir schritt für schritt helfen könntet,
wäre dann so was wie ein kleiner forum tutorial :wink:
also hilfe!!!
 

nollario

Bekanntes Mitglied
dazu gibt es schon etwas in diesem forum:

http://www.java-forum.org/de/viewtopic.php?t=1529 die faqs!

:)

aber, da es sich um eine mysql db handelt: hier nochmal der unterschied... du benötigst einen anderen treiber:

Code:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

und eine andere url:

Code:
jdbc:odbc:<data-source-name>[;<attribute-name>=<attribute-value>]*

und das java tutorial hat einen gut erklärten jdbc teil:

http://java.sun.com/docs/books/tutorial/
 
G

Guest

Gast
vielen dank schonmal für die hilfe

muss die datenbank nicht zum schluß wieder eschlossen werden?
die bei dateienzugriff?

grüße
 

nollario

Bekanntes Mitglied
ja, am besten auch das statement und etwaige resultsets... die method heisst gleich:

Code:
close();
 
G

Guest

Gast
public void setKunden(String vorn,
String nachn,
String str,
int hausnr,
int plz,
String ort)throws SQLException{
getConnection();
if(con==null)
getConnection();
Statement stmt = con.createStatement();
int knr=kundennr();
knr++;
stmt.executeUpdate(
"INSERT INTO Mensch (Name,Vorname,Strasse,Hausnummer,PLZ,Ort,Kundennummer) " +
"VALUES ("+nachn+","+vorn+","+str+","+hausnr+","+plz+","+ort+","+knr+");");

close();
}

kann mir jemand sagen wo der fehler steckt???
kann ich keine int mit executeupdate übergebn?????????
 
G

Guest

Gast
[Microsoft][ODBC Microsoft Access Driver] 5 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben.
versteh die fehlermeldung nicht
 

nollario

Bekanntes Mitglied
Anonymous hat gesagt.:
public void setKunden(String vorn,
String nachn,
String str,
int hausnr,
int plz,
String ort)throws SQLException{
getConnection();
if(con==null)
getConnection();
Statement stmt = con.createStatement();
int knr=kundennr();
knr++;
stmt.executeUpdate(
"INSERT INTO Mensch (Name,Vorname,Strasse,Hausnummer,PLZ,Ort,Kundennummer) " +
"VALUES ("+nachn+","+vorn+","+str+","+hausnr+","+plz+","+ort+","+knr+");");

close();
}

kann mir jemand sagen wo der fehler steckt???
kann ich keine int mit executeupdate übergebn?????????

versuchs mal mit:

Code:
...VALUES('" + nachn + "', '" + vorn + '", ...

-> alle String Werte mit Hochkommata umgeben, aber NICHT die Zahlenwerte!
 
G

Guest

Gast
hi vielen vielen dank
hab aber jetzt ein kleines anderes prob
will meine datenbank abfragen und mehrere elemente mit dem anfangsbuchstaben z.b. m abfragen klappt aber nit immer nur ein element

public void getkunden(String such){
getConnection();
try{
String query;

if(such.equals("*")){
query = "SELECT * FROM Mensch;";
}
else{
query = "SELECT * FROM Mensch WHERE Name like '*"+such+"*';";
}

Statement stmt = con.createStatement();
ResultSet tabelle = stmt.executeQuery(query);

String name,vname,str,ort;
int hnr,plz,knr;
while (tabelle.next()) {
name = tabelle.getString("Name");
vname = tabelle.getString("Vorname");
str = tabelle.getString("Strasse");
hnr = tabelle.getInt("Hausnummer");
plz = tabelle.getInt("PLZ");
ort = tabelle.getString("Ort");
knr = tabelle.getInt("Kundennummer");

System.out.println(" | "+name+" | "+vname+" | "+str+" | "
+hnr+" | "+plz+" | "+ort+" | "+knr+" | ");
}
con.close();
}
catch(SQLException e){
System.out.println(e.getMessage());
}
catch(Exception e){
System.err.println(e);
}
}
 
G

Guest

Gast
wäre echt super freundlich wenn ihr mir weiter so tolle tips geben könnt
 

KSG9|sebastian

Top Contributor
sql != windows, d.h.

wenn du nach einträgen suchst die mit einem 'x' beginnen sieht die sql so aus:

Code:
String sql = "SELECT * FROM tabelle WHERE feld LIKE 'x%'";

//In deinem Fall:

String sql = "SELECT * FROM tabelle WHERE feld LIKE '"+such+"%'";

% - steht für 0 - unendlich viele Zeichen
? - steht für ein beliebiges Zeichen, inklusive ' ' (leer)

Wichtig is noch folgendes: Bei Varchar, Textfelder ist es wichtig, dass du die Parameter mit den Hochkommas übergibst

Code:
...,' "+wert+ " '
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben