问题杂谈:使用JDBC连接SQL Server数据库

495 阅读3分钟

在刚刚接触使用JDBC连接数据库时,总会碰到很多问题,让人无所适从。所以,笔者以SQL Server

为例,详细讲解如何使用JDBC连接SQL Server。下载请点击SQL Server 2017SQL Server 2016

Tomcat 9.0.1\

在开始之前,请先正确安装SQL Server和Tomcat。(笔者是以SQL Server 2017和Tomcat9.0.1进行演示)

准备:在正确安装SQL server和Tomcat之后,打开cmd,运行指令“telnet 127.0.0.1 1433”,如果出现

“telnet不是内部指令或程序......”说明你没有打开telnet服务,那么请参考笔者另一篇博客“打开telnet服务问题”

如果正确打开telnet服务,但是运行上述telnet指令,出现“无法连接127.0.0.1,端口1433......”,则说明要对SQL

Server进行配置,接下来就是详细的配置过程。

第一步: 使用键盘快捷键“window+x”选择“计算机管理”或者直接使用SQL Server配置管理器,如图:

\

第二步: 打开的窗口如下图所示。在左边栏找到 SQL Server网络配置选项,点开它的小箭头,会

看到“【你的数据库名】的协议” ,选中它,看右边栏。如图:

\

第三步: 如果Named Pipes 未启用,则右键→启用,右键单击 TCP/IP,选择 启用,双击TCP/IP

(右键→属性),在弹出的窗口中选择 “IP地址” 选项卡,将IP1和IP10的【IP地址】设为127.0.0.1,

并将所有【IPx】的【已启用】设为是。接着,拖动下拉条到最下方,将 IPAll 中的【TCP端口】设

成 【1433】,其余不变。如图:

\

\

第四步: 重新启动计算机,接下来使用telnet命令“telnet 127.0.0.1 1433”测试1433端口是否打开。

第五步: 环境变量CLASSPATH配置:下载JDBC,然后在D盘新建一个文件夹,命名为sqljdbc4,将

sqljdbc42.jar复制一个进去。

第六步: 右击 我的电脑 → 属性 → 高级系统设置(高级) → 环境变量,在系统变量中双击

CLASSPATH变量(或选中CLASSPATH后 → 编辑),在最后面追加 “;D:\sqljdbc42\sqljdbc42.jar” 

(注意最前面有个 ; )若不存在CLASSPATH,就新建CLASSPATH变量,并且将其值设

为“D:\sqljdbc42\sqljdbc42.jar”。连续点击 确定 以退出环境变量配置。

\

第七步: (非常重要)我们需要将sqljdbc4.jar类库文件拷贝到D:\Java Tools\jdk1.7.0\jre\lib\ext目

录下。(看你安装在哪个盘,如果是C盘,则最前面的D改为C,下同)。

我们需要将sqljdbc42.jar类库文件拷贝到D:\Program Files\Java\jre7\lib\ext目录下最好是,只要

是jre文件夹,都复制一个sqljdbc42.jar到jre7\lib\ext里去!!

如果是使用Tomcat做服务器(我使用的是Tomcat7),那么我们需要将sqljdbc42.jar类库文件

拷贝到D:\Tomcat_9.0.1\lib目录下。\

第八步: 打开SQL Server 2017,在其中新建数据库 Test,然后退出SQL Server2017。

运行Eclipse,新建一个JavaProject 名为 Test。右单击src,依次选择 Build Path → Configure Build Path,在

打开的窗口的右边选择 Libraries标签,然后单击 Add External JARs,找到 sqljdbc42.jar 文件并打

开,然后单击 OK 完成构建路径的配置。如图:

\

最后:输入代码测试

importjava.sql.*;
 
publicclass Main {
 publicstatic void main(String [] args)
 {
  StringdriverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
  StringdbURL="jdbc:sqlserver://localhost:1433;DatabaseName=你的数据库名";
  String userName="填写你的用户名,我的是sa";
  String userPwd="填写你的密码";
  try
  {
   Class.forName(driverName);
   ConnectiondbConn=DriverManager.getConnection(dbURL,userName,userPwd);
    System.out.println("连接数据库成功");
  }
  catch(Exception e)
  {
   e.printStackTrace();
   System.out.print("连接失败");
  }    
 }
}

\

\

\

\