java - microsoft - ¿Cómo puedo usar el controlador MS JDBC con MS SQL Server 2008 Express?
sqljdbc4-4.0.jar download (6)
Mi configuración:
- Windows XP SP3
- JDBC 2005
- MS SQL Server 2008 Express, expuesto a través de tcp / ip en el puerto 1433
- sqljdbc.jar en la ruta de la clase
Lo intenté:
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433/SQLEXPRESS2008;databaseName=Test;selectMethod=cursor", "sa", "");
}
catch (Exception e) {
e.printStackTrace();
}
Pero siempre arroja una excepción:
java.sql.SQLException: No suitable driver
También probé las siguientes URL:
localhost:1433/SQLEXPRESS2008
localhost/SQLEXPRESS2008
localhost
Mismos resultados ¿Alguna ayuda?
Puedes probar lo siguiente. Funciona bien en mi caso:
- Descargue el controlador JTDS JDBC actual
- Pon jtds-xxxjar en tu classpath.
- Copie ntlmauth.dll a windows / system32. Elija el dll basado en su hardware x86, x64 ...
- La url de conexión es: ''jdbc: jtds: sqlserver: // localhost: 1433 / YourDB'', no es necesario que proporcione nombre de usuario y contraseña.
Espero que ayude.
El último controlador de conectividad JDBC MSSQL se puede encontrar en JDBC 4.0
El archivo de clase debe estar en el classpath. Si está usando eclipse, puede hacer lo mismo haciendo lo siguiente ->
Haga clic con el botón secundario en Nombre del proyecto -> Propiedades -> Ruta de compilación de Java -> Bibliotecas -> Agregar tarros externos
También como ya se señaló por @Cheeso, la forma correcta de acceder es jdbc: sqlserver: // server: port; DatabaseName = dbname
Mientras tanto, encuentre una clase de muestra para acceder a MSSQL DB (2008 en mi caso).
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ConnectMSSQLServer
{
public void dbConnect(String db_connect_string,
String db_userid,
String db_password)
{
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(db_connect_string,
db_userid, db_password);
System.out.println("connected");
Statement statement = conn.createStatement();
String queryString = "select * from SampleTable";
ResultSet rs = statement.executeQuery(queryString);
while (rs.next()) {
System.out.println(rs.getString(1));
}
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args)
{
ConnectMSSQLServer connServer = new ConnectMSSQLServer();
connServer.dbConnect("jdbc:sqlserver://xx.xx.xx.xxxx:1433;databaseName=MyDBName", "DB_USER","DB_PASSWORD");
}
}
Espero que esto ayude.
Usted tiene la URL incorrecta.
No sé a qué te refieres con "JDBC 2005". Cuando miré en el sitio de Microsoft, encontré algo llamado Microsoft SQL Server JDBC Driver 2.0 . Lo querrás, incluye muchas correcciones y algunas mejoras de rendimiento. [edit: probablemente quieras el último controlador. A partir de marzo de 2012, el último controlador JDBC de Microsoft es JDBC 4.0.
Verifique las notas de la versión. Para este controlador, quieres:
URL: jdbc:sqlserver://server:port;DatabaseName=dbname
Class name: com.microsoft.sqlserver.jdbc.SQLServerDriver
Parece que tienes el nombre de la clase correcto, pero la URL es incorrecta.
Microsoft cambió el nombre de clase y la URL después de su lanzamiento inicial de un controlador JDBC. La URL que está utilizando va con el controlador JDBC original de Microsoft, el que MS llama la "versión de SQL Server 2000". Pero ese controlador usa un nombre de clase diferente.
Para todos los controladores posteriores, la URL cambió al formulario que tengo aquí.
Esto está en las notas de la versión para el controlador JDBC.
- Descargue el último controlador JDBC (es decir,
sqljdbc4.0
) desde el sitio web de Microsoft Escriba el programa de la siguiente manera:
import java.sql.*; class testmssql { public static void main(String args[]) throws Exception { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433; databaseName=chapter16","sa","123");//repalce your databse name and user name Statement st=con.createStatement(); ResultSet rs=st.executeQuery("Select * from login");//replace your table name while(rs.next()) { String s1=rs.getString(1); String s2=rs.getString(2); System.out.println("UserID:"+s1+"Password:"+s2); } con.close(); } }
Compile el programa y establezca el jar classpath viz:
set classpath=C:/jdbc/sqljdbc4.jar;.;
Si ha guardado su archivojar
enC:/jdbc
después de descargarlo y extraerlo.- Ejecute el programa y asegúrese de que su servicio TCP / IP esté habilitado. Si no está habilitado, entonces siga estos pasos:
- Vaya a Inicio -> Todos los programas -> Microsoft SQL Server 2008 -> Herramientas de configuración -> Administrador de configuración de SQL Server
- Expanda la configuración de red del servidor Sql: elija su instancia de MS SQL Server. MSQSLSERVER y habilite TCP / IP.
- Reinicie su instancia de MS SQL Server. Esto se puede hacer también desde el menú contextual de Microsoft SQL Server Management Studio en el nivel raíz de su instancia de servidor MS SQL
¿Instancias con nombre?
URL: jdbc: sqlserver: // [serverName] [/ instanceName] [: portNumber] [; property = value]
Nota: barra oblicua hacia atrás
Si su valor de databaseName
es correcto, utilice esto: DriverManger.getconnection("jdbc:sqlserver://ServerIp:1433;user=myuser;password=mypassword;databaseName=databaseName;")