2008-08-09 5 views
10

Je vais commencer un nouveau projet - réécrire un système existant (PHP + SQL Server) à partir de zéro à cause de certaines limitations très sérieuses.Java + SQL Server - une solution viable?

Nous avons quelques très bonnes connaissances de SQL Server (actuellement nous utilisons SQL Server 2000 dans le système existant) et nous aimerions utiliser sa nouvelle version (2008 je suppose) dans notre nouveau projet. Je suis très friand des technologies que Java offre - en particulier Spring Framework et Wicket et je suis assez familier avec Java d'autres projets et missions avant. Par conséquent, nous envisageons d'utiliser Java et Microsoft SQL Server.

Il existe deux pilotes JDBC pour SQL Server - jTDS et celui de Microsoft - http://msdn.microsoft.com/en-us/data/aa937724.aspx. Je pense que nous devrions les tester tous les deux.

Y a-t-il des limites dans une telle solution que je devrais connaître? Quelqu'un at-il l'expérience d'une telle combinaison de technologies?

Répondre

8

J'ai travaillé sur un projet utilisant MSQL Server en conjonction avec une pile Java. Cela fonctionne très bien et aussi longtemps, car JDBC ne devrait pas vraiment se soucier de votre base de données. Nous avons utilisé ehcache avec Hibernate et avons eu des problèmes avec le pilote MS JDBC, nous avons donc basculé vers Jtds et cela fonctionne vraiment bien.

Il est tout à fait un certain temps il y a, alors vous pourriez voulez toujours donner au conducteur une chance MS ...

1

Je ne connais pas Java et 2008 ... mais vous ne devriez pas avoir trop de problèmes avec Java et SQL2000. Comme lubos l'a suggéré, vous vous feriez une faveur pour regarder C# mais si vous êtes beaucoup plus à l'aise avec Java, il n'y aura pas de réelles limitations comme le connecteur JDBC is supported by Microsoft

1

Nous avons été en cours d'exécution d'une application à l'aide Hibernate parler à plusieurs instances MSQL de serveur distant depuis quelques années maintenant et nous avons également passé au pilote jTDS tôt après quelques problèmes avec le pilote M $. Depuis le changement, nous n'avons eu aucun problème. Cependant, ce n'est pas une application compliquée, donc il n'utilise aucun LOB. J'espère que cela pourra aider.

1

jTDS est excellent. Je l'utilise depuis des années sans problème dans des environnements de production à haute disponibilité.

1

Je pencherais vers le pilote jTDS. Le pilote MSSQL a une limitation dans laquelle vous ne pouvez pas relire deux fois la même colonne. Cela arrive fréquemment lors de l'utilisation d'Hibernate.

0

Le pilote JDBC fonctionne bien avec SQL Server 2008, je n'ai rencontré aucun problème. La version que vous devez télécharger dépend de la version du JRE que vous avez installé. JRE6 utilise JDBC4, JRE7 utilise JDBC4.1, etc. Une fois que vous téléchargez le pilote correct de Microsoft et d'exécuter le programme d'installation, vous devrez copier le sqljdbc_auth.dll à partir du répertoire \ auth au c: \ windows \ system32 répertoire. Ensuite, peut alors utiliser ce code pour établir une connexion:

Dans votre tête:

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

et dans votre classe:

public class connectToSQL { 

    public void connectToDB() throws Exception { 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     String connectionUrl = "jdbc:sqlserver://<IPADDRESS>:<PORT>;DatabaseName=<NAME OF DATABASE TO CONNECT TO>;IntegratedSecurity=false";  
     Connection con = DriverManager.getConnection(connectionUrl, "<SQL SERVER USER LOGIN>", "<SQL SERVER PASSWORD>"); 
     Statement s = con.createStatement(); 
     ResultSet r = s.executeQuery("SELECT * FROM <TABLENAME TO SELECT FROM>"); 
     while (r.next()) { 
      System.out.println(r.getString(1)); 
     } 
    } 
} 
Questions connexes