Java中链接MS SQL 数据库用法详解
一.第一种方法:
使用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
中文名:数据源名称
DSN为ODBC定义了一个确定的数据库和必须用到的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 数据库用法详解的更多相关文章
- Java 中 this 和 super 的用法详解
前言 这次我们来回顾一下this和super这两个关键字的用法,作为一名Java程序员,我觉得基础是最重要的,因为它决定了我们的上限,所以我的文章大部分还是以分享Java基础知识为主,学好基础,后面的 ...
- Java中static变量作用和用法详解
static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static ...
- Java 5 的新标准语法和用法详解集锦
Java 5 的新标准语法和用法详解集锦 Java 5 的新标准语法和用法详解集锦 (需要在首选项-java-complier-compiler compliance level中设置为java5.0 ...
- java中List的用法和实例详解
java中List的用法和实例详解 List的用法List包括List接口以及List接口的所有实现类.因为List接口实现了Collection接口,所以List接口拥有Collection接口提供 ...
- Java中堆内存和栈内存详解2
Java中堆内存和栈内存详解 Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,ja ...
- 教程-Delphi中Spcomm使用属性及用法详解
Delphi中Spcomm使用属性及用法详解 Delphi是一种具有 功能强大.简便易用和代码执行速度快等优点的可视化快速应用开发工具,它在构架企业信息系统方面发挥着越来越重要的作用,许多程序员愿意选 ...
- Java中的equals和hashCode方法详解
Java中的equals和hashCode方法详解 转自 https://www.cnblogs.com/crazylqy/category/655181.html 参考:http://blog.c ...
- 转:Java中的equals和hashCode方法详解
转自:Java中的equals和hashCode方法详解 Java中的equals方法和hashCode方法是Object中的,所以每个对象都是有这两个方法的,有时候我们需要实现特定需求,可能要重写这 ...
- js数组中foEach和map的用法详解 jq中的$.each和$.map
数组中foEach和map的用法详解 相同点: 1.都是循环遍历数组(仅仅是数组)中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项value, ...
随机推荐
- js浮点解决
function add(a, b) { var c, d, e; try { c = a.toString().split(".")[1].length; } catch (f) ...
- 【POM】maven profile切换正式环境和测试环境
有时候,我们在开发和部署的时候,有很多配置文件数据是不一样的,比如连接mysql,连接redis,一些properties文件等等 每次部署或者开发都要改配置文件太麻烦了,这个时候,就需要用到mave ...
- Linux系统之-介绍,主要特性
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持32位 ...
- 新手指南:DVWA-1.9全级别教程之SQL Injection
*本文原创作者:lonehand,转载须注明来自FreeBuf.COM 目前,最新的DVWA已经更新到1.9版本(http://www.dvwa.co.uk/),而网上的教程大多停留在旧版本,且没有针 ...
- python locust-事件顺序
from locust import HttpLocust,TaskSet,task ''' 点击STOP,会停止测试,并调用所有当前执行的TaskSet的on_stop,但不会调用teardown函 ...
- js判断变量未定义
js判断变量未定义 控制台输出未定义变量a会报错: 我们打印出a的数据类型是: 我们可以看到未定义变量的数据类型是 "undefined" 所以判断js变量是否未定义的方法就是 t ...
- 集合类不安全之ArrayList
1. 不安全的ArrayList 大家都知道ArrayList线程不安全,怎么个不安全法呢?上代码: public class ContainerNotSafeDemo { public static ...
- windows10下Mysql5.7安装指南
背景 值此国庆70周年之际,为了发扬广大国内软件开发行业,我决定使用MySQL5.7. 呸!实际情况是公司的项目用的是Mysql5.7,但是正式服务器在国外,而且测试服务器也是在国外,关键问题是我这个 ...
- python学习笔记:网络请求——requests模块
上面讲过的urllib模块太麻烦了,还有一个比较方便的模块,就是requests模块,好用到你怀疑人生·^_^,一定要会哦 需要安装,pip install requests即可,下面是request ...
- gitlab搭建使用
1.安装gitlab __环境准备__ [root@gitlab ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [r ...