MS SQL Datenbankzugriff per JDBC

Status
Nicht offen für weitere Antworten.

Azubili

Mitglied
Hallo 🙂

Ich habe hier ein kleines Problem und ich finde es nicht =(

Ich hoffe ihr könnt mir helfen 🙂

Der Quelltext ist zwar von mir etwas *zenisert* worden *ggg*

Dankeschonmal

J€ns




Code:
	 package jdbc;
     import java.sql.Connection;
	 import java.sql.DriverManager;
	 import java.sql.ResultSet;
	 import java.sql.SQLException;
	 import java.sql.Statement;
	 import com.microsoft.jdbc.sqlserver.SQLServerDriver;

	 public class DBConnection {
	 
	public static final String DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
	public static final String PROTOCOL = "jdbc:microsoft:sqlserver://IP:PORT/Datenbankname";
	public static final String USER = "admin";
	public static final String PASS = "admin";
	
	public static void main(String[] args)
	{
		try {
			Class.forName(DRIVER);
		} catch (ClassNotFoundException e) {
			System.err.println("Keine Treiber-Klasse!");
			return;
		}
		Connection con = null;
		try {
			con = DriverManager.getConnection(PROTOCOL, USER, PASS);
			Statement stmt = con.createStatement();
			ResultSet rs = stmt.executeQuery("SELECT * FROM PersonalNr");
			while (rs.next())
				System.out.println("%s, %s, %s%n" + rs.getString(1) + rs.getString(2) + rs.getString(3));
			rs.close();
			stmt.close();
		} catch (SQLException e) {
			e.printStackTrace();
			return;
		} finally {
			if (con != null)
				try {
					con.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
		}
	}
}

Code:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect.  Invalid URL.
	at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
	at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
	at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
	at java.sql.DriverManager.getConnection(DriverManager.java:525)
	at java.sql.DriverManager.getConnection(DriverManager.java:171)
	at jdbc.DBConnection.main(DBConnection.java:26)
 
Azubili hat gesagt.:
Hallo 🙂

Ich habe hier ein kleines Problem und ich finde es nicht =(

Ich hoffe ihr könnt mir helfen 🙂

Der Quelltext ist zwar von mir etwas *zenisert* worden *ggg*

Dankeschonmal

J€ns




Code:
	 package jdbc;
     import java.sql.Connection;
	 import java.sql.DriverManager;
	 import java.sql.ResultSet;
	 import java.sql.SQLException;
	 import java.sql.Statement;
	 import com.microsoft.jdbc.sqlserver.SQLServerDriver;

	 public class DBConnection {
	 
	public static final String DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
	[color=red]public static final String PROTOCOL = "jdbc:microsoft:sqlserver://IP:PORT/Datenbankname";[/color]
	public static final String USER = "admin";
	public static final String PASS = "admin";
	
	public static void main(String[] args)
	{
		try {
			Class.forName(DRIVER);
		} catch (ClassNotFoundException e) {
			System.err.println("Keine Treiber-Klasse!");
			return;
		}
		Connection con = null;
		try {
			con = DriverManager.getConnection(PROTOCOL, USER, PASS);
			Statement stmt = con.createStatement();
			ResultSet rs = stmt.executeQuery("SELECT * FROM PersonalNr");
			while (rs.next())
				System.out.println("%s, %s, %s%n" + rs.getString(1) + rs.getString(2) + rs.getString(3));
			rs.close();
			stmt.close();
		} catch (SQLException e) {
			e.printStackTrace();
			return;
		} finally {
			if (con != null)
				try {
					con.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
		}
	}
}

Code:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect.  Invalid URL.
	at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
	at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
	at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
	at java.sql.DriverManager.getConnection(DriverManager.java:525)
	at java.sql.DriverManager.getConnection(DriverManager.java:171)
	at jdbc.DBConnection.main(DBConnection.java:26)

Hab den Fehler selbst gefunden, sorry.
werde aber vllt heute noch ein paar fragen zu JDBC haben 😉

Der Fehler lag genau in der rot makierten Stelle:

es heißt nicht:
public static final String PROTOCOL = "jdbc:microsoft:sqlserver://IP😛ORT/Datenbankname";

sondern:
public static final String PROTOCOL = "jdbc:microsoft:sqlserver://IP😛ORT;DatabaseName=Datenbankname;SelectMethod=Cursor;User=admin;password=admin";


greetz J€ns
 
Wenn ich in einer JSP einen Button drücke,
soll eine Webanwendung aufgerufen werden.

Das ist ja kein Problem, aber der http:// addresse müssen bestimmte Parameter vom typ String übergeben werden und die liegen nur verknüpft auf einer Datenbank.

In der JSP Anwendung selber kommen nur die Primärschlüssel aus der Tabelle meist vor. z.b. brauch ich die gemeinde, die steht in dem Programm z.B. mit Bonn da, sie wird aber in einem Zahlenwert verlangt , dieser wert sollte so aussehen 3820..Kennzahl von Bonn.

Jetzt soll ich durch den Gemeinde namen (Bonn) auf der Datenbank dieses Gemeindeerkennungszeichen (Kennzahl von Bonn) suchen.

Genauso muss ich das mit weiteren String-Paramtern machen.
Ich habe aber im Moment keine Ahnung wie.

Wie mach ich das am Besten.

Sorry wenn ich mich etwas undeutlich ausdrücke 😉

???:L

Dankeschonmal im vorraus

J€ns

[schild=1 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]java-forum.org ist einsame Spitze! Nette Leute, hilfreiche Tips![/schild]
 
Hallo!!!
Habs auch mit dem obigen Code probiert.
Muss ich ganz oben bei der Definition von Treiber, Protocol den Pfad angeben. Den Pfad vom Treiber ???
Protocol?????
 
Azubili hat gesagt.:
Wenn ich in einer JSP einen Button drücke,
soll eine Webanwendung aufgerufen werden.

Das ist ja kein Problem, aber der http:// addresse müssen bestimmte Parameter vom typ String übergeben werden und die liegen nur verknüpft auf einer Datenbank.

In der JSP Anwendung selber kommen nur die Primärschlüssel aus der Tabelle meist vor. z.b. brauch ich die gemeinde, die steht in dem Programm z.B. mit Bonn da, sie wird aber in einem Zahlenwert verlangt , dieser wert sollte so aussehen 3820..Kennzahl von Bonn.

Jetzt soll ich durch den Gemeinde namen (Bonn) auf der Datenbank dieses Gemeindeerkennungszeichen (Kennzahl von Bonn) suchen.

Genauso muss ich das mit weiteren String-Paramtern machen.
Ich habe aber im Moment keine Ahnung wie.

Hängt davon ab, wie deine Datenbankrelation aussieht. Angenommen, du hast eine Tabelle "Gemeinde" mit dem Schema GEMEINDE(GNR, Kennzahl, ...), dann brauchst du eine SELECT-Abfrage nach dem Schema "SELECT GNR, Kennzahl FROM GEMEINDE WHERE KENNZAHL=x".

In Java realisierst du das am besten über ein PreparedStatement. Beispiel:
Code:
int gesuchteKennzah=4711;
String sql="SELECT GNR, Kennzahl FROM GEMEINDE WHERE KENNZAHL=?"; //kann bei Bedarf mehrere Fragezeichen enthalten
Connection con = DriverManager.getConnection(url); // so, wie sonst auch
PreparedStatement pstmt = con.prepareStatement(sql);
// Parameter setzen - Spalte = Reihenfolge der Fragezeichen
pstmt.setInt(1, gesuchteKennzahl);
// hier weitere Parameter, falls vorhanden
ResultSet rs=pstmt.executeQuery();

.. natürlich fehlen jetzt noch (1.) ein try-catch-Block um das ganze herum für die SQLException sowie (2.) die Auswertung des ResultSet. Aber das kennst du ja schon.

War das die Frage? Bin mir nicht sicher ... ???:L
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben