2015-01-11 69 views
0

我正在关注某些项目的java netbeans中的MVC模式。我试图将数据库与我的应用程序连接起来,并运行一个显示JTable中所有数据的简单查询。我完全编码,但是当我跑我的项目,它抛出一个错误:连接oracle数据库时netbeans java中的未知异常

package com.innovatraasolutions.eev.dal; 

import com.innovatraasolutions.eev.bo.Voters; 
import java.io.BufferedReader; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.logging.Level; 
import java.util.logging.Logger; 
import java.sql.*; 
/** 
* 
* @author SuperMan 
*/ 
public class VoterDAO { 

    /** 
    * 
    * @param voter 
    * @return 
    */ 
    public List<Voters> verifyVoter(Voters voter){ 
     String filename = null; 
     FileReader userFileReader = null; 
     FileReader userFileReader2 = null; 
     Connection connection = null; 

     List<Voters> list = new ArrayList<Voters>(); 

     try{ 
      String driverName = "oracle.jdbc.driver.OracleDriver"; 
      Class.forName(driverName); 
      String serverName = "SpiderMan"; 
      String serverPort = "1521"; 
      String sid = "XE"; 
      String url = "jdbc|oracle|thin|@" + serverName + "|" + serverPort + "|"; 
      String userName = "eev"; 
      String password = "123"; 

      connection = DriverManager.getConnection(url, userName, password); 

      System.out.println("Sucessfully connected to the DataBase"); 
     } catch(ClassNotFoundException e){ 
      System.out.println("Class Not Found Exeption::Couldn't find the database driver" + e.getMessage()); 
     } catch(SQLException e) { 
      System.out.println("Couldn't connect to the database" + e.getMessage()); 
     } 

     /*---------------------------------------------------*/ 
     //for retrieving data from database 
     try{ 
      Statement statement = connection.createStatement(); 
      ResultSet resultSet = statement.executeQuery("select *from Voter"); 

      while(resultSet.next()){ 
       String vcnic = resultSet.getString(1); 
       voter.setCnic(vcnic); 

       String Fname = resultSet.getString(2).toString(); 
       voter.setFname(Fname); 

       String Lname = resultSet.getString(3).toString(); 
       voter.setLname(Lname); 

       String VoteRegisteredIn = resultSet.getString(4).toString(); 
       voter.setVoteRegistered(VoteRegisteredIn); 

       String Address = resultSet.getString(5).toString(); 
       voter.setAddress(Address); 

       list.add(voter); 
      } 
      resultSet.close(); 

     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
     return list; 

    /* try{ 
      userFileReader = new FileReader("voters.txt"); 
      String line = "a"; 
      BufferedReader voterFileBuffReader = new BufferedReader(userFileReader); 

      while((line = voterFileBuffReader.readLine()) != null){ 
       // System.out.println("Yesss"); 
       //filename = line + ".txt"; 
       //System.out.println(filename); 
       //System.out.println("first While"); 

       userFileReader2 = new FileReader("voters.txt"); 
       BufferedReader studFileBuffReader = new BufferedReader(userFileReader2); 

       while((line = studFileBuffReader.readLine()) != null){ 
        //System.out.println("Second While"); 
        String Cnic = line; 
        voter.setCnic(Cnic); 

        String Fname = studFileBuffReader.readLine(); 
        voter.setFname(Fname); 

        String Lname = studFileBuffReader.readLine(); 
        voter.setLname(Lname); 

        String VoteRegistered = studFileBuffReader.readLine(); 
        voter.setVoteRegistered(VoteRegistered); 

        String Address = studFileBuffReader.readLine(); 
        voter.setAddress(Address); 

        list.add(voter); 


     } 

    } 

    }*/ 
     /* catch(Exception e){ 
      System.err.println("Exception::"); 
     } */ 

} 

} 

而且它给了以下错误:你的Oracle驱动程序.jar文件

run: 
File not found! 
Couldn't connect to the databaseNo suitable driver found for jdbc|oracle|thin|@SpiderMan|1521| 
java.lang.NullPointerException 
    at com.innovatraasolutions.eev.dal.VoterDAO.verifyVoter(VoterDAO.java:58) 
    at com.innovatraasolutions.eev.bl.VoterHandler.verifyVoter(VoterHandler.java:27) 
    at com.innovatraasolutions.eev.controller.Controller.verifyVoter(Controller.java:83) 
    at com.innovatraasolutions.eev.controller.Controller.processRequest(Controller.java:43) 
    at com.innovatraasolutions.eev.ui.Voter.viewVoterActionPerformed(Voter.java:125) 
    at com.innovatraasolutions.eev.ui.Voter.access$000(Voter.java:21) 
    at com.innovatraasolutions.eev.ui.Voter$2.actionPerformed(Voter.java:75) 
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) 
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 
    at java.awt.Component.processMouseEvent(Component.java:6525) 
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) 
    at java.awt.Component.processEvent(Component.java:6290) 
    at java.awt.Container.processEvent(Container.java:2234) 
    at java.awt.Component.dispatchEventImpl(Component.java:4881) 
    at java.awt.Container.dispatchEventImpl(Container.java:2292) 
    at java.awt.Component.dispatchEvent(Component.java:4703) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898) 
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533) 
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462) 
    at java.awt.Container.dispatchEventImpl(Container.java:2278) 
    at java.awt.Window.dispatchEventImpl(Window.java:2739) 
    at java.awt.Component.dispatchEvent(Component.java:4703) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746) 
    at java.awt.EventQueue.access$400(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:697) 
    at java.awt.EventQueue$3.run(EventQueue.java:691) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86) 
    at java.awt.EventQueue$4.run(EventQueue.java:719) 
    at java.awt.EventQueue$4.run(EventQueue.java:717) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:716) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 
BUILD SUCCESSFUL (total time: 31 seconds) 
+0

你的驱动程序jar文件不存在于lib文件夹中 – Prashant

+0

[什么是NullPointerException,以及如何解决它?](http:// st ackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) – Tom

回答

2

您无法创建连接,因此您会在日志中看到以下内容:“无法连接到数据库没有找到适用于jdbc | oracle | thin | @SpiderMan | 1521 |的驱动程序”

您应该更改从以下行:

String url = "jdbc|oracle|thin|@" + serverName + "|" + serverPort + "|"; 

String url = "jdbc:oracle:thin:@" + serverName + ":" + serverPort + "/" + sid; 

如果你知道你可以附加数据库的数据库名称如:

String url = "jdbc:oracle:thin:@" + serverName + ":" + serverPort + ":" + dbname; 
+0

先生,现在当我纠正你纠正它,它显示错误: –

+0

文件未找到! 显示java.lang.NullPointerException \t在com.innovatraasolutions.eev.dal.VoterDAO.verifyVoter(VoterDAO.java:59) 无法连接到databaseListener拒绝与以下错误的连接: ORA-12505,TNS:监听者当前不知道连接描述符中给出的SID –

+0

请参阅我更新的答案。你可能需要追加“/”+ sid到url – SMA