麓谷官网欢迎你访问长沙北大青鸟麓谷校区,支持你成为一个受人尊重的专业人才!
当前位置: 首页 > 青鸟知识 > java

java的jdbc集成windows方式:data source object和URL

来源:长沙北大青鸟|发布时间:2017-03-22|浏览量:

学IT,好工作

就读长沙岳麓职业培训学校

求学热线: 400-160-2868

  java的jdbc集成windows方式的连接方式有两种,即data source object和URL。此前有介绍过如何下载并使用jdbc连接SQL Server,那么如何以windows集成方式连接SQL Server了?下面以data source object和URL两种方式分别实现用windows集成方式连接SQL Server。

java.jpg

  于是,打开netBeans测试了一下,代码如下:

  /**//*

  * To change this template, choose Tools | Templates

  * and open the template in the editor.

  */

  package testsqlconn;

  import java.sql.*;

  import com.microsoft.sqlserver.jdbc.*;

  /** *//**

  *

  * @author: Administrator:downmoon(3w@live.cn)

  * @date:2009-9-23 18:42:32

  * @Encoding:UTF-8

  * @File:TestSqlbyDS/TestSqlbyDS.java

  * @Package:testsqlconn

  */

  public class TestSqlbyDS {

  public TestSqlbyDS(){}

  public void GetResutls()

  {

  // Declare the JDBC objects.

  Connection con = null;

  CallableStatement cstmt = null;

  ResultSet rs = null;

  try {

  // Establish the connection.

  SQLServerDataSource ds = new SQLServerDataSource();

  ds.setIntegratedSecurity(true);

  ds.setServerName("ap4\\agronet08");//数据库实例名

  ds.setPortNumber(1433);

  ds.setDatabaseName("AdventureWorksLT2008");//Database Name

  con = ds.getConnection();

  // Execute a SQL that returns some data.

  //cstmt = con.prepareCall("{call dbo.uspGetEmployeeManagers(?)}");

  //cstmt.setInt(1,50);

  cstmt = con.prepareCall(" select top 10 * from [SalesLT].[Product] ");//Sql

  rs = cstmt.executeQuery();

  // Iterate through the data in the result set and display it.

  while (rs.next()) {

  System.out.println("Product: " + rs.getString("Name") + ", " + rs.getString("ProductNumber"));

  System.out.println("ListPrice: " + rs.getString("ListPrice"));

  System.out.println();

  }

  } // Handle any errors that may have occurred.

  catch (Exception e) {

  e.printStackTrace();

  } finally {

  if (rs != null) {

  try {

  rs.close();

  } catch (Exception e) {

  }

  }

  if (cstmt != null) {

  try {

  cstmt.close();

  } catch (Exception e) {

  }

  }

  if (con != null) {

  try {

  con.close();

  } catch (Exception e) {

  }

  }

  }

  }

  }

  结果提示:找不到sqljdbc_auth.dll,到下载的压缩包里看了下:auth\x86,auth\x64\,auth\IA64下都有该文件,直接复制auth\x86\sqljdbc_auth.dll到 E:\Java\jdkUpdate\jre\lib\ext\下,这是本机的jre路径。

  然后运行,成功!

  后来再试了下,发现直接用URL方式也可以实现:

  代码如下:

  /**//*

  * To change this template, choose Tools | Templates

  * and open the template in the editor.

  */

  package testsqlconn;

  import java.sql.*;

  /** *//**

  *

  * @author: Administrator:downmoon(3w@live.cn)

  * @date:2009-9-23 18:42:32

  * @Encoding:UTF-8

  * @File:TestSqlByURL/TestSqlByURL.java

  * @Package:testsqlconn

  */

  public class TestSqlByURL {

  public TestSqlByURL() {

  }

  public void GetResults() {

  // Create a variable for the connection string.

  String connectionUrl = "jdbc:sqlserver://ap4\\agronet08:1433;databaseName=AdventureWorksLT2008;integratedSecurity=true;";

  // Declare the JDBC objects.

  Connection con = null;

  Statement stmt = null;

  ResultSet rs = null;

  try {

  // Establish the connection.

  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

  con = DriverManager.getConnection(connectionUrl);

  // Create and execute an SQL statement that returns some data.

  String SQL = "SELECT TOP 10 * FROM [SalesLT].[Product]";

  stmt = con.createStatement();

  rs = stmt.executeQuery(SQL);

  // Iterate through the data in the result set and display it.

  while (rs.next()) {

  System.out.println(rs.getString(2) + " " + rs.getString(3));

  }

  } // Handle any errors that may have occurred.

  catch (Exception e) {

  e.printStackTrace();

  } finally {

  if (rs != null) {

  try {

  rs.close();

  } catch (Exception e) {

  }

  }

  if (stmt != null) {

  try {

  stmt.close();

  } catch (Exception e) {

  }

  }

  if (con != null) {

  try {

  con.close();

  } catch (Exception e) {

  }

  }

  }

  }

  }

  如果是用户名加密码的URL方式,则不需要sqljdbc_auth.dll,简单多了:

  /**//*

  * To change this template, choose Tools | Templates

  * and open the template in the editor.

  */

  package testsqlconn;

  import java.sql.*;

  import com.microsoft.sqlserver.jdbc.*;

  /** *//**

  *

  * @author: Administrator:downmoon(3w@live.cn)

  * @date:2009-9-23 18:42:32

  * @Encoding:UTF-8

  * @File:TestSqlUserPwdURL/TestSqlUserPwdURL.java

  * @Package:testsqlconn

  */

  public class TestSqlUserPwdURL {

  public TestSqlUserPwdURL(){}

  public static void ShowProduct(String ip,String dbName,String user,String pwd,int port,String sql) {

  try {

  // ## DEFINE VARIABLES SECTION ##

  // define the driver to use

  String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

  // the database name

  //String dbName = "AdventureWorksLT2008";

  // define the Derby connection URL to use

  String connectionURL = "jdbc:sqlserver://"+ip+":"+port+";databaseName=" + dbName;

  // System.out.println(connectionURL);

  Connection conn = null;

  // Beginning of JDBC code sections

  // ## LOAD DRIVER SECTION ##

  Class.forName(driver);

  System.out.println(driver + " loaded. ");

  conn = DriverManager.getConnection(connectionURL, user, pwd);

  Statement s = conn.createStatement();

  ResultSet rs = s.executeQuery(sql);

  while (rs.next()) {

  System.out.println("ID : " + rs.getInt(1));

  System.out.println("Name : " + rs.getString(2));

  System.out.println("Number: " + rs.getString(3));

  System.out.println("Time: " + rs.getString(4));

  System.out.println();

  }

  rs.close();

  s.close();

  conn.close();

  } catch (Exception e) {

  System.out.println("Exception: " + e);

  e.printStackTrace();

  }

  }

  }

上一篇:学习java对英语要求高不高?英语差可以学吗?

下一篇:Java分布式计算分析:如何调用不同机器上的对象

扫码关注微信公众号了解更多详情

跟技术大咖,专业导师一起交流学习

姓名
电话
Q Q

在线留言

请您把问题留下,我们为您提供专业化的解答!

QQ咨询
  1. 招生问答
  2. 热门点击
  3. 最新更新
  4. 推荐文章

关于我们

学校成就

就业保障

联系方式

联系电话:400-160-2868

在线报名

预约报名

备案号:湘ICP备2020021619号-1
地址:湖南省长沙市高新区麓谷麓松路679号 版权所有:长沙市岳麓职业培训学校

在线咨询
课程咨询 学费咨询 学费分期 入学测试 免费预约 来校路线
初中生 高中生 待业者
400-160-2868

在线客服