none
se connecter à SQL server en java RRS feed

  • Question

  • bonjour

    J'ai avancé en Java et je dois coder une connexion à la base de données en Java sous éclipse. Je vous met mon code et le résultat

                    static SQLData myReader;
    		static Connection connection = null;
    	        static Statement stmt = null;
    	        ResultSet rs = null;
    		static long ConnectServer( String wsLogin, String wsPassword, String wsDatabaseFullPathName) throws SQLException
    		{
    			long ErrorCode = 0;
    			if( ErrorCode == 0)
    			{
    				// Provider=SQLNCLI11;User Instance=true;MARS Connection=true;AttachDbFilename=C:\\Programmes\\Microsoft SQLServer\\MSSQL10_50.SQLEXPRESS\\MSSQL\\DATA\\COHERENCE.mdf;Driver={SQL Server Native Client 11.0};Initial Catalog=Northwind
    				try
    				{
    					Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver" ).newInstance();
    			                String connectionString ="Integrated Security=true;Pooling=true;Max Pool Size=100;Timeout=15;MultipleActiveResultSets=true;Type System Version=SQL Server 2012;database=COHERENCE;server=xantia\\SQLEXPRESS";
    			                connection = DriverManager.getConnection( connectionString);
    			                stmt = connection.createStatement();
    					Data.m_bServerConnected = true;
    				}
    				catch( Exception ex)
    				{
    					ex.printStackTrace();
    					Data.m_bServerConnected = false;
    				}
    			}
    			ErrorCode = 0;
    			return( ErrorCode);
    		//OD
    		}

    j'ai des difficultés avec le Class.forName

    java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver


    Jean Noël Martin

    lundi 22 décembre 2014 16:21

Toutes les réponses

  • Bonjour,

    Définissez votre variable système CLASSPATH pour inclure les entrées suivantes :
    • \<var style="margin:0px;padding:0px;box-sizing:border-box;">Votre chemin d'installation</var>\Lib\Msbase.jar
    • \<var style="margin:0px;padding:0px;box-sizing:border-box;">Votre chemin d'installation</var>\Lib\Msutil.jar
    • \<var style="margin:0px;padding:0px;box-sizing:border-box;">Votre chemin d'installation</var>\Lib\Mssqlserver.jar

    Voir le KB313100

    https://support.microsoft.com/kb/313100

    Un exemple de code de test:

    import java.*;
    public class Connect{
         private java.sql.Connection  con = null;
         private final String url = "jdbc:microsoft:sqlserver://";
         private final String serverName= "localhost";
         private final String portNumber = "1433";
         private final String databaseName= "pubs";
         private final String userName = "user";
         private final String password = "password";
         // Informs the driver to use server a side-cursor, 
         // which permits more than one active statement 
         // on a connection.
         private final String selectMethod = "cursor"; 
         
         // Constructor
         public Connect(){}
         
         private String getConnectionUrl(){
              return url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod+";";
         }
         
         private java.sql.Connection getConnection(){
              try{
                   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
                   con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
                   if(con!=null) System.out.println("Connection Successful!");
              }catch(Exception e){
                   e.printStackTrace();
                   System.out.println("Error Trace in getConnection() : " + e.getMessage());
             }
              return con;
          }
    
         /*
              Display the driver properties, database details 
         */ 
    
         public void displayDbProperties(){
              java.sql.DatabaseMetaData dm = null;
              java.sql.ResultSet rs = null;
              try{
                   con= this.getConnection();
                   if(con!=null){
                        dm = con.getMetaData();
                        System.out.println("Driver Information");
                        System.out.println("\tDriver Name: "+ dm.getDriverName());
                        System.out.println("\tDriver Version: "+ dm.getDriverVersion ());
                        System.out.println("\nDatabase Information ");
                        System.out.println("\tDatabase Name: "+ dm.getDatabaseProductName());
                        System.out.println("\tDatabase Version: "+ dm.getDatabaseProductVersion());
                        System.out.println("Avalilable Catalogs ");
                        rs = dm.getCatalogs();
                        while(rs.next()){
                             System.out.println("\tcatalog: "+ rs.getString(1));
                        } 
                        rs.close();
                        rs = null;
                        closeConnection();
                   }else System.out.println("Error: No active Connection");
              }catch(Exception e){
                   e.printStackTrace();
              }
              dm=null;
         }     
         
         private void closeConnection(){
              try{
                   if(con!=null)
                        con.close();
                   con=null;
              }catch(Exception e){
                   e.printStackTrace();
              }
         }
         public static void main(String[] args) throws Exception
           {
              Connect myDbTest = new Connect();
              myDbTest.displayDbProperties();
           }
    }


    Cordialement, Best Regards, مع أجمل تحياتي ESSALIFI Mohamed Faiçal [MCT-MCSE]. If your question is answered please mark the response as the answer so that others can benefit.


    mardi 23 décembre 2014 14:40
  • Merci pour votre contribution;

    mais elle ne réponds pas au problème

    chez moi ce code par en exception sur l'instruction

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 


    Jean Noël Martin

    mardi 23 décembre 2014 16:22
  • Bonjour,

    Pour la chaine de connexion, tout est expliqué ici :

     - http://msdn.microsoft.com/en-us/library/ms378428.aspx

    Il faut en revanche installer sur votre machine les pilotes JDBC pour SQL Server qui ne sont pas disponible de base.

    Cela dépend du moteur SQL en question, selon votre chaine de connexion, vous trouverez les Pilotes JDBC ici :

     - http://www.microsoft.com/en-us/download/details.aspx?id=29065

    Dernier point, je ne suis pas certain que JDBC puisse travailler en direct sur le fichier MDF comme vous le mettez dans la chaine de connexion, je pense que vous devez passer par le Service Windows comme un vrai serveur SQL.

    Fabrice


    Romelard Fabrice [MVP]

    mercredi 24 décembre 2014 14:26
  • je suis sur SQLServer 2014:je ne pense pas que ça pose un problème

    je n'ai pas de problème de chaine de connexion ni de téléchargement j'ai le problème d'installer jdbc


    Jean Noël Martin

    vendredi 26 décembre 2014 10:02