我在 jdbc 连接中收到未知源错误消息:
IDE: java eclipse
Data Base: oracle 10g
code : java swing
DNS name : home
table name : lg (login )
请帮我解决这个错误...! 这是我正在使用的代码:
package vijay;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.*;
import javax.swing.border.*;
import java.sql.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
public class jdbc extends JFrame {
Connection con=null;
Statement st=null;
/**
*
*/
private static final long serialVersionUID = 6517038751742780009L;
private JPanel contentPane;
private JTextField textField;
private JPasswordField passwordField;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
jdbc frame = new jdbc();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public jdbc()throws Exception {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:home","system","sa");
st = con.createStatement();
JOptionPane.showMessageDialog(null, "connected");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 566, 359);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.CENTER);
panel.setLayout(null);
JLabel lblUserName = new JLabel("user name");
lblUserName.setBounds(144, 89, 70, 14);
panel.add(lblUserName);
JLabel lblPassword = new JLabel("password");
lblPassword.setBounds(144, 142, 46, 14);
panel.add(lblPassword);
textField = new JTextField();
textField.setBounds(248, 86, 86, 20);
panel.add(textField);
textField.setColumns(10);
JButton btnLogin = new JButton("login");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String un=textField.getText();
String pwd=passwordField.getText().trim();
String str;
if(un.equals("vijay")&&pwd.equals("123")) {
try {
str="insert into lg values('"+un+"','"+pwd+"')";
st.executeUpdate(str);
JOptionPane.showMessageDialog(null, "record inserted");
}
catch(Exception e) {
}
}
else {
JOptionPane.showMessageDialog(null, "Wrong Login Details");
}
}
});
btnLogin.setBounds(144, 209, 89, 23);
panel.add(btnLogin);
btnLogin.setMnemonic(KeyEvent.VK_L);
JButton btnExit = new JButton("Exit");
btnExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
btnExit.setBounds(254, 209, 89, 23);
panel.add(btnExit);
btnExit.setMnemonic(KeyEvent.VK_E);
passwordField = new JPasswordField();
passwordField.setBounds(247, 142, 86, 20);
panel.add(passwordField);
}
}
最佳答案
使用此驱动程序连接到 Oracle DB 会很困难:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
。
您应该加载 oracle 驱动程序。
以下是连接oracle DB的示例:
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;
public class OracleJDBC {
public static void main(String[] argv) {
System.out.println("-------- Oracle JDBC Connection Testing ------");
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
System.out.println("Where is your Oracle JDBC Driver?");
e.printStackTrace();
return;
}
System.out.println("Oracle JDBC Driver Registered!");
Connection connection = null;
try {
connection = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:test", "username",
"password");
} catch (SQLException e) {
System.out.println("Connection Failed! Check output console");
e.printStackTrace();
return;
}
if (connection != null) {
System.out.println("You made it, take control your database now!");
} else {
System.out.println("Failed to make connection!");
}
}
}
编辑:
来自 Oracle 文档:
It is recommended that you obtain a commercial JDBC driver from a vendor such as your database vendor or your database middleware vendor. Check the list of drivers currently available. The JDBC-ODBC Bridge driver is recommended only for experimental use or when no other alternative is available.
您可以查看更多详细信息:http://docs.oracle.com/javase/1.3/docs/guide/jdbc/getstart/bridge.doc.html
关于java - 使用 java swing 创建与 Oracle 10g 的 JDBC 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18043906/