2012-06-07 4 views
0

в моем Java кода класса драйвера JDBC не поддерживается с MS SQL Server 2008 в то время как он отлично работает с MS SQL Server 2005JDBC драйвер класса не поддерживается с SQL Server 2008

я поставил драйвер JDBC класса «com.microsoft .sqlserver.jdbc.SQLServerDriver»

мой код

import java.sql.*; 

    public class MysqlConnect{ 
    public static void main(String[] args) { 
    System.out.println("MySQL Connect Example."); 
    Connection conn = null; 
    String url = "jdbc:sqlserver://SQLSERVERIP:1433;"; 
    String dbName = "DatabaseName=DBNAME"; 
    String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 
    String userName = "sa"; 
    String password = "password"; 
    try { 
    Class.forName(driver).newInstance(); 
    conn = DriverManager.getConnection(url+dbName,userName,password); 
    System.out.println("Connected to the database"); 
    conn.close(); 
    System.out.println("Disconnected from database"); 
    } catch (Exception e) { 
    e.printStackTrace(); 
    } 
} 
}  

в то время как я пытаюсь соединить это дает ошибку

com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open database "hj_cnb_ci 
" requested by the login. The login failed. 
     at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError 
(SQLServerException.java:197) 
     at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:246 
) 
     at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:83) 
     at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerC 
onnection.java:2529) 
     at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConne 
ction.java:1905) 
     at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServer 
Connection.java:41) 
     at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecu 
te(SQLServerConnection.java:1893) 
     at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4615) 
     at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLSe 
rverConnection.java:1400) 
     at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLSer 
verConnection.java:1045) 
     at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConne 
ction.java:817) 
     at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerCon 
nection.java:700) 
     at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver. 
java:842) 
     at java.sql.DriverManager.getConnection(Unknown Source) 
     at java.sql.DriverManager.getConnection(Unknown Source) 
     at MysqlConnect.main(MysqlConnect.java:14) 

plz помогите мне разобраться в этом выпуске.

+1

Почему вы смешиваете MySQL с MS SQL? – Ewald

+0

Можете ли вы показать код соединения, включая сведения о соединении? –

ответ

0

Пожалуйста, проверьте версию драйвера jdbc. «Microsoft JDBC Driver 4.0» подходит для вашего сервера ms sql 2008.

+0

Я уже установил sqljdbc4 на своей машине. –

0

Если вы используете SQL Server 2008, пожалуйста, измените свой класс драйвера на - com.microsoft.jdbc.sqlserver.SQLServerDriver. Соединение должно работать.

+0

Также используйте правильный jdbc jar, иначе вы получите ту же ошибку соединения. – Aritra

+0

класс драйвера должен быть com.microsoft.sqlserver.jdbc.SQLServerDriver не com.microsoft.jdbc.sqlserver.SQLServerDriver –

0

Проверьте, существует ли «hj_cnb_ci» или DBName создал его на сервер БД

+2

Добро пожаловать в Stack Overflow! Отвечая на вопросы, лучше всего изложить все как можно больше, чтобы другие читатели могли максимально использовать ваши знания. Благодаря! – tmesser

0

Пожалуйста, проверьте имя базы данных. При загрузке класса не нужно звонить newInstance(); он вызовет свой статический блок и вызовет метод registerDriver() класса диспетчера драйверов и передаст его ссылку в качестве параметра.

Этот метод несет объект класса Driver. Когда вы вызываете метод диспетчера драйверов getConnection(), между прочим он вызывает вызов метода класса класса класса с помощью этого объекта.

Смежные вопросы