for - Java+SQL Server: ¿una solución viable?
jdbc sql server java (6)
Voy a comenzar un nuevo proyecto, reescribiendo un sistema existente (PHP + SQL Server) desde cero debido a algunas limitaciones muy serias por diseño.
Tenemos bastante buen conocimiento de SQL Server (actualmente estamos usando SQL Server 2000 en el sistema existente) y nos gustaría utilizar su versión más nueva (2008 supongo) en nuestro nuevo proyecto.
Soy muy aficionado a 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?
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 te sientes mucho más cómodo con Java, entonces no debería haber ninguna limitación real ya que el conector JDBC es compatible con Microsoft.
Trabajé en un proyecto usando MSQL Server junto con Java Stack. 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 hace bastante tiempo, así que quizás quieras darle una oportunidad al conductor de MS ...
Hemos estado ejecutando una aplicación usando Hibernate hablando con múltiples instancias remotas de 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.
jTDS es excelente. Lo he estado utilizando durante años sin problemas en entornos de producción de alta disponibilidad.
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.
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 usa JDBC4, JRE7 usa JDBC4.1, etc. Una vez que descargue el controlador correcto de Microsoft y ejecute el instalador, deberá copiar el archivo sqljdbc_auth.dll del directorio / auth al directorio c: / windows / system32 . Luego puede usar este código para hacer una conexión:
En tu encabezado:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
y en tu 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));
}
}
}