Verbindung zu Datenbank herstellen

also ich hab jetz deinen treiber eingebunden (also die exe geladen und sqljdbc4.jar eingebunden) und ich bekomme nen anderen fehler als du, der treiber scheint zu funktionieren denn bis der fehler auftritt dauert es auch einige zeit (also versucht er wohl irgendwas)

und benutz bitte die java tags :) also java bzw /java in [] drin.

dein code bisl formatiert:
Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DBTest {
	
	public static void main(String[] args) throws Exception {

		Connection con = null;
		Statement stmt = null;
		ResultSet rs = null;

		String connectionUrl = "jdbc:sqlserver://JOGO-WRK01\\SQLEXPRESS:1433;" + "databaseName=BA;user=JoGo;password=Test1234%";

		try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			con = DriverManager.getConnection(connectionUrl);


			String sqlabfrage = "SELECT * FROM Log"; //Log = Tabellenname
			stmt = con.createStatement();
			rs = stmt.executeQuery(sqlabfrage);

			while (rs.next())
				System.out.println(rs.getString("ID") + " " + rs.getString("Status") + " " + rs.getString("Zeit") + " " + rs.getString("Port"));
			}
		catch(Exception e){
			e.printStackTrace();
		}
		finally {
			if(con != null)
			{
				try {
						con.close();
					} 
				catch (SQLException ex) {
				ex.printStackTrace();
				}
			}
		}
	}
}

fehler:
Code:
com.microsoft.sqlserver.jdbc.SQLServerException: Fehler beim Herstellen der TCP/IP-Verbindung mit dem Host 'JOGO-WRK01', Port 1433. Fehler: 'null. Überprüfen Sie die Verbindungseigenschaften. Stellen Sie sicher, dass eine SQL Server-Instanz auf dem Host ausgeführt wird und am Port TCP/IP-Verbindungen akzeptiert. Vergewissern Sie sich, dass am Port keine TCP-Verbindungen durch eine Firewall blockiert werden.'.
	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
	at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241)
	at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2243)
	at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1309)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
	at java.sql.DriverManager.getConnection(DriverManager.java:579)
	at java.sql.DriverManager.getConnection(DriverManager.java:243)
	at DBTest.main(DBTest.java:20)

soviel kenn ich mich jetz auch nicht mit datenbanken aus, aber deine liegt lokal oder? (sehe keinen richtigen pfad)
das wäre dann die erklärung wieso es bei mir nicht funktioniert :p
also liegt deine db lokal?

und dein eclipse kann damit nix zu tun, dein eclipse besitzt sogesehen einfach nur "massig shortcuts" die dir das leben leichter machen, aber du kannst deine java datei auch in einem normalen texteditor scheiben und es kommt aufs gleiche hinaus (nur das du den classpath von hand anpassen musst usw)
 
Zuletzt bearbeitet:
Ja die Datenbank liegt hier lokal auf meinem Rechner. Wäre froh, wenn bei mir der gleiche Fehler käme. Wahrscheinlich würde dieser bei mir nicht mal kommen. Aber es hängt ja schon vorher.

Danke. Gut zu wissen, dass es nicht am Eclipse liegt.

Leider bleibt es bei mir beim gleichen Fehler.
 
So über den jtds-Treiber schaffe ich es nun einen neuen Fehlercode zu produzieren.

Denke das liegt an der Verbindungs-URL.

Aktueller Java Code:

Java:
package de.javatest.Database;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
public class DatabaseConnection2 {
    
    public static void main(String[] args) throws Exception {
 
        Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;
 
        String connectionUrl = "jdbc:jtds:sqlserver://127.0.0.1;databaseName=BA;user=TestUser;password=Test12345;";
 
        try {
            Class.forName("net.sourceforge.jtds.jdbc.Driver"); //com.microsoft.sqlserver.jdbc.SQLServerDriver
            con = DriverManager.getConnection(connectionUrl);
 
 
            String sqlabfrage = "SELECT * FROM Log"; //Log = Tabellenname
            stmt = con.createStatement();
            rs = stmt.executeQuery(sqlabfrage);
 
            while (rs.next())
                System.out.println(rs.getString("ID") + " " + rs.getString("Status") + " " + rs.getString("Zeit") + " " + rs.getString("Port"));
            }
        catch(Exception e){
            e.printStackTrace();
        }
        finally {
            if(con != null)
            {
                try {
                        con.close();
                    } 
                catch (SQLException ex) {
                ex.printStackTrace();
                }
            }
        }
    }
}

Folgender Fehler erscheint nun:

java.sql.SQLException: Network error IOException: Connection refused: connect
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:410)
at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at de.javatest.Database.DatabaseConnection2.main(DatabaseConnection2.java:21)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.sourceforge.jtds.jdbc.SharedSocket.createSocketForJDBC3(SharedSocket.java:307)
at net.sourceforge.jtds.jdbc.SharedSocket.<init>(SharedSocket.java:257)
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:311)
... 5 more


Gruß Joe
 
naja wie gesagt, so gut kenn ich mich mit datenbanken und der treibervielfalt auch nicht aus, aber mit meinem code müsste es funktionieren wenn du den richtigen treiber einbindest.
wie gesagt, sqljdbc4.jar, nicht sqljdbc.jar.

deine jetzige exception sagt ja "refused", vlllt stimmt was mit deinen connect daten nicht? aber großartig sons fällt mir da nix ein, den treiber kenn ich ncih ^^
 
So mittlerweile funktioniert alles.
Konnte jetzt Dinge aus meiner Datenbank auslesen, sowie hineinschreiben.

Musste bei der Datenbank im Konfigurations-Manager ein paar Dinge anpassen.

Vielen Dank für die großartige Hilfe und für die Geduld mit mir.

Schöne Grüße
Joe
 
Hilft dir diese DB-Verbindung vllt weiter?

Java:
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnection {

	private static String port = "";
	private static String host = "";
	private static String user = "";
	private static String password = "";
	private static String sid = "";
	// 
	private String url;
	protected static Connection con = null;
	private boolean debug = false;

	protected DBConnection() {
		con = null;
	}

	public DBConnection(String Host, String Port, String SID, String user, String password, boolean debug) throws ClassNotFoundException, SQLException  {
		invokeConnection(Host, Port, SID, user, password, debug);

	}

	protected void invokeConnection(String Host, String Port, String SID, String user, String password, boolean debug) throws ClassNotFoundException, SQLException {

		if ((!this.port.equals(Port) || !this.host.equals(Host) || !this.sid.equals(SID) || !this.user.equals(user) || !this.password.equals(password)) || con == null) {
			this.port = Port;
			this.host = Host;
			this.sid = SID;
			this.user = user;
			this.password = password;

			url = "jdbc:oracle:thin:@" + Host.trim() + ":" + port.trim() + ":" + SID.trim();
			if(debug){
				System.out.println("--");
				System.out.println(url);
				System.out.println(this.user +"/"+this.password);
				System.out.println("--");
			}
			Class.forName("oracle.jdbc.driver.OracleDriver");

			// momentan wird hier noch eine Direktverbindung vom Client zur DB
			// hergestellt
			try{
			con = DriverManager.getConnection(url, this.user, this.password);
			}catch(Exception e){
				e.printStackTrace();
				System.exit(0);
			}
		}
	}

	public Connection getCon() {
		return this.con;
	}

	public void setCon(Connection con) {
		this.con = con;
	}

	public void CloseCon() throws SQLException {
		this.con.close();
	}
	

}
 
Zurück