关于在Java中链接SQLServer数据库中失败的原因分析
首先声明:笔者是Java的初学者,并且一值是走在自学的道路上,长久以来只有“度娘”相伴。(加入了各种Java学习群,基本没有热心帮人解决问题的。可以理解-_-!!!)大神级的人物就不必看拙文了,没有什么技术含量。主要是把Java在链接SQLserver数据库中遇到问题的系统解决方法总结梳理下。废话就不说了,言归正传:
笔者在做Java练习时,对关于链接SQLserver数据库的方法,通过贴心的“度娘”查了很多有借鉴意义的博文,受教非浅。于是本着人人为我的精神照搬了其中一个代码较工整清晰的案例(是谁的我忘记了,因为太多了~_~)。之后令人惊悚的事件发生了,在调试中,一连串的红色EXception冲刷着我的屏幕。上帝啊,那个案例明明在结束语处,写着“测试通过”,为毛在我这里就对我如此这般残忍。好奇心使我不干屈服,我怀着懊恼的心情拿起了鼠标,拖动这哪一行行看不懂的红文,直至顶端。啊!在我有限的鸟语库里终于搜索到了熟悉的内容“ClassNotFindException”。当看到熟悉的景物一种兴奋之感悠然而生,但随后边消失了。因为一个跟现实的问题突然闪现在我的脑海中:“哪代表的是啥意思?”。无奈之下,又在此求助了百求不厌的“度娘”。原来是没有驱动啊!(怎么还要另装驱动啊,不是自带的啊O_O~,看来离我想想的便捷还有段距离。)知道原因就简单了,让“度娘”帮找驱动去,很快就找到了,并下载到的库里。激动的心情难以言表,颤抖的鼠标打开了驱动文件夹,靠!怎么有两个文件,我要用那个。在此蒙圈的我又去问了“度娘”,原来是兼容问题:SQLJDBC.jar是兼容Java1.6之前的;SQLJDBC4.jar是兼容Java1.6之后的;问题高清了,我果断的查了下我的版本:1.8,嗯,看来是SQLJDBC4.jar了。要给它安个家啊,要不怎么能安心工作呢!标准地址是:/java/jdk/jre/lib/ext下。还要把地址告诉我的开发工具,好指导上哪儿去找去,classpath。一切都搞定了这下你该可以了吧。在此运行起我的测试程序。俗话说:“残酷的打击不会只有一个”,又是一堆看不的红文,这是又怎么了,不是已经给你驱动了吗?还真是难伺候啊。耐着性子继续和“度娘”做着和之前一样的工作。在“度娘”帮助下问题是搞清楚了,用户名登录失败!!!!。天啊,什么情况!我明明可以通过配置工具登录的用户名,怎么到你着就不灵了啊,成黑户了吗?没关系,”度娘“是万能的,一问便知。原来SQLserver的身份管理上是区分windows身份和SQLserver身份的,通过外部程序访问要通过SQLserver身份验证才行,原来如此。那就给俺一个sqlserver的身份呗。通过登录管理工具,在安全性里选择两者皆可的混合模式(看来window模式是必须的了)。设置好之后,在用户里启用了我要使用的用户名,设置好密码。好了,累死我了。这下终于完成了。俗话说:“再一再二,不能再三”,这下总该让我看到久违的“链接成功”的消息了吧,哈哈~。我迫不及待地在次运行了程序,有时,我总觉得上帝是在故意整我,哪看到想吐的红文,又在此如约而至的来了,而且还和上次的一模一样,我去,我不是已经给你开通了吗,哪怕你有点新信息也好啊。难道我折腾半天白费了吗?
现实是残酷的,一切还要从头开始。本来我已经打算放弃了,在“度娘”一通漫无目的的海搜中看到,还要在SQLserver的配置工具中配置TCP/IP协议的地址和端口号127.0.0.1:1433都配置好了,可问题依然如故,烦躁之感,时不时的偷袭着我。无聊之下看着配置工具里的内容,突然一个问题引起了我的注意,怎么在配置工具里有两个SQLserver的网络配置项,其中一个多了一个32是什么意思,点开之后发现里面的内容和另一个是完全一样的,只是协议名字有了区别,一个是MSSQLSERVER,一个是SQLEXPRESS。协议中的内容是一样的,只是一个是全启动状态,一个是全禁用状态,突然我灵光一闪(^O^)好像这个跟用管理工具登录时选择服务起名称是一样的啊。难道问题出在这里了吗,顿时倦意全无,在管理工具上试着换下服务器名称登录下,果然登录失败。这下我终于明白了问题的根源,果断的关闭另一服务器,把另一服务器中禁用的项全打开。在进行我之前程序的测试。盼望已久的“链接成功”信息终于出现在了我的眼前。
关于在Java中链接SQLServer数据库中失败的原因分析的更多相关文章
- Excel 数据导入至Sqlserver 数据库中 ltrim() 、rtrim() 、replace() 函数 依次空格无效问题
今天导一些数据从Excel中至Sqlserver 数据库中,在做数据合并去重的时候发现,有两条数据一模一样,竟然没有进行合并: 最后发现有一条后面有个“空格”,正是因为这个“空格”让我抓狂许久,因为它 ...
- jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上 1.JavaBean的使用 package com.zheng; public class BookBean { ...
- PowerDesigner从SqlServer数据库中导入实体模型
PowerDesigner从SqlServer数据库中导入实体模型 时间 2013-06-28 10:26:34 CSDN博客 原文 http://blog.csdn.net/sxycxwb/art ...
- 批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor
批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor2.1.11 之前写过一篇文章,使用redgate公司的SQL PROMPT工具,但是不太方便 SQLPRO ...
- 获取sqlserver数据库中所有库、表、字段名的方法
获取sqlserver数据库中所有库.表.字段名的方法 2009年03月12日 星期四 下午 12:51 1.获取所有数据库名: SELECT Name FROM Master..SysDatabas ...
- 设置SQLServer数据库中某些表为只读的多种方法
原文:设置SQLServer数据库中某些表为只读的多种方法 翻译自:http://www.mssqltips.com/sqlservertip/2711/different-ways-to-make- ...
- 【转载】Sqlserver数据库中无自增Id的情况下使用ROW_NUMBER()函数进行数据分页
在Sqlserver数据库中,如果查询表中含有自增长Id列,一般会采用select Top的方式来数据的分页操作.而实际上很多数据表设计的时候,不一定含有自增长Id列,那么数据库没有Id自增列的时候要 ...
- Sqlserver数据库中的临时表详解
临时表在Sqlserver数据库中,是非常重要的,下面就详细介绍SQL数据库中临时表的特点及其使用,仅供参考. 临时表与永久表相似,但临时表存储在tempdb中,当不再使用时会自动删除.临时表有两种类 ...
- SQLServer数据库中开启CDC导致事务日志空间被占满的原因
SQLServer数据库中开启CDC导致事务日志空间被占满的原因 转载 2017-04-01 投稿:mrr 我要评论 这篇文章主要介绍了SQLServer数据库中开启CDC导致事务日志空间 ...
随机推荐
- Linux下使用Python操作MySQL数据库
安装mysql-python 1.下载mysql-python 打开终端: cd /usr/local sudo wget http://nchc.dl.sourceforge.net/sourcef ...
- iOS:延迟加载和上拉刷新/下拉加载的实现
lazy懒加载(延迟加载)UITableView 举个例子,当我们在用网易新闻App时,看着那么多的新闻,并不是所有的都是我们感兴趣的,有的时候我们只是很快的滑过,想要快速的略过不喜欢的内容,但是只要 ...
- Invalidate、RedrawWindow与UpdateWindow的差别
一:什么时候才会发生重绘窗体的消息? 当须要更新或又一次绘制窗体的外观时,应用程序就会发送WM_PAINT消息. 对窗体进行又一次绘制. 二:Invalidate() -- RedrawW ...
- javaEE开发之文件下载
package com.example.web; import java.io.File; import java.io.FileInputStream; import java.io.IOExcep ...
- python中的ord,chr函数
chr().unichr()和ord() chr()函数用一个范围在range(256)内的(就是0-255)整数作参数,返回一个对应的字符.unichr()跟它一样,只不过返回的是Unicode字符 ...
- select * from (select user())a 为什么是查询user()的意思?
步骤:1.先查询 select user() 这里面的语句,将这里面查询出来的数据作为一个结果集 取名为 a2.然后 再 select * from a 查询a ,将 结果集a 全部查询出来
- 使用zTree插件构建树形菜单
zTree下载:https://github.com/zTree/zTree_v3 目录: 就我看来,zTree较为实用的有以下几点: zTree 是一个依靠 jQuery 实现的多功能 “树插件”. ...
- python中MySQL模块TypeError: %d format: a number is required, not str异常解决
转载自:http://www.codeif.com/topic/896 python代码: attr_sql = "INSERT INTO `ym_attribute` (`attr_nam ...
- 在连接mysql数据库时出错:The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone
这个错误是时区导致的,所以需要在配置连接url后面加上时区: url=jdbc:mysql://localhost:3309/test?serverTimezone=UTC 其中UTC是统一标准世界时 ...
- Atitit.linq java的原理与实现 解释器模式
Atitit.linq java的原理与实现 解释器模式 1. Linq from where 的实现1 2. Where expr 的实现1 3. Attilax的一点变化2 4. 解释器模式的 ...