一.第一种方法:
使用JDBC—ODBC的桥方式
JDBC—ODBC桥连接器是用JdbcOdbc.class 和一个用于访问ODBC驱动程序的本地库实现的,对于Windows平台,该本地库是一个动态链接库DLL(JDBCODBC.DLL).
由于JDBC再设计上和ODBC很接近。在内部,这个驱动程序把JDBC的方法映射到ODBC调用上,这样,JDBC就可以和任何可用的ODBC驱动程序进行交互了,这种桥接器的优点是:它使JDBC目前有能力访问几乎所有的数据库。
(1)   使用JDBC—ODBC桥方式连接数据库的过程
应用程序—>JDBC API —>JDBC-ODBC—>ODBC API —>ODBC层—>数据源。
(2)   连接数据库的具体操作方法
首先打开控制面板——》管理工具——》数据源(ODBC)如图所示:

有三个选项卡要注意:用户DSN,系统DSN,文件DSN。有关这三种的DSN的信息见后面。在这里我们选择用户DSN(系统DSN也可以).原因见后面。
然后点添加:


然后:


选择SQL Server,点击完成:


说明:1.这里的“名称”一定要和你访问的数据库的名称一样(不一定是DataSource),但是描述无所谓。

2. 这里的服务器一定要选择你数据库所在的服务器上(一般都是local)。
 
设置好后选择下一步:


说明:在这里要选择使用用户输入登录ID…….;登录ID为:sa,密码自己设置

设置到好要到数据库(SqlServer)中设置一下:


安全性中的登录,右击“sa”,选择属性设置相应数据库的访问ID和密码,这里要和上面的ID和密码一致。
完成后单击下一步:


说明:选择更改默认的数据库;选择你要访问的数据库。选择下一步
然后选择下一步。直至完成。这样就配置好了。
(3):核心代码:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动
Conn=DriverManager.getConnection("jdbc:odbc:students","sa","123456");//获得连接
(students 是要访问的数据库的名称,sa是登录ID,123456 是密码);
 
DSN的解释:

原名:Data SourceName

  中文名:数据源名称

  DSNODBC定义了一个确定的数据库和必须用到的ODBC驱动程序。每个ODBC驱动程序定义为该驱动程序支持的一个数据库创建DSN需要的信息。就是说安装ODBC驱动程序以及创建一个数据库之后,必须创建一个DSN。

  一个DSN中至少应该包含如下一些内容:

  ◆关于数据库驱动程序的信息。

  ◆数据库存放位置。文件型数据库(如Access)的存放位置为数据库文件的路径;非文件型数据库(如SQL Server)的存放位置是指服务器的名称。

  ◆数据库名称。在ODBC数据源管理器中,所有的DSN名称是不能重复的。

  一个DSN可以定义为以下3种类型中的任意一种:

  ★用户数据源:这个数据源对于创建它的计算机来说是局部的,并且只能被创建它的用户使用。

  ★系统数据源:这个数据源属于创建它的计算机并且是属于这台计算机而不是创建它的用户。任何用户只要拥有适当的权限都可以访问这个数据源。

  ★文件数据源:这个数据源对底层的数据库文件来说是确定的。换句话说,这个数据源可以被任何安装了合适的驱动程序的用户使用。

  DSN 文件(数据源名)

  Windows DSN 文件(数据源名)主要是用来存储数据库连接信息。如果你有很多网页需要传送数据,就可以很简单的通过DSN文件路径来完成而不需要传送数据到每个页面了。

出于安全考虑,DSN文件一般放置在主机目录的子目录中,这样不明访问者就访问不了这个目录。DSN文件需要在ASP和ADO一起访问数据库。名称为:”_dsn” 在主机帐户的根目录中(注: DSN文件仅支持windows 方案)
经常遇到的错误:
(1):ClassNotFound:

解决方法:观察加载驱动的语句是否有问题Class.forName(…..);
 
(2):无法找到数据源或者默认的驱动程序:


解决方法:查看ODBC的配置是否正确(特别是数据源的名称一定要和你访问的数据库的名称一样

二:第二种方法:
这种实现方法是直接使用数据库厂商提供的专用的网络协议创建的驱动程序,通过它可以直接将JDBC API 调用转换为直接网络调用。这种调用方式一般性能比较好,而且也是实际应用中最简单的方法,因为它不需要安装其他的库或中间件,几乎所有的数据库厂商都为它们的数据库提供了这种JDBC驱动程序。
(1)   使用JDBC API方式连接数据库的过程
应用程序—》JDBC API—》驱动程序—》数据源
(2)   连接数据库的具体操作方法:
首先导入驱动包(一般由数据厂商提供,也可以到网上去下,共三个包:(这里是SqlServer的驱动包:mssqlserver.jar; msutil.jar; msbase.jar;)如图所示:右击工程—>选择属性:


选择“Add External JARs”导入外部包,完成
 
(1)   核心代码:

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

String strUrl = "jdbc:microsoft:sqlserver://localhost:1533;DatabaseName=kcsj";

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动
Conn=DriverManager.getConnection(strUrl,"sa","123456");//获得连接

第一类问题:


解决方法:查看端口号:(1):启动SqlServer网络使用工具


选择TCP/IP,查看属性。看是不是端口号为:1433.

(2):是否安装了SqlServer SP4补丁,因为SqlServerSP4以下的版本默认是不打开1433端口号的。安装时要注意,双击SP4.exe。之后不能完事了,要到你安装到电脑上的文件夹下运行setup.bat(批处理):



这时才是安装SP4.装完后打开SqlServer的查询分析器

输入指令:select@@version;




安装后是上图的结果。

第二类问题:



解决方法:没有全部导入上述的三个驱动包。重新导入。
												

Java中链接MS SQL 数据库用法详解的更多相关文章

  1. Java 中 this 和 super 的用法详解

    前言 这次我们来回顾一下this和super这两个关键字的用法,作为一名Java程序员,我觉得基础是最重要的,因为它决定了我们的上限,所以我的文章大部分还是以分享Java基础知识为主,学好基础,后面的 ...

  2. Java中static变量作用和用法详解

    static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static ...

  3. Java 5 的新标准语法和用法详解集锦

    Java 5 的新标准语法和用法详解集锦 Java 5 的新标准语法和用法详解集锦 (需要在首选项-java-complier-compiler compliance level中设置为java5.0 ...

  4. java中List的用法和实例详解

    java中List的用法和实例详解 List的用法List包括List接口以及List接口的所有实现类.因为List接口实现了Collection接口,所以List接口拥有Collection接口提供 ...

  5. Java中堆内存和栈内存详解2

    Java中堆内存和栈内存详解   Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,ja ...

  6. 教程-Delphi中Spcomm使用属性及用法详解

    Delphi中Spcomm使用属性及用法详解 Delphi是一种具有 功能强大.简便易用和代码执行速度快等优点的可视化快速应用开发工具,它在构架企业信息系统方面发挥着越来越重要的作用,许多程序员愿意选 ...

  7. Java中的equals和hashCode方法详解

    Java中的equals和hashCode方法详解  转自 https://www.cnblogs.com/crazylqy/category/655181.html 参考:http://blog.c ...

  8. 转:Java中的equals和hashCode方法详解

    转自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这 ...

  9. js数组中foEach和map的用法详解 jq中的$.each和$.map

    数组中foEach和map的用法详解 相同点: 1.都是循环遍历数组(仅仅是数组)中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项value, ...

随机推荐

  1. One Switch for Mac 一键切换系统各项功能

        One Switch 是火球工作室推出的最新 Mac效率软件,它在 Menubar 菜单里集成了隐藏桌面(图标).切换 Dark Mode.保持亮屏.开启屏保的一键切换按钮,将以往这些以独立小 ...

  2. Python每日一题 007

    题目 你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都是英文,请统计出你认为每篇日记最重要的词. 很难客观的说每篇日记中最重要的词是什么,所以在这里就仅仅是将每篇日记中出 ...

  3. flutter 接入阿里云OSS

    之前因为使用正常文件上传,用户多时拥堵无法正常上传,因此接入阿里OSS 来解决这个问题.本来打算整原生那块,看了下比较麻烦,用flutter dio 直接请求oss 完成 1.上传用到了image_p ...

  4. 泰坦尼克号沉没之谜,用数据还原真相——Titanic获救率分析(用pyecharts)

    泰坦尼克号获救率数据分析报告,用数据揭露真相. 一,船上乘客生存率分析报告 泰坦尼克号生存率仅有38%的,可见此次事件救援不力,救生艇严重不足,且泰坦尼克号号撞得是冰山,海水冷,没有救生艇,在水里冻死 ...

  5. flask中的目录解析

    首先我们看一下博客blog的封面,flask和django都属于web框架.不过flask属于轻量级web框架,功能的实现是通过扩展实现的,extension.py 中存放各个对象,具体的功能通过对象 ...

  6. 64、通过PickListValuesUtil,Schema查看下拉列表中的值

    public class PickListValuesUtil { public static Map<String,Object> getPicklistValues(String sO ...

  7. oraToolKit Oracle安装辅助工具的使用方法

    目录 目录 otk使用方式 使用oraToolKit进行检测安装包情况 使用oraToolKit进行检测操作系统情况 最后 otk使用方式 oraToolkit的安装在RHEL6.1 安装 Oracl ...

  8. LInux终端中Ctrl+S卡死

    因为初学Linux,在vim中写东西是总是喜欢按Ctrl+s来保存内容导致终端突然卡主,然后上网查资料发现了Ctrl+s 暂停屏幕输出[锁住终端]而对应的按键是Ctrl+q 恢复屏幕输出[解锁终端]

  9. 弹出框中的AJAX分页

    $(function() { $("body").on("click",".set-topic",function(){ /*获取所有题目接 ...

  10. fedora 25重新安装引导

    引导区被其他系统给覆盖了,重新安装引导 grub2-install /dev/sdb GRUB_SAVEDEFAULT=true BIOS grub2-mkconfig -o /boot/grub2/ ...