2008-08-09 14 views
10

Voy a comenzar un nuevo proyecto - reescribir un sistema existente (PHP + SQL Server) desde cero debido a algunas limitaciones muy serias por diseño.Java + SQL Server: ¿una solución viable?

Tenemos bastante buen conocimiento de SQL Server (actualmente estamos usando SQL Server 2000 en el sistema existente) y nos gustaría utilizar su nueva versión (2008 supongo) en nuestro nuevo proyecto.

Me gustan mucho las tecnologías que ofrece Java, particularmente Spring Framework y Wicket, y estoy bastante familiarizado con Java de otros proyectos y asignaciones anteriores. Por lo tanto, consideramos usar Java y Microsoft SQL Server.

Hay dos controladores JDBC para SQL Server - jTDS y uno de Microsoft - http://msdn.microsoft.com/en-us/data/aa937724.aspx. Creo que deberíamos probarlos a ambos.

¿Hay alguna limitación en esa solución que deba conocer? ¿Alguien ha experimentado con esa combinación de tecnología?

Respuesta

8

He trabajado en una proyecto utilizando MSQL Server junto con una pila de Java. Funciona muy bien y siempre y cuando JDBC no se preocupe realmente por su base de datos. Usamos ehcache junto con Hibernate y tuvimos problemas con el MS JDBC Driver, así que cambiamos a jtds y funciona realmente bien.

Es bastante hace un tiempo, por lo que aún puede ser que desee dar al conductor la oportunidad de MS ...

1

No sé sobre Java y 2008 ... pero no debería tener demasiados problemas con Java y SQL2000. Como sugirió Lubos, te harías un favor para mirar C#, pero si estás mucho más cómodo con Java, entonces no debería haber ninguna limitación real como el conector JDBC is supported by Microsoft

1

Hemos estado corriendo una aplicación usando Hibernate hablar con varias instancias remota MSQL Server durante algunos años y también cambiamos al controlador jTDS desde el principio después de algunos problemas con el controlador M $. Desde el cambio no hemos tenido ningún problema. Sin embargo, no es una aplicación complicada, por lo que no utiliza ningún LOB. Espero que ayude.

1

jTDS es excelente. Lo he estado utilizando durante años sin problemas en entornos de producción de alta disponibilidad.

1

Me inclinaría hacia el controlador jTDS. El controlador MSSQL tiene una limitación donde no puede volver a leer la misma columna dos veces. Esto ocurre frecuentemente cuando se usa Hibernate.

0

El controlador JDBC funciona bien con SQL Server 2008, no he tenido ningún problema con él. La versión que necesita descargar depende de la versión del JRE que haya instalado. Jre6 utiliza JDBC4, JRE7 utiliza JDBC4.1, etc. Una vez que descargue el controlador correcto de Microsoft y ejecuta el instalador tendrá que copiar el sqljdbc_auth.dll desde el directorio \ auth a la c: \ windows \ system32 directorio. A continuación, a continuación, puede utilizar este código para hacer una conexión:

En su cabecera:

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

y en su clase:

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)); 
     } 
    } 
} 
Cuestiones relacionadas