Como resolver " java.idioma.ClassNotFoundException: oracle.jdbc.controlador."OracleDriver" em tempo de execução?
Há um problema no tempo de execução com este código que é
Java.idioma.classNotFoundException: oracle: jdbc: driver: Oraclepriver"`
mas outro programa do mesmo driver JDBC é executado corretamente, mas este driver JDBC é encontrado uma exceção na applet java. Por favor, ajudem-me com este problema. Sou novo em Java.
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.sql.*;
import java.io.*;
/*<applet code="EmpDetails" width=300 height=500></applet>*/
public class EmpDetails extends Applet implements ActionListener{
TextField firstName, lastName, userId, pass, email, phone;
Button submit,cancel;
String msg = "";
public void init(){
setLayout(new GridLayout(10,2,0,30));
Label fname = new Label("First Name : ");
Label lname = new Label("\nLast Name : ");
Label uid = new Label("User Id : ");
Label pas = new Label("Password : ");
Label emailid = new Label("Email Id : ");
Label ph = new Label("Phone : ");
firstName = new TextField(10);
lastName = new TextField(10);
userId = new TextField(16);
pass = new TextField(16);
email = new TextField(30);
phone = new TextField(12);
pass.setEchoChar('*');
submit = new Button("Submit");
cancel = new Button("Cancel");
add(fname);
add(firstName);
add(lname);
add(lastName);
add(uid);
add(userId);
add(pas);
add(pass);
add(emailid);
add(email);
add(ph);
add(phone);
add(submit);
add(cancel);
firstName.addActionListener(this);
lastName.addActionListener(this);
userId.addActionListener(this);
pass.addActionListener(this);
email.addActionListener(this);
phone.addActionListener(this);
submit.addActionListener(this);
cancel.addActionListener(this);
}
public void actionPerformed(ActionEvent ae)
{
String str = ae.getActionCommand();
if(str.equals("Submit"))
{
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:XE";
String id = "system";
String passw = "root";
Connection con = DriverManager.getConnection(url , id , passw);
Statement st = con.createStatement();
String u,fn,ln,ps,em,pn;
u = userId.getText();
fn = firstName.getText();
ln = lastName.getText();
ps = pass.getText();
em = email.getText();
pn = phone.getText();
String urld = "INSERT INTO EMPDETAILS(id,firstname,lastname,email,password,phone)" + "values" + "('" + u + "','" + fn + "','" + ln + "','" + em + "','" + ps + "','" + pn + "')";
st.executeUpdate(urld);
con.close();
st.close();
msg = "Recode added successfull ";
}
catch(Exception e){ msg = e.toString();}
}
else{
msg = "No any data added";
}
repaint();
}
public void paint(Graphics g){
g.drawString(msg,6,300);
}
}
2 answers
A razão pela qual você encontra esta exceção é que você usa o pacote errado para se referir à OracleDriver
classe
Portanto, deve alterar a chamada de carga da classe incorrecta
Class.forName("oracle.jdbc.driver.OracleDriver");
Em
Class.forName("oracle.jdbc.OracleDriver");
À medida que este ficheiro de classe implementa a interface java.sql.Driver
que é realmente verificada durante a execução.
Para referência, Ver também a descrição no JavaDoc oficial fornecido pela Oracle:
A classe de condução da Oracle JDBC que implementa hipoteca.banco.Interface do condutor.
Solução:
Primeiro descarregue ojdbc6.jar e ojdbc6_g.jar do google.
2) Se estiver a ligar-se à Oracle 11g a partir de Java e a correr na versão Java 6, então inclua ojdbc6.frasco ou ojdbc6_g.jar na sua aplicação está o classpath.
3) assim que terminar o download, cole os ficheiros em C:\Program ficheiros\Java\jdk1.6.0_ 23\jre\lib\ext pasta.
Saúde. Gopinath Padala