GVKun编程网logo

sqlserver中如何以IP+端口号的方式连接到局域网数据库(sql server使用ip连接)

21

本文将为您提供关于sqlserver中如何以IP+端口号的方式连接到局域网数据库的详细介绍,我们还将为您解释sqlserver使用ip连接的相关知识,同时,我们还将为您提供关于(轉)用API得到局域网

本文将为您提供关于sqlserver中如何以IP+端口号的方式连接到局域网数据库的详细介绍,我们还将为您解释sql server使用ip连接的相关知识,同时,我们还将为您提供关于(轉)用API得到局域网中可用SqlServer服务器列表、Eclipse 使用 JDBC 方式连接 SQLServer2008、Eclipse使用JDBC方式连接SQLServer2017、myeclipse 与sqlserver2008通过jdbc方式连接的实用信息。

本文目录一览:

sqlserver中如何以IP+端口号的方式连接到局域网数据库(sql server使用ip连接)

sqlserver中如何以IP+端口号的方式连接到局域网数据库(sql server使用ip连接)

sqlserver连接服务器有几种方式,其中一种就是在数据库引擎中的服务器名称中输入IP+端口号连接,输入格式是:IP+逗号+端口号,如下图所示

(轉)用API得到局域网中可用SqlServer服务器列表

(轉)用API得到局域网中可用SqlServer服务器列表

本文轉自:http://www.pcdog.com/edu/aspdotnet/2006/06/f139082.html

用API得到局域网中可用sqlServer服务器列表

程序实现了用API来得到sqlServer服务器列表的功能,我觉得比用sqlDEMO组件更有意义,代码如下:


/// <summary>

/// 获取网内的数据库服务器名称

/// </summary>

public class sqlLocator

{

     [System.Runtime.InteropServices.DllImport("odbc32.dll")]

     private static extern short sqlAllocHandle(short hType,IntPtr inputHandle,out IntPtr outputHandle);

     [System.Runtime.InteropServices.DllImport("odbc32.dll")]

     private static extern short sqlSetEnvAttr(IntPtr henv,int attribute,IntPtr valuePtr,int strLength);

     [System.Runtime.InteropServices.DllImport("odbc32.dll")]

     private static extern short sqlFreeHandle(short hType,IntPtr handle);

     [System.Runtime.InteropServices.DllImport("odbc32.dll",CharSet= System.Runtime.InteropServices.CharSet.Ansi)]

     private static extern short sqlbrowseConnect(IntPtr hconn,System.Text.StringBuilder inString,

         short inStringLength,System.Text.StringBuilder outString,short outStringLength,

         out short outLengthNeeded);

 

     private const short sql_HANDLE_ENV = 1;

     private const short sql_HANDLE_DBC = 2;

     private const int sql_ATTR_ODBC_VERSION = 200;

     private const int sql_OV_ODBC3 = 3;

     private const short sql_SUCCESS = 0;

 

     private const short sql_NEED_DATA = 99;

     private const short DEFAULT_RESULT_SIZE = 1024;

     private const string sql_DRIVER_STR = "DRIVER=sql SERVER";

 

     private sqlLocator(){}

 

     /// <summary>

     /// 获取网内的数据库服务器名称,是一个字符串数组。

     /// </summary>

     /// <returns></returns>

     public static string[] GetServers()

     {

         string list = string.Empty;

         IntPtr henv = IntPtr.Zero;

         IntPtr hconn = IntPtr.Zero;

         System.Text.StringBuilder inString = new System.Text.StringBuilder(sql_DRIVER_STR);

         System.Text.StringBuilder outString = new System.Text.StringBuilder(DEFAULT_RESULT_SIZE);

         short inStringLength = (short) inString.Length;

         short lenNeeded = 0;

 

         try

         {

              if (sql_SUCCESS == sqlAllocHandle(sql_HANDLE_ENV,henv,out henv))

              {

                   if (sql_SUCCESS == sqlSetEnvAttr(henv,sql_ATTR_ODBC_VERSION,(IntPtr)sql_OV_ODBC3,0))

                   {

                       if (sql_SUCCESS == sqlAllocHandle(sql_HANDLE_DBC,out hconn))

                       {

                            if (sql_NEED_DATA ==  sqlbrowseConnect(hconn,inString,inStringLength,outString,

                                 DEFAULT_RESULT_SIZE,out lenNeeded))

                            {

                                 if (DEFAULT_RESULT_SIZE < lenNeeded)

                                 {

                                     outString.Capacity = lenNeeded;

                                     if (sql_NEED_DATA != sqlbrowseConnect(hconn,

                                          lenNeeded,out lenNeeded))

                                     {

                                          throw new ApplicationException("Unabled to aquire sql Servers from ODBC driver.");

                                     }   

                                 }

                                 list = outString.ToString();

                                 int start = list.IndexOf("{") + 1;

                                 int len = list.IndexOf("}") - start;

                                 if ((start > 0) && (len > 0))

                                 {

                                     list = list.Substring(start,len);

                                 }

                                 else

                                 {

                                     list = string.Empty;

                                 }

                            }                          

                        }

                   }

              }

         }

         catch

         {

              list = string.Empty;

         }

         finally

         {

              if (hconn != IntPtr.Zero)

              {

                   sqlFreeHandle(sql_HANDLE_DBC,hconn);

              }

              if (henv != IntPtr.Zero)

              {

                   sqlFreeHandle(sql_HANDLE_ENV,hconn);

              }

         }

 

         string[] array = null;

 

         if (list.Length > 0)

         {

              array = list.Split(',');

         }

 

         return array;

     }

}

 注:未驗証正确性

Eclipse 使用 JDBC 方式连接 SQLServer2008

Eclipse 使用 JDBC 方式连接 SQLServer2008

JDBC_连接数据库

一、配置

(一)  通过 SQL Server 配置管理器配置相关部分;



右键点击,启动 tcp/ip 协议


右键点击属性查看自己的 TCP 端口号,记住,后面会用到

右键点击 SQL Server 配置管理器重启 sql server (mssqlserver) 服务,使得 tcp/ip 协议生效。

右键点击服务器,选择属性




记住自己更改的密码,后面会用到。

点击状态
(二)  下载 SQL ServerJDCB 库

https://www.microsoft.com/zh-CN/download/details.aspx?id=11774


下载第三个,解压其中对应的类库如:mssql-jdbc-6.4.0.jre9

<需要注意自己的 JDK 是哪个版本的,1.80 以上的对应 sqljdbc42.jar 类库>

然后进入 eclipse 界面,找到的当前工程文件,点击右键,选中 properties->Libraries->addexternal jars-> 找到我们刚刚下载到的 sqljdbc42.jar 类库,添加即可。


百度网盘
提取码:sv6s
 
(三) 新建工程,验证是否成功连接数据库。

package com;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sun.crypto.provider.RC2Parameters;

//登陆处理
public class LoginCL extends HttpServlet  {
    
    public void doGet(HttpServletRequest req,HttpServletResponse res){
        Connection ct=null;
        Statement sm = null;
        ResultSet rs = null;
        try{
            //接收用户名和密码
            String u=req.getParameter("username");
            String p=req.getParameter("passwd"); 
            //加载驱动,不同版本sqljdbc42.jar解压后文件夹顺序不同
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            //得到链接
            ct=DriverManager.getConnection(  
                    "jdbc:sqlserver://127.0.0.1:1433;databaseName = madb","sa","123");  //因为连接的是sql2008,不用加microsoft!!!!            
            sm = ct.createStatement();
            rs = sm.executeQuery("select top 1 * from users where username=''"+u+"'' and passwd=''"+p+"''");
            //验证
            if(rs.next()){
                res.sendRedirect("wel");
            }
            else{
                System.out.println("登陆失败");
            }
        }
        catch(Exception ex){
            ex.printStackTrace();
        }
        finally{
            if(rs!=null){
                try {
                    rs.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if(sm!=null){
                try {
                    sm.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if(ct!=null){
                try {
                    ct.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }    
        }
    }
    
public void doPost(HttpServletRequest req,HttpServletResponse res){
        doGet(req,res);
    }

}

 

Eclipse使用JDBC方式连接SQLServer2017

Eclipse使用JDBC方式连接SQLServer2017

这篇博客写的比较详细了,图文并茂:

https://blog.csdn.net/rebekahq/article/details/78691343

这里补充一些可能会遇到的问题:

1.与博客中不同之处:下载Microsoft JDBC Driver 4.0 for SQL Server时:

 

选择第三个,下载完成之后博客中sqljdbc4即为你下载的sqljdbc42,其余操作步骤与博客中的相同。

 

2.若在运行如下代码时报错:抛出 java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter 异常

 1 新建包 新建class Main
 2 
 3 package p;
 4 
 5 import java.sql.*;
 6 
 7 public class Main 
 8 {
 9     public static void main(String[] args) 
10     {
11         String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";//SQL数据库引擎
12         String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=数据库名";//数据源  !!!!注意若出现加载或者连接数据库失败一般是这里出现问题
13         String Name="你的用户名,比如sa";
14         String Pwd="你的密码";
15            try
16            {
17                Class.forName(driverName);
18                Connection conn=DriverManager.getConnection(dbURL,Name,Pwd);
19                System.out.println("连接数据库成功");
20            }
21         catch(Exception e)
22         {
23             e.printStackTrace();
24               System.out.println("连接失败");
25           }
26    }
27 }

解决方法:

需要导入 javax.xml.bind.jar   去下载一个即可  

网址:http://www.java2s.com/Code/Jar/j/Downloadjavaxxmlbindjar.htm

3.解决抛出异常的另一个方法(在走投无路的情况下,一位姓刘的大佬给我解决的方法!!!):

   因为是缺少javax.xml.bind,可以下载与之对应的jdk版本。

   http://www.itcast.cn/news/20191113/11025871604.shtml

   我是下载了jdk-8u202-windows-x64,并设置Eclipse更改jdk版本为它。

   https://jingyan.baidu.com/article/e75057f20dee21ebc91a89f5.html

myeclipse 与sqlserver2008通过jdbc方式连接

myeclipse 与sqlserver2008通过jdbc方式连接

1.若遇到这中情况,说明你加载的外部jar包路径改变了。 这时我们要重新加载jar包。你的工程属性-java build path-Add External JARs添加你的jar 2.在用jdbc 连接 数据库sqlserver2008时,我们应使用sqljdbc4.jar 3.遇到这种情况时,说明,你建的表不在你所指

myeclipse 与sqlserver2008通过jdbc方式连接

1.若遇到这中情况,说明你加载的外部jar包路径改变了。

这时我们要重新加载jar包。你的工程属性->java build path->Add External JARs添加你的jar

2.在用jdbc连接数据库sqlserver2008时,我们应使用sqljdbc4.jar

myeclipse 与sqlserver2008通过jdbc方式连接

3.遇到这种情况时,说明,你建的表不在你所指定的数据库中。请正确检查表所建的位置。

myeclipse 与sqlserver2008通过jdbc方式连接

4.遇到这中情况时,说明你的jar包没有导入,或是你jar包导入的位置不对。在myeclipse2014中,导入外部jar包的方式通过方式2实现的。

我之前是简单的将sqljdbc4.jar复制到我的工程中,本以为jar包已导入,其实不然。

今天的关于sqlserver中如何以IP+端口号的方式连接到局域网数据库sql server使用ip连接的分享已经结束,谢谢您的关注,如果想了解更多关于(轉)用API得到局域网中可用SqlServer服务器列表、Eclipse 使用 JDBC 方式连接 SQLServer2008、Eclipse使用JDBC方式连接SQLServer2017、myeclipse 与sqlserver2008通过jdbc方式连接的相关知识,请在本站进行查询。

本文标签: