FoxRoot Ответов: 2

Как подключить java и Oracle?


Всем привет,

Я разрабатываю Java-проект с помощью netbeans. Я выполнил все части(графический интерфейс и java-код) Я хочу подключиться к базе данных сохранить некоторую информацию в базе данных, например, я хочу добавить нового пользователя через текстовое поле в базу данных. Однако я не мог его связать.
Вот мой код Ребята, пожалуйста, помогите мне, что проект так важен для меня.

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
try {
    Connection con=null;
    Class.forName("oracle.jdbc.driver.OracleDriver");
    con=DriverManager.getConnection(
        "jdbc:oracle:thin:@localhost:1521:orcl",
        "plsql_staj",
        "plsql_staj1");
    Statement s=con.createStatement();
    s.execute("INSERT INTO E_USER VALUES(((u_name,u_pass,u_role)('"+txtAddUserName.getText()+"','"+txtAddUserPassWord.getText()+"','"+cmbAddUserRole.getSelectedItem().toString()+"')");
    s.close();
    con.close();
   } 
 catch(ClassNotFoundException | SQLException e){}
 
    }                                        


В netbeans нет ошибок. Однако кнопка не работает. Я добавляю:
import Oracle.jdbc.pool.OracleDataSource;


этот импорт, но на этот раз я принимаю ошибку "пакет oracle.jdbc.pool не существует".

Пожалуйста, пожалуйста, пожалуйста. Это мой дипломный проект. Если вы не можете решить, пожалуйста, объявите об этом.

Спасибо.

2 Ответов

Рейтинг:
8

FoxRoot

Aditaya я не знаю, как вас благодарить. Это было самое лучшее. Большое вам спасибо.
У меня опять возникли кое-какие проблемы. Как я мог понять, что мой водитель-oci или тонкий ? Я пробовал и то, и другое, но я принимаю ошибку "java.sql.SQLException: Io exception: сетевой адаптер не может установить соединение".

try {
         DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
         Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@localhost:3306:O10G","plsql_staj", "plsql_staj1");
         Statement st = conn.createStatement();
         ResultSet rs = st.executeQuery("SELECT * from E_USER");
         rs.close();
         st.close();
         conn.close();
     } catch (SQLException ex) {
         Logger.getLogger(AddNewUser.class.getName()).log(Level.SEVERE, null, ex);
     }


Когда я использовал другой вариант, который является
Connection conn = DriverManager.getConnection("jdbc:oracle:oci8:@oracle.world", "plsql_staj", "plsql_staj1");

Я принимаю еще одну ошибку, которая заключается в том, что:
Исключение в потоке "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: нет ocijdbc9 в java.library.path
Вот мой экран подключения PLSQL.
http://www.imagetoo.com/images/untitlzhz.jpg[^]


Aditya Mangipudi

Вы используете экземпляр базы данных Oracle на моем компьютере?

Можете ли вы подключиться к базе данных за пределами JDBC через общий клиент, такой как Toad?

FoxRoot

Я не понимал жалости Адитьи. Плеса, помоги мне.

Aditya Mangipudi

Поскольку вы используете локальное соединение с базой данных (jdbc:oracle:thin:@localhost:3306:O10G"), есть ли у вас база данных на вашей машине? Если да, попробуйте подключиться к нему с помощью экземпляра базы данных Oracle, например toad. Google о том, как подключиться к базе данных oracle с помощью toad.
Если вы не можете подключиться к базе данных с помощью этого инструмента, то либо вы не создали никакой базы данных на своем компьютере, либо что-то блокирует ваше соединение.

Рейтинг:
20

Aditya Mangipudi

Вы зарегистрировали водителя?

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

Попробуйте выполнить следующие действия (проверьте, не пропустили ли вы что-нибудь):
1) импортировать следующие пакеты в файл Java :***********
import java.sql.*;
import oracle.jdbc.driver.*;
import oracle.sql.*;

2) загрузить и зарегистрировать драйвер JDBC :***********
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

или вы можете использовать
Class.forName("oracle.jdbc.driver.OracleDriver");

3) Подключение к базе данных:***********
а) если вы используете драйвер oracle oci,вы должны использовать:
Connection conn = DriverManager.getConnection("jdbc:oracle:oci8:@oracle.world", "root", "root");

где оракул.world-это запись TNSNAMES, а root-имя пользователя и пароль.
Б) Если вы используете oracle thin driver,вы должны использовать:
Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@localhost:3306:mydatabase","root", "root");

где localhost-это хост,3306 - порт, mydatabase-база данных, а root-имя пользователя и пароль.
4) запрос к базе данных:**********
а)создать инструкцию:
Statement st = conn.createStatement();

б)написать запрос и выполнить его:
ResultSet rs = st.executeQuery("SELECT * from student");

5) закройте оператор,результирующий набор и соединение:**********
rs.close();
st.close();
conn.close();


FoxRoot

Aditaya спасибо за ваш помогает. Но я принимаю другую ошибку, которая заключается в том, что:
Исключение в потоке "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: нет ocijdbc9 в java.library.path