¿Cómo me conecto a una base de datos de SQL Server 2008 usando JDBC?

Tengo MSSQL 2008 instalado en mi PC local, y mi aplicación Java necesita conectarse a una base de datos MSSQL. Soy nuevo en MSSQL y me gustaría obtener ayuda para crear un inicio de sesión de usuario para mi aplicación Java y obtener conexión a través de JDBC. Hasta ahora intenté crear un inicio de sesión de usuario para mi aplicación y utilicé la siguiente cadena de conexión, pero no funciono en absoluto. Cualquier ayuda y sugerencia será apreciada.

jdbc:jtds:sqlserver://127.0.0.1:1433/dotcms username="shuxer" password="itarator" 

Existen principalmente dos formas de usar JDBC, utilizando la autenticación de Windows y la autenticación SQL. La autenticación SQL es probablemente la más fácil. Lo que puedes hacer es algo como:

 String userName = "username"; String password = "password"; String url = "jdbc:sqlserver://MYPC\\SQLEXPRESS;databaseName=MYDB"; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, userName, password); 

después de agregar sqljdbc4.jar a la ruta de comstackción.

Para la autenticación de Windows puede hacer algo como:

 String url = "jdbc:sqlserver://MYPC\\SQLEXPRESS;databaseName=MYDB;integratedSecurity=true"; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url); 

y luego agregue la ruta a sqljdbc_auth.dll como un argumento de VM (aún necesita sqljdbc4.jar en la ruta de comstackción).

Mire aquí una breve guía paso a paso que muestra cómo conectarse a SQL Server desde Java utilizando jTDS y JDBC en caso de que necesite más detalles. ¡Espero eso ayude!

Puedes usar esto :

 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 sysobjects where type='u'"; ResultSet rs = statement.executeQuery(queryString); while (rs.next()) { System.out.println(rs.getString(1)); } } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { ConnectMSSQLServer connServer = new ConnectMSSQLServer(); connServer.dbConnect("jdbc:sqlserver://", "", ""); } } 

Si tiene problemas para conectarse, lo más probable es que aún no haya habilitado el oyente TCP / IP en el puerto 1433. Un comando rápido “netstat -an” le dirá si está escuchando. De forma predeterminada, el servidor SQL no lo habilita después de la instalación.

Además, debe establecer una contraseña en la cuenta “sa” y también HABILITAR la cuenta “sa” (si planea usar esa cuenta para conectarse).

Obviamente, esto también significa que debe habilitar la “autenticación de modo mixto” en su nodo MSSQL.

También estoy usando mssql server 2008 y jtds. En mi caso estoy usando la siguiente cadena de conexión y funciona.

 Class.forName( "net.sourceforge.jtds.jdbc.Driver" ); Connection con = DriverManager.getConnection( "jdbc:jtds:sqlserver://:1433/zacmpf", userName, password ); Statement stmt = con.createStatement(); 

Intenta usar de esta manera: jdbc: jtds: sqlserver: //127.0.0.1/dotcms; instancia = instanciaNombre

No sé qué versión de mssql está usando, si es una edición express, la instancia predeterminada es sqlexpress

No olvide comprobar si se está ejecutando el servicio del navegador SQL Server.

Puede intentar configurar el servidor SQL:

  1. Paso 1: abra el Administrador de configuración de SQL Server 20xx
  2. Paso 2: haga clic en Protocolos para SQL … en la configuración del servidor SQL. A continuación, haga clic con el botón derecho en TCP / IP, elija Propiedades
  3. Paso 3: haga clic en la pestaña Dirección IP, Editar todo el TCP. El puerto es 1433

NOTA: TODO el puerto TCP es 1433 Finalmente, reinicie el servidor.

Progtwig Java simple que se conecta al servidor SQL.

NOTA: debe agregar sqljdbc.jar en la ruta de comstackción

// localhost: la computadora local actúa como un servidor

// 1433: número de puerto predeterminado de SQL

// nombre de usuario: sa

// password: usa la contraseña, que se usa al momento de instalar SQL server management studio, en mi caso, es ‘root’

 import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Conn { public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException { Connection conn=null; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=company", "sa", "root"); if(conn!=null) System.out.println("Database Successfully connected"); } catch (SQLException e) { e.printStackTrace(); } } } 

Este progtwig Java de ejemplo se conecta a la base de datos MySQL utilizando JDBC, ejecuta una consulta y recupera e imprime el valor del campo de la base de datos.

Este mismo código de muestra se puede usar para conectarse a cualquier tipo de base de datos, todo lo que necesita hacer es cambiar la URL de conexión (dbUrl en la muestra). Para que este código funcione correctamente, deberá descargar el controlador mysql para JDBC, es decir, conectores Java desde el sitio mysql.com.

Si después de descargar la URL todavía no funciona, es probable que se deba a la ruta de clase. Deberá agregar el archivo jar del controlador en el classpath.

 import java.sql.*; import javax.sql.*; public class jdbcdemo{ public static void main(String args[]){ String dbtime; String dbUrl = "jdbc:mysql://your.database.domain/yourDBname"; String dbClass = "com.mysql.jdbc.Driver"; String query = "Select * FROM users"; try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection (dbUrl); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(query); while (rs.next()) { dbtime = rs.getString(1); System.out.println(dbtime); } //end while con.close(); } //end try catch(ClassNotFoundException e) { e.printStackTrace(); } catch(SQLException e) { e.printStackTrace(); } } //end main } //end class