[ djolesremac @ 12.12.2005. 19:44 ] @
Kao sto navedoh u naslovu teme muci me pravljenje konekcije na SQL Server pomocu JDBC-a. Probao sam nacin koji se opisuje u Java Tutorijalu pomocu metode Class.forName(jdbc.driverName)
i dela koda
Connection con = DriverManager.getConnection(url, "myLogin", "myPassword");
medjutim to ne radi ono sto se ocekuje. Da li postoji neki drugi nacin ili ja ovde ne radim ispravno neke stvari!
Da li neko moze da mi pomogne?
Hvala unapred!
[ _owl_ @ 12.12.2005. 23:33 ] @
Pa detaljnija dokumentacija obicno dolazi uz konkretan JDBC drajver (nisi naveo koji tacno koristis). Ja koristim jtds koji sasvim fino radi.
[ djolesremac @ 13.12.2005. 07:28 ] @
Koristio sam razne drivere ali nijedan ne radi. Mozes li mi objasniti na koji nacin ti koristis te drivere, ili poslati deo koda kojim ostvarujes konekciju?
[ degojs @ 13.12.2005. 07:32 ] @
Microsoftov JDBC drajver koji može (besplatno) da se skine sa MSDN-a provereno radi, a čini mi se da dolazi i sa primerom.

Evo ti primera koji ja imam, mislim da je to baš taj - možda malčice promenjen (ne sećam se više), ali PROVERENO radi.

Code:

/**
  * Microsoft SQL Server JDBC test program
  ******************************************/


import java.sql.*;

....
....
        // In this example we will connect to the 'Northwind' database in SQL server instance 'instance1' on 
        // machine 'server1'.
        //
        // If you are using the default instance then use this line (just remove instance information from the string):
        // Connection connection = DriverManager.getConnection("jdbc:microsoft:sqlserver://server1\\instance1:1433;databaseName=Northwind","sa","sa_password");
        //
        // We are also using username='sa' with password 'sa_password'

        try
        {
            DriverManager.registerDriver(new com.microsoft.jdbc.sqlserver.SQLServerDriver());
            Connection connection = DriverManager.getConnection("jdbc:microsoft:sqlserver://server1\\instance1:1433;databaseName=Northwind","sa","sa_password");
            
            if (connection != null) 
            {
                System.out.println();
                System.out.println("Successfully connected");
                System.out.println();
                // Meta data
                DatabaseMetaData meta = connection.getMetaData();
                System.out.println("\nDriver Information");
                System.out.println("Driver Name: " + meta.getDriverName());
                System.out.println("Driver Version: " + meta.getDriverVersion());
                System.out.println("\nDatabase Information ");
                System.out.println("Database Name: " + meta.getDatabaseProductName());
                System.out.println("Database Version: "+ meta.getDatabaseProductVersion());    
                
                Statement st = connection.createStatement();
                
                ResultSet rs = st.executeQuery("SELECT TOP 100 CustomerID, CompanyName FROM Customers");
                
                while ( rs.next() )
                {
                    String customerID = rs.getString("CustomerID");
                    String companyName = rs.getString("CompanyName");
                    System.out.println(customerID + "\t" + companyName);
                }

                st.close();
                connection.close();
            }
        }
        catch ( SQLException ex )
        {
            System.out.println("Error: " + ex);
        }
[ p_sasko @ 14.12.2005. 07:10 ] @
Evo, ovaj kod ti radi sa vecinom baza.
Testirano sa Oracle,mySQL, postgres, prevasive.

private Connection getConnection(String baza) throws
ClassNotFoundException, SQLException, NullPointerException {
System.out.println("workBaza je: " + baseName);
Connection conn =null;
Class.forName(baseDriver);
if (baseName.equals(bases[2][0])){ // Inicijalizacija za Oracle
String url = conectivity + ":"+ baseName + ":@" + serverAdresa + ":"
+ portNumber + ":orcl";
conn = DriverManager.getConnection(url, user, pass);
try {

conn.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
Statement stat1 = conn.createStatement();
stat1.execute("alter session set NLS_DATE_FORMAT='yyyy-mm-dd'");
}
catch (SQLException ex) {
System.out.println("Baza " + baseName +
" ne podrzava setTransactionIsolation!");
ex.printStackTrace();
}
} else { // Inicijalizacija za Ostalo
String url = conectivity + ":" + baseName + "://" + serverAdresa + ":"
+
portNumber + "/" + baza;
conn = DriverManager.getConnection(url, user, pass);

try {
conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
//.TRANSACTION_READ_COMMITTED);
}
catch (SQLException ex) {
System.out.println("Baza " + baseName +
" ne podrzava setTransactionIsolation!");
ex.printStackTrace();
}
}
conn.setAutoCommit(true);
return conn;
}