import java.sql.*;public class Database {
    public static Connection cn;
    public static Statement st;
    public static ResultSet rs;    public static boolean joinDB() {
        boolean joinFlag;
        try {
            joinFlag = true;
           // Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            //cn=DriverManager.getConnection("jdbc:odbc:EmployeeInformationMS,sa,123");//,"sa","123"
            //Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
            cn = DriverManager.getConnection("jdbc:odbc:EmployeeInformationMS","sa","123");            
            cn.setCatalog("EmployeeInformationMS");
            System.out.println("数据库连接成功");
            st = cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                    ResultSet.CONCUR_READ_ONLY);
            return joinFlag;        } catch (SQLException sqlEx) {
             System.out.println("数据库连接不成功");
            System.out.println(sqlEx.getMessage());            joinFlag = false;
            return joinFlag;        } catch (ClassNotFoundException notfoundEX) {
            System.out.println(notfoundEX.getMessage());            joinFlag = false;
            return joinFlag;
        }
    }    public static boolean executeSQL(String sqlString) {
        boolean executeFlag;
        try {
            st.execute(sqlString);
            executeFlag = true;
        } catch (Exception e) {
            executeFlag = false;
            System.out.println("sql exception:" + e.getMessage());
        }
        return executeFlag;
    }
    public static boolean query(String sqlString) {        try {
            rs = null;
            //System.out.println(sqlString);
            rs = st.executeQuery(sqlString);
        } catch (Exception Ex) {
            System.out.println("sql exception:" + Ex);
            return false;
        }
        return true;
    }
    public static void main (String[] args) {
     Database db=new Database();
     Database.joinDB();
    }
}
每次运行结果都是:
数据库连接不成功
[Microsoft][ODBC SQL Server Driver][SQL Server]已将数据库上下文改为 'EmployeeInformationMS'。Process completed.
请各位大侠帮帮忙,谢谢!

解决方案 »

  1.   

    怎么还用 桥接呢?直连不是更好吗?给你写一个类,参考下 
    package lihan;
    import java.sql.*;public class SqlConn {
    public Statement getSt(){
    Statement st=null;
    try {
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=shop","sa","sa");
    st=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    return st;
    } catch (Exception e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    }
    return st;
    }
    }
      

  2.   

    用你的方法也不行 这是运行的结果:
    java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at SqlConn.getSt(SqlConn.java:16)
        at SqlConn.main(SqlConn.java:28)
      

  3.   

    问题已经解决了,只要把setCatalog去掉就可以了