关于在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导致事务日志空间 ...
随机推荐
- fullPage全屏滚动的实现
fullPage.js 是一个基于 jQuery 的插件,它能够很方便.很轻松的制作出全屏网站. 用法: 1.引入jquery 2.引入fullPage 3.每个section代表一屏 4.js启动: ...
- linux驱动摸索 --驱动框架初始化(结合韦东山视频教程)
一.驱动框架 初始化:insmod 加载 1.确定主设备号: 分为静态和动态分配,其中LED_GPIO_SIZE 表示支持的次设备号数目,一般默认为1. 相关实现代码如下: int result; d ...
- Redis 命令一
Redis 命令用于在 redis 服务上执行操作. 要在 redis 服务上执行命令需要一个 redis 客户端.Redis 客户端在我们之前下载的的 redis 的安装包中. 1.Redis 客户 ...
- 解决Ubuntu环境变量错误导致无法正常登录 (command 'xxx' is available in bin ls)
一.问题产生 配置JDK时,按照搜索到的一篇文章中的做法,修改了/etc/profile文件里的内容.在原内容保持不变的基础上,大致添加了以下内容: export JAVA_HOME=.... exp ...
- redis学习笔记——应用场景
最近在看redis入门指南,现在就自己的学习情况说说自己的理解. 字符串类型(String) 字符串类型是Redis中最基本的类型,能存储任意形式的字符串,包括二进制数据.如一张照片也可以用字符串类型 ...
- $ 和getElementId的区别 / 一个jquery对象的原型
请说出 div 和 $div 的联系和区别 区别 div 返回一个HTML DOM Object $div 返回一个 jQuery Object, 两者不等价 $div是包装了dom对象后产生的,无法 ...
- 用Emit技术替代反射
之前在上篇博客说到用表达式来替代反射机制,可以获得较高的性能提升.这篇我们来说说用Emit技术来替代反射. System.Reflection.Emit命名空间类可用于动态发出Microsoft中间语 ...
- 网易2016年研发project师编程题(2)
序 网易互联网的实习笔试立即就開始了,做几个练习题熟悉熟悉~嘿嘿~ 题目一: 小易的升级之路 小易常常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内 ...
- 【LeetCode】two num 利用comparable接口 对对象进行排序
题目two num 题意:给定一个整数数组和一个目标值.要求在数组中找到两个数.使得它们的和相加等于目标值.而且返回两个数的下标 思路:1.假设使用暴力,时间复杂度为O(n^2) 2.能够先将全部数进 ...
- c语言编写51单片机中断程序,执行过程是怎样的?
Q:c语言编写51单片机中断程序,执行过程是怎样的? 例如程序:#include<reg52.h> void main(void) { EA=1; //开放总中断 E ...