在xp机器上面安装了ms sql server2000后,jdbc连接的时候出现了各种问题.上网查询都解决后纪录下来.
1.
[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
按照网上大家说的办法.打sp3的补丁.到官方网站上下载下来.安装文件以及版本相应的驱动jar包.
网址如下:http://www.microsoft.com/downloads/details.aspx?FamilyID=07287b11-0502-461a-b138-2aa54bfdc03a&DisplayLang=en
注意: 在安装升级包的时候要注意的是下载的安装文件"setup.exe"仅仅是一次解压缩,在这个地方容易让人以为双击就是安装了.需要"安装"一次后再到安装目录找到setup.bat文件执行安装.
同时也要将自己所建工程下的lib包中用到的sqlserver驱动更换成sp3的.
2.
用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。
这一问题一般是由于SQL Server未集成Windows身份验证导致的
这个问题一般是由于sqlserver 没有集成windows身份验证所导致的.第一步先打开SQL Server企业管理器。选择服务器名称上右键选择“编辑SQL Server注册属性”,然后在对话框中选择“使用windows身份验证”。
如果还不行,在执行第二步.第二步: 同样右键,选择“属性”,然后打开“安全性”选项卡。 在选项卡中,选择身份验证为“SQL Server和 Windows ”,其他不变. 这样这个问题就可以解决.
3.
[SQLServer]对象名XXX无效
这个一般是由登陆数据库的用户名的权限造成的。
我在做数据库连接的时候用户名用的是sa.之后换成了自己建的用户,就可以了。如果还不可以就给自己建的用户重新分配一下权限。
下面是我测试的jsp代码。
- <%@ page contentType="text/html; charset=gb2312" language="java"
- import="java.sql.*"
- import="java.io.*"
- import="java.sql.Connection"
- import="java.sql.Date"
- import="java.sql.PreparedStatement"
- import="java.sql.ResultSet"
- import="java.sql.SQLException"
- import="java.sql.Statement"
- %>
- <html>
- <body>
- data from SQL SERVER DB:
- <hr>
- <table>
- <%! String trans(String chi)
- {
- String result=null;
- byte temp[];
- try
- {
- temp=chi.getBytes("iso-8859-1");
- result=new String(temp);
- }
- catch(UnsupportedEncodingException e)
- {
- System.out.println(e.toString());
- }
- return result;
- } %>
- <%
- Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
- Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:4567; DatabaseName=ch12","sx","sx");
- Statement stmt=con.createStatement();
- ResultSet rst=stmt.executeQuery("select * from contact");
- while (rst.next())
- {
- out.println("<tr>");
- out.println("<td>"+trans(rst.getString("userName"))+"</td>");
- out.println("<td>"+trans(rst.getString("phone"))+"</td>");
- out.println("<td>"+trans(rst.getString("mail"))+"</td>");
- out.println("</tr>");
- }
- rst.close();
- stmt.close();
- con.close();
- %>
- </table>
- </body>
- </html>