2010-12-09 19 views
14

¿Cuáles son las diferencias entre cada controlador? Quiero decir, además de uno de ellos es de código abiertodiferencias entre ms sql controladores jdbc de microsoft y controlador jTDS

¿Cuáles son los pros/contras de cada uno?

¿Cuál recomendaría usted?


aquí es jTDS propia opinión sobre el tema: http://jtds.sourceforge.net/

+1

No me puedo imaginar elegir un componente de integración de Microsoft Java sobre algo así como jTDS. – Pointy

+0

La documentación de Atlassian para Confluence recomienda usar JTDS sobre el jar de MS JDBC cuando se conecta a SQL Server ... –

+2

Consulte esta pregunta: http://stackoverflow.com/questions/1186932/using-jtds-driver –

Respuesta

16

Son implementaciones distintas. El controlador jTDS es un tipo 4 y en mi experiencia tiene un mejor rendimiento. He estado usando el controlador jTDS en un entorno de producción sin problemas durante 5 años.

Recomendaría ir con jTDS.

+7

El controlador JDBC de Microsoft SQL Server también es un controlador de tipo 4. Y si bien ha mejorado en los últimos años, todavía no es tan bueno y estable como jTDS. –

+0

Considerando que el apoyo para XA siempre implica un componente del lado del servidor SQL nativo –

3

Una diferencia relevante es, que el JDBC 4.0 Aplicación de la jTDS-Driver (v1.3.1) requiere al menos Java 7, mientras que la aplicación JDBC 4.0 del controlador de Microsoft está disponible en Java 6.

Este es importante si quiere usar Hibernate 4.3 (confiando en la API de JDBC 4.0) y es compatible con Java 6. En ese caso, JTDS no es una opción.

2

La razón principal para usar jTDS es que usa la licencia GPL menor, donde el controlador de Microsoft usa su propia licencia que tiene muchas más restricciones. Una restricción de la nota es que es posible que no

  • eludir las limitaciones técnicas del software

hay más restricciones en la licencia, tales como:

  • transfiera el software o este acuerdo a un tercero
  • utilizar el software para servicios comerciales de software de alojamiento

que podría interpretarse que no se puede utilizar en el código de producción, sin embargo los puntos anteriores en la licencia parecen permitirlo.

Habiendo dicho todo esto, no conozco las licencias dentro de SQL Server, que pueden o no restringir controladores de terceros como jTDS que se conectan a él.

Otro punto es que jTDS está disponible a través de maven, el controlador de Microsoft no lo está.

<dependency> 
    <groupId>net.sourceforge.jtds</groupId 
    <artifactId>jtds</artifactId> 
    <version>1.3.1</version> 
</dependency> 

Para mi elección, utilice jTDS, es más permisiva y con menos probabilidades de meterte en problemas, y; es un mejor conductor.

+2

Desde noviembre de 2016, el controlador de Microsoft está disponible en Github bajo la licencia MIT: https://github.com/Microsoft/mssql-jdbc, y en Maven Central bajo groupId "com.microsoft.sqlserver" – metatechbe

Cuestiones relacionadas