`
xueyue521-qq
  • 浏览: 21228 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sqlserver连接问题

阅读更多
数据库连接技术;[Microsoft][ODBC SQL Server Driver]对于造型说明无效的字符值   解决:可能是输出数据与数据库内字段不一致/*ODBC桥接数据连接的基本步骤:  * 在配置数据源时一定要设置好数据库名;  * 1,载入驱动程序,使用语句:Class.forname("驱动程序名称");  * 2,建立连接,使用下面的语句建立一个和数据库的连接:  * Connection con=DriverManager.getConnecttion(url,"用户名称","用户密码");这里的url代表数据库统一资源定位的一个字符串;*/ java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver               sql2005的连接驱动程序加载方式不一



连接sql2005的方法:

创建到 SQL Server 数据库的连接的最简便方法是加载 JDBC 驱动程序,然后调用 DriverManager 类的 getConnection 方法,如下所示:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");String connectionUrl = "jdbc:sqlserver://localhost;database=AdventureWorks;user=MyUserName;password=*****";Connection con = DriverManager.getConnection(connectionUrl



错误解决方案:

java.sql.SQLException: No suitable driver at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at test1.main(test1.java:8)出现以上错误,原因:String url ="jdbc:sqlserver://localhost;database=student;user=test;password=mytest";  localhost前一定要加//;错误问题:com.microsoft.sqlserver.jdbc.SQLServerException: 到主机  的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect原因有三个: 1.服务器的TCP/IP是否被禁用了,sqlserver2005默认情况下是禁用了TCP/IP连接。启动TCP/IP连接的方法:开始\程 序\Microsoft SQL Server 2005\配置工具\目录下的SQL Server Configuration Manager,选择mssqlserver协议, 然后右边窗口有个tcp/ip协议,然后启动它,把sqlserver服务停了再启动 2、“开始\程序\Microsoft SQL Server 2005\配置工具\SQL Server 外围应用配置器” 在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器” ,然后单击展开“数据库引擎”, 选中“远程连接”,在右边选中“本地连接和远程连接”, 再选择要使用的协议,( 这个地方应当启用TCP/IP 和命名管道服务!)单击“应用”,您会看到下消息: “直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。”单击“确定”按钮返回 3.修改自己连接数据库的端口号。 打开SQL SERVER CONFIGURATION MANAGER (不记得SQLEXPRESS版本有没有这个了, ENTERPRISE版本的有), 左边窗口扩展SQL SERVER 2005 网络配置, 选择SQLEXPRESS 的协议(你的名字不一定是SQLEXPRESS), 右边窗口中双击TCP/IP, 弹出窗口中顶部TAB点"IP 地址", 看IPA11(或者是IPAll..看不出来是1还是l), 里面"TCP 动态端口"的值就是你的端口.

在我的电脑中只有127.0.0.1:1434 在侦听,所以改了端口号位1434出现以下问题:



com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'a







设置数据库权限的话,只在安全性设置就可以了。要进行用户映射:如下图:







使用期间遇到好多问题,到网上搜了一下,下面是整理的,包括了几乎所有的问题(起码我遇到的),希望能帮助需要的朋友!!1.准备工作: 准备相关的软件(Eclipse除外,开源软件可以从官网下载)<1>.Microsoft SQL server 2005 Express Edition下载地址:http://download.microsoft.com/download/0/9/0/09020fab-d2c3-4a8c-b9e0-db53a7a30ae8/SQLEXPR_CHS.EXE<2>.SQL Server Management Studio下 载地址:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn& amp;FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796#filelist<3>.SQL Server 2005 driver for JDBC下载地址:http://download.microsoft.com/download/8/B/D/8BDABAE2-B6EA-41D4-B903-7916EF3690EF/sqljdbc_1.2.2323.101_enu.exe2.都下载完之后开始进行安装 ,前两个是属于数据库软件,正常安装即可(注意数据库登陆不要使用windows验证)<1> 将JDBC解压缩到任意位置,比如解压到C盘program files下面,并在安装目录里找到sqljdbc.jar文件,得到其路径开始配置环境变量在环境变量classpath 后面追加 C:\Program Files\Microsoft SQL Server2005 JDBC Driver\sqljdbc_1.2\enu\sqljdbc.jar<2> 设置SQLEXPRESS服务器:??? a.打开SQL Server Configuration Manager -> SQLEXPRESS的协议 -> TCP/IP ??? b.右键单击启动TCP/IP??? c.双击进入属性,把IP地址中的IP all中的TCP端口设置为1433??? d.重新启动SQL Server 2005服务中的SQLEXPRESS服务器??? e.关闭SQL Server Configuration Manager<3> 打开刚刚安装好的 SQL Server Management Studio,连接SQLEXPRESS服务器, 新建数据库,起名字为sample <4> 打开Eclipse??? a.新建工程-> java -> java project,起名为Test ??? b.选择eclipse->窗口->首选项->java->installed JRE 编辑已经安装好的jdk,查找目录添加sqljdbc.jar??? c.右键单击目录窗口中的Test, 选择Build Path ->Configure Build Path..., 添加扩展jar文件,即把sqljdbc.jar添加到其中<5> 编写java代码来测试连接数据库 程序代码:import java.sql.*; public class Test {public static void main(String[] srg) {String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //加载JDBC驱动String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=sample"; //连接服务器和数据库sampleString userName = "sa"; //默认用户名String userPwd = "123456"; //密码Connection dbConn;try {?? Class.forName(driverName);?? dbConn = DriverManager.getConnection(dbURL, userName, userPwd);?? System.out.println("Connection Successful!"); //如果连接成功 控制台输出Connection Successful!} catch (Exception e) {?? e.printStackTrace();}}}???注:1.因为SQLexpress服务器默认是禁用的并且端口号没有配置,所以要进行重新设置2.如果你以前用java连接sql server 2000的话就要注意了:在sql server 2000 中加载驱动和URL路径的语句是String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sample";而sql server 2005 中加载驱动和url的语句则为String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=sample"; 如果写法错误将会找不到驱动.-------------------------------------------------------------Java连接SQL Server 2005一、JAVA连接SQL的语句 JAVA连接SQL2000语句为: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); DriverManager.getConnection("jdbc:odbc:数据库名","数据库登录名","登录密码"); 但连接SQL2005,已经改为: Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=数据库名","数据库登录名","登录密码"); 二、JAVA连接SQL都要用到驱动程序 SQL2000需要三个jar包:mssqlservice.jar,msutil.jar,msbase.jar SQL2005需要一个jar包:sqljdbc.jar 所以SQL2000和2005的连接方法是不一样的, 到微软下载"Microsoft SQL Server 2005 JDBC Driver"最新版本,现在的应该是1.2 下面Microsoft SQL Server 2005 JDBC Driver的安装说明: 1. 将 sqljdbc__enu.exe 下载 2. 运行 sqljdbc__enu.exe 3. 出现提示时,输入安装目录;建议您将此 zip 文件解压缩到 %ProgramFiles% 中的默认目录下: Microsoft SQL Server 2005 JDBC Driver 4.在环境变量CLASHPATH后加上C:\Program Files\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.2\enu\sqljdbc.jar(这是1.2版的,其它版本按实际修改......) 但上面只解决了驱动程序的问题..... 三、另外有时候会出现"SQL SERVER 2005使用sa 登录失败-提示该用户与可信 SQL Server 连接无关联"或除sa外的用户登录失败的问题. 解决方法如下: 1.打开SQL Server Management Studio 2.右键点击服务器,选择Properties(属性),点击Security(安全性), 将server authentication服务器身份认证从windows authentication mode(windows身份认证模式) 修改为Sql Server and Windows Authentication mode(SQL server和windows身份认证模式). 3.回到SQL Server Management Studio服务器那,在服务器下双击打开security(安全性) -- logins(登录名) ,右键选中sa,选择properties(属性),点击Status(状态),在设置中将Login(登录)设置为Enabled(启用)。(忘记sa密码的可在常规修改密码)四、设置SQL Server服务器 1、打开SQL Server Configuration Manager”,双击“SQL Server 2005网络配置”,点击“MSSQLSERVER 的协议” 2、如果“TCP/IP”没有启用,右键单击选择“启动”。 3、双击“TCP/IP”进入属性设置,在“IP 地址”里,可以配置“IPAll”中的“TCP 端口”,默认为1433,将IP地址中的“已启用”设为“是”。 4、重新启动SQL Server 5、运行正常。源文档  经过最终的研究发现,在telnet测试下,win7  SqlServer的侦听端口号位1434 ,这才解决了以上的问题;

实验代码:
// 使用JDBC直接建立数据库连接import java.sql.*;public class Jdbc{ public static void main(String[] args){  try{   Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");   String url ="jdbc:sqlserver://127.0.0.1:1434;databaseName=bookTest;user=sa;password=***********";   //win7下的侦听端口为1434 ,这里的sa用户的权限最大,在用户映射中可以访问所有的数据库;   Connection con=DriverManager.getConnection(url);   //con.setCatalog("bookTest");         Statement stmt = con.createStatement();      ResultSet rs=stmt.executeQuery("select *  from bookInfo");   while(rs.next()){    System.out.println(rs.getString(1)+"  "+rs.getString(2)           +"  "+rs.getFloat(3)+"  "+rs.getString(4));       }   rs.close();   stmt.close();  }catch(Exception e){      e.printStackTrace();  } }}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics