java连接mssqlserver各类问题解析
⾸先先来说下使⽤微软⾃⼰开发的架包进⾏ms sql server数据库的连接时,sql 2000与sql 2005的连接⽅式略有不同;
1.⾸先驱动不⼀样,sql 2000的连接驱动包有三个,分别是:msbase.jar、mssqlserver.jar、msutil.jar;
⽽sql 2005的连接驱动包只有⼀个为:sqljdbc.jar;
2.由于连接的驱动不⼀样,⾃然⽽然连接的⽅式也是不⼀样的;
sql 2000:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
URL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Demo";
sql 2005:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
URL = "jdbc:sqlserver://localhost:1433;DatabaseName=Demo";
下⾯来说⼀个⽐较通⽤的⽅式:包,这个包是第三⽅开源组织提供,使⽤这个架包进⾏ms sql server数据库的连接,你可以不必担⼼不同版本数据库间的差异了;
统⼀连接⽅式为:
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
String url="jdbc:jtds:sqlserver://localhost:1433;DatabaseName=Demo";
下⾯我还是来说下关于连接数据库要注意的⼏个⽅⾯:
1.如果你使⽤的sql server 2000,那么你在使⽤jdbc进⾏数据库的连接时还必须要安装sp3补丁;如果使⽤sql server 2005就不必了;
  sql server 2000⽆法打开1433端⼝
  可通过运⾏中输⼊netstat -a命令来查看已开启的端⼝,看看是否有1433端⼝开启(默认)
  1.如果你是win2003,那么⼀定要安装sql的补丁sp3a
  检查你的SQL有没有打补丁,没有的话要打上补丁,检查的⽅法是在查询分析器中运⾏:
  select @@version
  如果出来的版本号是8.00.760以下,则表明你未安装sp3的补丁,要装上.
  SQL补丁下载:
  全部补丁的位置
注意下载后,执⾏的时候是解压,要在解压后的⽬录中执⾏setup.bat才是真正的安装
2.如果你上⾯的已经确保⽆误了但还是连接不上数据库,那么我们来⼀⼀检查你连接的要素:
a.⾸先查看连接语句是否正确,这个这⾥就不说了,⼤家如果还有问题,可以看
也可以⽤下⾯的main函数进⾏测试;将上⾯的数据名,端⼝号,密码等改成⾃⼰的(这⾥是采⽤jtds包进⾏连接的)
public static void main(String[] args) {
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
String url="jdbc:jtds:sqlserver://localhost:9433;DatabaseName=SportsUnion2";
String user="sa";
String psw="123@sports";
Connection conn=null;
try {
Connection(url,user,psw);
System.out.println("连接数据库成功");
} catch (SQLException e) {
System.out.println("连接数据库失败");
e.printStackTrace();
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
b.查看你数据库的登录⽅式(我们⼀般是要选择登录⽅式为SQL Server和Windows ⾝份验证模式):
在打开的数据库视图中选择服务器(如上图)------>右键属性----->在出现的视图中选择安全性----->选择SQL Server和Windows ⾝份验证模式------>确定
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
c.设置密码:在你的数据库视图中点击安全性---->出现的⼆级菜单中点击sa---->在出现的视图中重置下sa的密码:
然后为保险起见,你可以退出登录,然后重新打开登录,使⽤sa进⾏登录,如果能登录表⽰密码设置成功并且sa是可⽤的。
-
----------------------------------------------------------------------------------------------------------------------------------------------------------------
d.配置端⼝号:
sql 2000:开始---->所有程序----->Microsoft SQL Server----->服务器⽹络使⽤⼯具点击----->
----->选中TCP/IP----->点击属性----->在出现的属性窗⼝中设置⾃⼰想要的端⼝号,默认为1433(最好不要默认的,容易受到攻击)
然后将服务器进⾏重启
sql 2005:
开始---->所有程序----->Microsoft SQL Server 2005----->配置⼯具----->SQL Server Configuration Manager----->SQL Server 2005 ⽹络配置------>MSSQLSERVER协议;启⽤“TCP/IP”;
双击“TCP/IP”-------->“IP 地址”-------->“IPAll”------->“TCP 端⼝”设置为⾃⼰想要的。
重新启动sql2005服务器
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
e.到这⾥如果你是使⽤sql server 2000的应该是没有问题了,但如果你是使⽤sql server 2005的,可能还是存在连不上的问题:
(1)数据库引擎没有启动,下⾯使⽤两种⽅式:
  a.开始->程序->Microsoft SQL Server 2005->SQL Server 2005外围应⽤配置器,在打开的界⾯单击"服务的连接的外围应⽤配置器",在打开的界⾯中到
  Database Engine,单击"服务",在右侧查看是否已启动,如果没有启动可单击"启动",并确保"启动类型"为⾃动,不要为⼿动,否则下次开机时⼜要⼿动启动;
  b.可打开:开始->程序->Microsoft SQL Server 2005->配置⼯具->SQL Server Configuration Manager,选中SQL Server 2005服务中SQL Server(MSSQLSERVER)
  并单击⼯具栏中的"启动服务"按钮把服务状态改为启动;
(2)查看sql server 数据库是否已经启⽤远程连接
开始----->程序----->Microsoft SQL Server 2005----->配置⼯具----->SQL Server 外围应⽤配置器---->
单击服务和连接的外围应⽤配置器------>点击数据库引擎----->点击远程连接----->右边选中本地连接和远程连接
再选择要使⽤的协议,( 这个地⽅应当启⽤TCP/IP 和命名管道服务!)单击“应⽤”----->重启服务器;
安装sql server数据库没到
(3)启⽤ SQLServer 浏览器服务
开始------>程序------>Microsoft SQL Server 2005------>配置⼯具------>SQL Server 外围应⽤配置器
------>在“SQL Server 2005 外围应⽤配置器”页, 单击“服务和连接的外围应⽤配置器”
------>然后单击展开“SQL Server Browser”,选中“服务”,在右边“启动类型”选择“⾃动”------->再单击“启
动”,单击“确定”按钮返回
现在应该连上了吧!哈哈哈

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。