如何使用JDBC连接到SQL Server 2008数据库?

我在本地PC上安装了MSSQL 2008,我的Java应用程序需要连接到MSSQL数据库。 我是一个MSSQL的新手,我想获得一些帮助,为我的Java应用程序创build用户login,并通过JDBC获得连接。 到目前为止,我试图为我的应用程序创build一个用户login,并使用以下连接string,但我根本不工作。 任何帮助和暗示将不胜感激。

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

主要有两种使用JDBC的方式 – 使用Windows身份validation和SQL身份validation。 SQL身份validation可能是最简单的。 你可以做的是这样的:

 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); 

在将sqljdbc4.jar添加到构buildpath之后。

对于Windows身份validation,您可以执行如下操作:

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

然后将path添加到sqljdbc_auth.dll作为VM参数(在构buildpath中仍然需要sqljdbc4.jar)。

请在这里查看一个简短的分步指南,展示如何使用jTDS和JDBC从Java连接到SQL Server,如果您需要更多的细节。 希望它有帮助!

你可以使用这个 :

 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://<hostname>", "<user>", "<password>"); } } 

如果连接有问题,最有可能的问题是你还没有在端口1433上启用TCP / IP监听器。一个快速的“netstat -an”命令会告诉你它是否在监听。 默认情况下,SQL Server在安装后不会启用此function。

此外,您需要在“sa”帐户上设置密码,并启用“sa”帐户(如果您打算使用该帐户进行连接)。

显然,这也意味着你需要在你的MSSQL节点上启用“混合模式authentication”。

我也使用mssql服务器2008年和jtds.In我的情况下我使用以下连接string,它的工作原理。

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

尝试使用像这样:jdbc:jtds:sqlserver://127.0.0.1/dotcms; 实例=实例名

我不知道你正在使用哪个版本的mssql,如果是express版本,默认实例是sqlexpress

不要忘记检查SQL Server Browser服务是否正在运行。

你可以尝试configurationSQL服务器:

  1. 步骤1:打开SQL Server 20xxconfigurationpipe理器
  2. 步骤2:在SQL服务器configuration中单击SQL ..的协议。 然后,右键单击TCP / IP,select属性
  3. 步骤3:点击标签IP地址,编辑所有的TCP。 港口是1433

注:所有TCP端口是1433最后,重新启动服务器。

这个示例Java程序使用JDBC连接到MySQL数据库,执行查询并检索并打印数据库字段的值。

这个相同的示例代码可以用来连接到任何types的数据库,所有你需要做的就是改变连接url(在示例中是dbUrl)。 为了使代码正常工作,您需要从mysql.com站点下载用于JDBC的mysql驱动程序,也就是Java连接器。

如果在下载URL之后仍然不起作用,那么可能是由于类path。 你将不得不在classpath中添加驱动jar文件。

 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