有情提示
别忘了装一个SQL Server的补丁,sp3~~~

解决方案 »

  1.   

    dMicrosoft  JDBC  for  SQL  SERVER的驱动程序;http://www.microsoft.com/china/sql/downloads/2000/jdbc.asp 
    安装版的不到2M,安装完后开始程序中会出现Microsoft SQL Server 2000 Driver for JDBC,然后有一个HTML Help,其实从中就可以找到连接SQLserver的全部信息
    忘了还必须要有SQLServer,大家可以到http://www.codestudy.net/去下载,4in1版本的
    装好SqlServer过后,建立一个数据库,名为test,然后建立一个表"NAME",然后输入name字段,char类型,然后让这个字段的值为HelloDB(如果基本的数据库操作不会我就没辙了:)
    然后应该把驱动程序类加入到classpath中了,我在上面的帖子说过,应该把\Microsoft SQL Server 2000 Driver for JDBC\lib下面的mssqlserver.jar  msutil.jar  msbase.jar
    这三个文件放在%JAVA_HOME%\jre\lib\ext下面,然后就是测试程序了:
    照如下的代码输入程序:
    import java.sql.*;public class SQLTest{
    public static void main(String[] args){
    try{
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
    String user = "sa";
    String password = "";
    Connection conn = DriverManager.getConnection(url,user,password);
    Statement stmt = conn.createStatement();
    String sql = "SELECT * FROM NAME";
    ResultSet rs = stmt.executeQuery(sql);
    while(rs.next()){
    System.out.println("Your frist field is " + rs.getString("name"));
    }
    rs.close();
    stmt.close();
    conn.close();
    }
    catch(Exception e){
    System.err.println(e);
    }
    }
    如果出现HelloDB就说明操作数据库成功了,当然这么顺利我就笑了,我觉得比较常见的问题就是用户sa未与信任 SQL Server 连接相关联。
    这个在我刚开始连接数据库的时候也遇到过,但是后来不知怎么的弄好了也没有深入研究了。那天在这个帖子
    http://expert.csdn.net/Expert/topic/2028/2028251.xml?temp=.5175592zez(思恩 为老婆多挣钱 鹤清风) 大哥的回复中才知道,要修改sql server 为sql 和 windows验证 
    不能是只有windows验证,所以才连不上。
    然后我说说怎么在JBuilder中配置SQLServer的连接,在这里我引用一下beyond_xiruo大哥的文章《在JBuilder中使用com.microsoft.jdbc.sqlserver.SQLServerDriver连接sql数据库    beyond_xiruo》
    原文在http://www.csdn.net/Develop/Read_Article.asp?Id=15098
    一,你确定你安装的jdbc是否完全版,因为有个单机版只能连接本机上的sql,单机版约2m,完全版约6.5m
    二、安装好jdbc后,假如目录在C:\Program Files\Microsoft SQL Server 2000 JDBC,打开Jbuilder,选择Tools-->Configure Libraries,然后在左边的列表框下选择New,填入:Name:sql,Location:User Home,然后点击Add,加入目录C:\Program Files\Microsoft SQL Server 2000 JDBC\lib,确定
    三、Project-->Prject Properties-->Paths-->Required Libraries-->Add
    加入刚才添加的User Home/sql确定
    四、Tools-->Enterprise Setup-->Database Drivers-->Add,加入User Home/sql,添加之后在列表框中显示的是sql.config,确定,重新启动JBuilder
    五、Tools-->Database Pilot-->View-->Options-->Drivers-->Add
    填入
    Driver class:com.microsoft.jdbc.sqlserver.SQLServerDriver
    Simple URL:microsoft:sqlserver://localhost:1433;DatabaseName=mybase
    确定之后,Tools-->Database Pilot-->New的Driver里选择
    com.microsoft.jdbc.sqlserver.SQLServerDriver
    在URL里填入:
    microsoft:sqlserver://服务器Ip地址或主机名:1433;DatabaseName=数据库名,确定!
    双击或点击+号输入sql数据库的用户名和密码,就完成了JB与sql的连接!
    然后你就可以查看你这个数据库中的资源了,我用JB就是这样连接的:)(
      

  2.   

    最后贴出jsp连接所有数据库的代码:(出自http://www.java-cn.com原文见http://www.java-cn.com/technology/technology_detail.jsp?id=421)
    一、jsp连接Oracle8/8i/9i数据库(用thin模式) 
    testoracle.jsp如下: 
    <%@ page contentType="text/html;charset=gb2312"%> 
    <%@ page import="java.sql.*"%> 
    <html> 
    <body> 
    <%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 
    String url="jdbc:oracle:thin:@localhost:1521:orcl"; 
    //orcl为你的数据库的SID 
    String user="scott"; 
    String password="tiger"; 
    Connection conn= DriverManager.getConnection(url,user,password); 
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    String sql="select * from test"; 
    ResultSet rs=stmt.executeQuery(sql); 
    while(rs.next()) {%> 
    您的第一个字段内容为:<%=rs.getString(1)%> 
    您的第二个字段内容为:<%=rs.getString(2)%> 
    <%}%> 
    <%out.print("数据库操作成功,恭喜你");%> 
    <%rs.close(); 
    stmt.close(); 
    conn.close(); 
    %> 
    </body> 
    </html> 
    二、jsp连接Sql Server7.0/2000数据库 
    testsqlserver.jsp如下: 
    <%@ page contentType="text/html;charset=gb2312"%> 
    <%@ page import="java.sql.*"%> 
    <html> 
    <body> 
    <%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; 
    //pubs为你的数据库的 
    String user="sa"; 
    String password=""; 
    Connection conn= DriverManager.getConnection(url,user,password); 
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    String sql="select * from test"; 
    ResultSet rs=stmt.executeQuery(sql); 
    while(rs.next()) {%> 
    您的第一个字段内容为:<%=rs.getString(1)%> 
    您的第二个字段内容为:<%=rs.getString(2)%> 
    <%}%> 
    <%out.print("数据库操作成功,恭喜你");%> 
    <%rs.close(); 
    stmt.close(); 
    conn.close(); 
    %> 
    </body> 
    </html> 
    三、jsp连接DB2数据库 
    testdb2.jsp如下: 
    <%@ page contentType="text/html;charset=gb2312"%> 
    <%@ page import="java.sql.*"%> 
    <html> 
    <body> 
    <%Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); 
    String url="jdbc:db2://localhost:5000/sample"; 
    //sample为你的数据库名 
    String user="admin"; 
    String password=""; 
    Connection conn= DriverManager.getConnection(url,user,password); 
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    String sql="select * from test"; 
    ResultSet rs=stmt.executeQuery(sql); 
    while(rs.next()) {%> 
    您的第一个字段内容为:<%=rs.getString(1)%> 
    您的第二个字段内容为:<%=rs.getString(2)%> 
    <%}%> 
    <%out.print("数据库操作成功,恭喜你");%> 
    <%rs.close(); 
    stmt.close(); 
    conn.close(); 
    %> 
    </body> 
    </html> 
    四、jsp连接Informix数据库 
    testinformix.jsp如下: 
    <%@ page contentType="text/html;charset=gb2312"%> 
    <%@ page import="java.sql.*"%> 
    <html> 
    <body> 
    <%Class.forName("com.informix.jdbc.IfxDriver").newInstance(); 
    String url = 
    "jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver; 
    user=testuser;password=testpassword"; 
    //testDB为你的数据库名 
    Connection conn= DriverManager.getConnection(url); 
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    String sql="select * from test"; 
    ResultSet rs=stmt.executeQuery(sql); 
    while(rs.next()) {%> 
    您的第一个字段内容为:<%=rs.getString(1)%> 
    您的第二个字段内容为:<%=rs.getString(2)%> 
    <%}%> 
    <%out.print("数据库操作成功,恭喜你");%> 
    <%rs.close(); 
    stmt.close(); 
    conn.close(); 
    %> 
    </body> 
    </html> 
    五、jsp连接Sybase数据库 
    testmysql.jsp如下: 
    <%@ page contentType="text/html;charset=gb2312"%> 
    <%@ page import="java.sql.*"%> 
    <html> 
    <body> 
    <%Class.forName("com.sybase.jdbc.SybDriver").newInstance(); 
    String url =" jdbc:sybase:Tds:localhost:5007/tsdata"; 
    //tsdata为你的数据库名 
    Properties sysProps = System.getProperties(); 
    SysProps.put("user","userid"); 
    SysProps.put("password","user_password"); 
    Connection conn= DriverManager.getConnection(url, SysProps); 
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    String sql="select * from test"; 
    ResultSet rs=stmt.executeQuery(sql); 
    while(rs.next()) {%> 
    您的第一个字段内容为:<%=rs.getString(1)%> 
    您的第二个字段内容为:<%=rs.getString(2)%> 
    <%}%> 
    <%out.print("数据库操作成功,恭喜你");%> 
    <%rs.close(); 
    stmt.close(); 
    conn.close(); 
    %> 
    </body> 
    </html> 
    六、jsp连接MySQL数据库 
    testmysql.jsp如下: 
    <%@ page contentType="text/html;charset=gb2312"%> 
    <%@ page import="java.sql.*"%> 
    <html> 
    <body> 
    <%Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
    String url ="jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" 
    //testDB为你的数据库名 
    Connection conn= DriverManager.getConnection(url); 
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    String sql="select * from test"; 
    ResultSet rs=stmt.executeQuery(sql); 
    while(rs.next()) {%> 
    您的第一个字段内容为:<%=rs.getString(1)%> 
    您的第二个字段内容为:<%=rs.getString(2)%> 
    <%}%> 
    <%out.print("数据库操作成功,恭喜你");%> 
    <%rs.close(); 
    stmt.close(); 
    conn.close(); 
    %> 
    </body> 
    </html> 
    七、jsp连接PostgreSQL数据库 
    testmysql.jsp如下: 
    <%@ page contentType="text/html;charset=gb2312"%> 
    <%@ page import="java.sql.*"%> 
    <html> 
    <body> 
    <%Class.forName("org.postgresql.Driver").newInstance(); 
    String url ="jdbc:postgresql://localhost/soft" 
    //soft为你的数据库名 
    String user="myuser"; 
    String password="mypassword"; 
    Connection conn= DriverManager.getConnection(url,user,password); 
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    String sql="select * from test"; 
    ResultSet rs=stmt.executeQuery(sql); 
    while(rs.next()) {%> 
    您的第一个字段内容为:<%=rs.getString(1)%> 
    您的第二个字段内容为:<%=rs.getString(2)%> 
    <%}%> 
    <%out.print("数据库操作成功,恭喜你");%> 
    <%rs.close(); 
    stmt.close(); 
    conn.close(); 
    %> 
    </body> 
    </html>
    最后我再所说开发工具的问题,这也是初学者比较常问的问题
    我个人觉得一般的小程序我上面推荐的Editplus + JDK就行了,或者用JCreator
    稍微大一点的程序用Eclipse和IntelliJ都不错,我用过一段时间的IntelliJ,现在还是在用Eclipse
    我觉得JB当然是我用过的JavIDE中最好的,但是机子拖着吃力,所以一般很懒得用它来耗费系统资源PS:不知不觉又写到12点过了,今天早上N早起来看AC vs 巴塞,可惜停电,困死了,要去睡了^O^,
    准备结这个帖子了,希望对初学者有一些指导作用
      

  3.   


    testsqlserver.jsp如下: 
    <%@ page contentType="text/html;charset=gb2312"%> 
    <%@ page import="java.sql.*"%> 
    <html> 
    <body> 
    <%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; 
    //pubs为你的数据库的 
    String user="sa"; 
    String password=""; 
    Connection conn= DriverManager.getConnection(url,user,password); 
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    String sql="select * from test"; 
    ResultSet rs=stmt.executeQuery(sql); 
    while(rs.next()) {%> 
    您的第一个字段内容为:<%=rs.getString(1)%> 
    您的第二个字段内容为:<%=rs.getString(2)%> 
    <%}%> 
    <%out.print("数据库操作成功,恭喜你");%> 
    <%rs.close(); 
    stmt.close(); 
    conn.close(); 
    %> 
    </body> 
    </html>
      

  4.   

    如果你Tomcat得下个驱动下来放到JDK和TOMCAT里
      

  5.   

    给你一个方法
          mssql 数据库驱动问题
          下载MSSQL的JDBC驱动器(http://www.microsoft.com/china/sql/downloads/jdbc_sp1.asp)
           安装setupMSSQLFORWINDOWS 在安装目录下找出mssqlserver.jar,msbase.jar,msutil.jar 这三个       文件安装在tomcat 的common/lib目录下就可以了 很方便的
      

  6.   

    http://blog.sina.com.cn/blog/1152973687/44b8fb7701000002
      

  7.   

    请问一下,在CLASSPATH中怎么配置mssqlserver.jar,msbase.jar,msutil.jar 我配置了,不晓得是不是错的,太是网站是没有办法执行出来.C:\ Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\ Program Files\Microsoft SQL Server 2000 Driver for JDBC \lib\mssqlserver.jar;C:\ Program Files\Microsoft SQL Server 2000 Driver for JDBC \lib\msutil.jar   这是我在CLASSPATH中配置的.
      

  8.   

    mssqlserver.jar,msbase.jar,msutil.jar 将这三个文件放在lib文件夹中,在将lib放在你自己建立工程下的WEB_INF文件夹下。
     WEB_INF
        |__lib
            |__mssqlserver.jar,msbase.jar,msutil.jar
      

  9.   

    总共有三种方法,曾经也被这个问题困惑很久,这是一个大哥总结的,给你看看,每个我都试过,都可以用1:jdbc-odbc桥
    import java.sql.*;
    import javax.servlet.jsp.*;
      // Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance() ;
      // String url="jdbc:odbc:stud";
      // con=DriverManager.getConnection(url, "sa", "sa") ;  注意,在用这种方法访问数据库的时候,如果用sql语句查询数据库想得到预期的返回结果,在ResultSet rs.getString(*),这个*必须按照 列的顺序,即如果想分别得到1,2,3,4,5列的数据,那么*必须按照1,2,3,4,5的顺序,否则将得不到预期结果。如下:
             while(rs.next() )
                {
                 StudentInformation stu=new StudentInformation();
                 stu.SetID(rs.getString(1));
                 stu.SetName(rs.getString(2));
                 stu.SetSex(rs.getString(3));
                 stu.SetAge(rs.getString(4));
                 stu.SetProvince(rs.getString(5));将各列信息按照顺序依次读出,并被Set×××方法依次调用,如果改变以上五条语句顺,程序将得不到预期结果2:装载数据驱动驱动
    import java.sql.*;
    import javax.servlet.jsp.*;//   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance() ;//sql server database driver
    //    con=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DataBaseName=stu", "sa", "sa") ;
    这种方法与上边的不同,可以打乱五条语句的顺序并且得到预期结果。3:JNDI
    <%@ page import="java.sql.*" %>
    <%@ page import="javax.sql.*" %>
    <%@ page import="javax.naming.*"%>
      Context ctx=new InitialContext();
       DataSource ds=(DataSource)ctx.lookup("jndistud") ;
       Connection con=ds.getConnection() ;这种方法与第一种差不多,不可以打乱语句顺序。