#java #sql-server #sql-server-2005 #jdbc
#java #sql-сервер #sql-server-2005 #jdbc
Вопрос:
Я написал часть подключения к sql Server.Когда я запускаю этот код, я получаю эту ошибку.
Error Trace in getConnection() : com.microsoft.jdbc.sqlserver.SQLServerDriver
Error: No active Connection
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.sample.DB.getConnection(DB.java:30)
at com.sample.DB.displayDbProperties(DB.java:49)
at com.sample.DB.main(DB.java:85)
Я установил sql sever 2008 R2. Я отправил запрос в Google, но не смог найти решение….
Это мой код
public class DB {
private java.sql.Connection con = null;
private final String url = "jdbc:microsoft:sqlserver://";
private final String serverName= "localhost";
private final String portNumber = "1433";
private final String databaseName= "XONTHOMass_User";
private final String userName = "sa";
private final String password = "xont@123";
// Informs the driver to use server a side-cursor,
// which permits more than one active statement
// on a connection.
private final String selectMethod = "cursor";
private String getConnectionUrl(){
return url serverName ":" portNumber ";databaseName=" databaseName ";selectMethod=" selectMethod ";";
}
private java.sql.Connection getConnection(){
try{
System.out.println("========1========");
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
System.out.println("==== 2=====");
con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
if(con!=null) System.out.println("Connection Successful!");
}catch(Exception e){
e.printStackTrace();
System.out.println("Error Trace in getConnection() : " e.getMessage());
}
return con;
}
/*
Display the driver properties, database details
*/
public void displayDbProperties(){
java.sql.DatabaseMetaData dm = null;
java.sql.ResultSet rs = null;
try{
con= this.getConnection();
if(con!=null){
dm = con.getMetaData();
System.out.println("Driver Information");
System.out.println("tDriver Name: " dm.getDriverName());
System.out.println("tDriver Version: " dm.getDriverVersion ());
System.out.println("nDatabase Information ");
System.out.println("tDatabase Name: " dm.getDatabaseProductName());
System.out.println("tDatabase Version: " dm.getDatabaseProductVersion());
System.out.println("Avalilable Catalogs ");
rs = dm.getCatalogs();
while(rs.next()){
System.out.println("tcatalog: " rs.getString(1));
}
rs.close();
rs = null;
closeConnection();
}else System.out.println("Error: No active Connection");
}catch(Exception e){
e.printStackTrace();
}
dm=null;
}
private void closeConnection(){
try{
if(con!=null)
con.close();
con=null;
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception
{
DB myDbTest = new DB();
myDbTest.displayDbProperties();
}
}
Пожалуйста, помогите мне .. Я создал это приложение, используя eclipse.Я также поместил файл jar `sqljdbc4.jar ‘…
Пожалуйста, помогите мне
Ответ №1:
Вы получаете исключение:
java.lang.Исключение ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
Это означает, что ваша программа не может найти драйвер и, следовательно, даже не пытается подключиться к базе данных.
У Mircosoft есть статья о том, как начать работу с Microsoft JDBC:
Драйвер Microsoft SQL Server 2000 для файлов JDBC .jar должен быть указан в вашей переменной CLASSPATH. Переменная CLASSPATH — это строка поиска, которую виртуальная машина Java (JVM) использует для поиска драйверов JDBC на вашем компьютере..
Ответ №2:
Как полное предположение, вы установили Express Edition (вы всегда должны указывать выпуск, а не только версию), но вы не включили поддержку TCP / IP с помощью диспетчера конфигурации SQL Server. По умолчанию в Express Edition не включены какие-либо сетевые протоколы, поэтому подключение по TCP / IP не будет работать, если вы сначала не включите его.
Ответ №3:
Я думаю, что это тот драйвер, который вам нужно использовать
com.microsoft.sqlserver.jdbc.SQLServerDriver
не com.microsoft.jdbc.sqlserver.SQLServerDriver
Ответ №4:
Просто сделайте одну вещь, перейдите к http://www.java2s.com/Code/Jar/s/Downloadsqljdbcjar.htm и загрузите файл sqljdbc jar и используйте его в своей программе.