как сделать соединение JDBC с sqlserver2000? - PullRequest
0 голосов
/ 05 сентября 2011

вот код

import java.*;
public class Connect{
     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= "pubs";
     private final String userName = "user";
     private final String password = "password";
     // Informs the driver to use server a side-cursor, 
     // which permits more than one active statement 
     // on a connection.
     private final String selectMethod = "cursor"; 

     // Constructor
     public Connect(){}

     private String getConnectionUrl(){
          return 

url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectM

ethod+";";
     }

     private java.sql.Connection getConnection(){
          try{
               Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
               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
       {
          Connect myDbTest = new Connect();
          myDbTest.displayDbProperties();
       }
}

я установил "c: \ program files \ microsoft sql server 2000 драйвер для JDBC"

скомпилирован как:

C:\Program Files\Java\jdk1.7.0\bin>javac -classpath "c:\program files\Microsoft
SQL Server 2000 Driver for JDBC\lib\msbase.jar;c:\program files\Microsoft SQL Se
rver 2000 Driver for JDBC\lib\msutil.jar;c:\program files\Microsoft SQL Server 2
000 Driver for JDBC\lib\mssqlserver.jar" Connect.java

выполнено как:

C:\Program Files\Java\jdk1.7.0\bin>java -classpath "c:\program files\Microsoft S
QL Server 2000 Driver for JDBC\lib\msbase.jar;c:\program files\Microsoft SQL Ser
ver 2000 Driver for JDBC\lib\msutil.jar;c:\program files\Microsoft SQL Server 20
00 Driver for JDBC\lib\mssqlserver.jar" Connect

я получаю следующий вывод:

Error: Could not find or load main class Connect

я не могу найти причину этой ошибки?как это решить?

Ответы [ 3 ]

1 голос
/ 05 сентября 2011

Текущий каталог по умолчанию не является частью CLASSPATH.Вы должны убедиться, что путь к Connect.class является частью CLASSPATH.Добавлять ".;"к началу вашего CLASSPATH и попробуйте снова.

Начните с основ:

  1. Создайте папку, которая НЕ находится рядом с тем местом, где вы установили свой JDK;назовите его c: / projects / JDBC
  2. Создайте имена папок / src и / classes в вашем c: / projects / JDBC.Создайте файл с именем Connect.java в папке c: / project / JDBC / src и скопируйте в него приведенный ниже исходный код.
  3. Скомпилируйте Connect.java, введя javac -d classes Connect.java в командной строке командной строки.Если вы не получили файл Connect.class в папке c: / projects / JDBC / classes, вы делаете это неправильно.
  4. Запустите программу, набрав java -classpath .;classes Connect.Вы должны увидеть этот вывод в оболочке: вы можете запустить основную программу.Теперь начните беспокоиться о JDBC. "В командной оболочке. Если это работает, начните добавлять код JDBC.

    public class Connect {
    
        public static void main(String [] args) {
            System.out.println("You can run a main program.  Now start worrying about JDBC.");
        }
    }
    
0 голосов
/ 17 января 2012

Извлеките mssqlserver.jar, используя winzip, и импортируйте нижеприведенные файлы только в файл java-файла подключения БД.

import com.microsoft.sqlserver.jdbc.*;
import microsoft.sql.*;

Теперь просто запустите Java-программу, вызвав

java MainclassName
0 голосов
/ 05 сентября 2011

Предполагая, что ваш Connect.class находится в текущем каталоге - вы должны выполнить:

C:\Program Files\Java\jdk1.7.0\bin>java -classpath ".;c:\program files\Microsoft SQL 
Server 2000 Driver for JDBC\lib\msbase.jar;c:\program files\Microsoft SQL Server 2000 
Driver for JDBC\lib\msutil.jar;c:\program files\Microsoft SQL Server 2000 Driver for 
JDBC\lib\mssqlserver.jar" Connect

Это добавит текущий каталог к ​​пути к классу и позволит Java найти Connect class

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...