我用sql2000的驱动连接2005的数据库(2005的驱动连不上)
如果在ConnDB.java中我用这句stmt =conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
就会报一个sql的bug(微软说2006年把2000的驱动做了下修正,但我找不到06年那个驱动)
如果我直接用stmt = conn.createStatement();
那些DAO类中就无法使用rs.last()等方法怎么办,谁有06年的那个驱动,我找到的都是02或04年的

解决方案 »

  1.   

    <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
    <property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=xxx"/>
      

  2.   

    你是要驱动还是要JAR包?
    driverClassName  url都在。你看这配就行了呀。
      

  3.   

    sql2000的驱动连接2005的数据库是可以连上,手动开启2005的1433端口;而2005的数据库联接语法同2000有很大区别,可参考JAR使用手册。
      

  4.   

    这个在网上收索很多吧 csdn因该有下载的,用可用分换资源分去下载,很多好东西的
      

  5.   

    你是用的SQL Server2005 express这个版本吗
    我有这个版本和jdbc的详细连接配置,需要的话,找我要
      

  6.   

    http://blog.csdn.net/wulei_vincent/archive/2008/01/15/2046029.aspx
      

  7.   

    Microsoft SQL Server 2005 JDBC Driver 1.2这个jar包也连不上,No suitable driver
    我都试了好几个了.
    SQL Server JDBC Driver 3.0这个也不行就用2000的包能连上,但用不了rs.last()等方法.....???
    我不知道是2005哪个版本的 ,怎么看,关于里看不到.
      

  8.   

    这个是2005 package COM.DAO;import java.sql.CallableStatement;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;import COM.ENTITY.UserInfo;/**
     * 
     * 项目名称: JSP_JDBC 类名称: DBOperation 类描述:
     * 
     * @author LiuKun Jul 16, 2010 5:01:44 PM 修改时间 Jul 16, 2010 5:01:44 PM ×
     */
    public class DBOperation { private static final String dri_class = "com.microsoft.sqlserver.jdbc.SQLServerDriver",
    url = "jdbc:sqlserver://localhost:1433;databasename=Test",
    name = "sa", pass = "sa";
    public Connection conn = null;
    public PreparedStatement ps = null;
    public Statement state = null;
    public List list = new ArrayList(); public static Connection getConnnection() {
    try {
    Connection conn;
    Class.forName(dri_class);
    return conn = DriverManager.getConnection(url, name, pass);
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    return null;
    } /**
     * 根据sql语句获取所有信息
     * 
     * @param sql
     * @return
     */
    public List getAllInfo(String sql) {
    try {
    conn = getConnnection();
    java.sql.Statement ste = conn.createStatement();
    ResultSet rs = ste.executeQuery(sql);
    while (rs.next()) {
    UserInfo userInfo = new UserInfo();
    userInfo.setId(rs.getInt(1));
    userInfo.setName(rs.getString(2));
    list.add(userInfo);
    System.out.println(list.size());
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }
    return list;
    } /**
     * 验证用户是否存在 可以用作ajax method
     * 
     * @param sql
     * @return
     */
    public boolean checkUser(String sql) {
    boolean re = false;
    try {
    conn = getConnnection();
    PreparedStatement ps = conn.prepareStatement(sql);
    ResultSet rs = ps.executeQuery();
    if (rs.next())
    re = true;
    } catch (SQLException e) {
    e.printStackTrace();
    } return re;
    } /**
     * 添加信息
     * 
     * @param sql
     * @return
     */
    public boolean addUser(String sql) {
    boolean re = false;
    try {
    conn = getConnnection();
    PreparedStatement ps = conn.prepareStatement(sql);
    ResultSet rs = ps.executeQuery();
    if (rs.next())
    re = true;
    } catch (SQLException e) {
    e.printStackTrace();
    } return re;
    } /**
     * 根据存储过程和参数列表进行查询
     * 
     * @param proc_name
     * @param obj
     * @return
     */
    public List findByProc(String proc_name, Object[] obj) {
    int no = obj.length;
    String param = "(";
    for (int i = 0; i < obj.length; i++) {
    if (1 == i)
    param += "?";
    else if (i < obj.length)
    param += ",?";
    }
    param += ")";
    String sql = "{call " + proc_name + "" + param + "}";
    try {
    CallableStatement call = this.getConnnection().prepareCall(sql);
    ResultSet rs = call.executeQuery();
    while (rs.next()) {
    UserInfo userInfo = new UserInfo();
    userInfo.setId(rs.getInt("id"));
    userInfo.setName(rs.getString("name"));
    list.add(userInfo);
    }
    } catch (SQLException e) {
    e.printStackTrace();
    System.out.println(e.toString());
    }
    return list;
    } /**
     * 关闭连接对象
     * 
     * @param con
     * @param rs
     * @param ps
     * @param state
     */
    public static void closedAll(Connection con, ResultSet rs,
    PreparedStatement ps, java.sql.Statement state) {
    try {
    if (con != null) {
    con.close();
    con = null;
    }
    if (rs != null) {
    rs.close();
    rs = null;
    }
    if (state != null) {
    state.close();
    state = null;
    }
    if (ps != null) {
    ps.close();
    ps = null;
    }
    } catch (SQLException e) {
    e.printStackTrace();
    System.out.println(e.toString());
    }
    }}
      

  9.   

    2000 jar  怎么连啊   除非你的连接字符串要改啊   com.microsoft.jdbc.sqlserver.SQLServerDriver
      

  10.   

    当然是这么连的,
    2005的用com.microsoft.sqlserver.jdbc.SQLServerDriver找了好几个jar都连部上.
      

  11.   

    连接2005的:
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    con = DriverManager.getConnection("jdbc:sqlserver://localhost:1057;DatabaseName=xxx", "sa", "");
    连接2000的:
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=xxx", "sa", "");