Java lietojuma programmu izmantošanas varianti 1. Java lietojumprogramma. SQL 2. Java lietojumprogramma izsauc DB servera PL/SQL programmu. Call 3. Java lietojumprogramma izsauc DB servera Java programmu. Call Lietojums (Java un JDBC) Datu bāzes sistēma Lietojums (Java un JDBC) Dati Datu bāzes sistēma Dat Lietojums (Java un JDBC) PL/SQL programma Datu bāzes sistēma Dat PL/SQL programma Java programm 1
23
Embed
JDBC izmantošanas tests Web view · 2016-11-23Java lietojuma programmu izmantošanas varianti. 1. ... JDBC draivera programmas glabāšanas vietas norāde. ... JDBC int.....
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Java lietojuma programmu izmantošanas varianti
1. Java lietojumprogramma.
SQL
2. Java lietojumprogramma izsauc DB servera PL/SQL programmu.
Call
3. Java lietojumprogramma izsauc DB servera Java programmu.
Call
Lietojums (Java un JDBC)
Datu bāzes sistēma
Dati
Lietojums (Java un JDBC)
Datu bāzes sistēma
DatiPL/SQL programma
Lietojums (Java un JDBC) Datu bāzes sistēma
Dati
PL/SQL programma
Java programma
1
JDBC draivera programmas glabāšanas vietas norāde
2
JDBC draivera versijas pārbaude.OracleDataSource klases izmantošana savienojuma veidošanai
class JDBCVersija{public static void main (String args[]) throws SQLException{// Datu avota objekta izveidošana. OracleDataSource datuAvots = new OracleDataSource();// Datu bāzes savienojuma informācijas ievade. datuAvots.setURL("jdbc:oracle:thin:system/janis@localhost:1521:BAZE");// Savienojuma objekta izveidošana. // Savienojuma izveidošanaar getConnection() metodi.Connection savienojums= datuAvots.getConnection();// Metadatu tipa (DatabaseMetaData) objekta izveidošana.// Metadatu iegūšana ar metodi getMetaData().DatabaseMetaData meta = savienojums.getMetaData();// Draivera versijas izvade no metadatu objekta.System.out.println("JDBC draivera versija: " + meta.getDriverVersion());}}
public class DriverManagerTool {public static String getLoadedDrivers() {// Draiveru (elementu) kopas izveidošana.java.util.Enumeration e = java.sql.DriverManager.getDrivers();// Simbolu rindas tipa bufera izveidošana XML dokumentam.StringBuffer sb = new StringBuffer("<?xml versija='1.0'>");// XML dokumenta saknes elementa sākuma iezīmes ievade buferī.sb.append("<pieejamie_draiveri>");// Cikls pa visiem draiveriem.while (e.hasMoreElements()) {Object driver = e.nextElement();// XML elementa ievade buferī.// <draiveris>draivera nosaukums</draiveris>appendXMLTag(sb, "draiveris", driver.toString());}// XML dokumenta saknes elementa beigas ievade buferī.sb.append("</pieejamie_draiveri>");// Bufera satura nodošana.return sb.toString();}
private static void appendXMLTag(StringBuffer buffer,String tagName, String value){// XML elementa sākuma iezīmes, vērtības un beigu iezīmes // ierakstīšana buferī.
public class JDBCtests{public static void main (String args []) throws SQLException {String teksts = null;Connection savienojums = null;Statement komanda = null;OracleDataSource datuAvots = new OracleDataSource();// URL norādīšanaString url = "jdbc:oracle:thin:system/Janis1946@//localhost:1521/BAZE";datuAvots.setURL(url);// Savienojuma izveidošanasavienojums = datuAvots.getConnection();// Izpildāmās komandas objekta izveidošana.komanda = savienojums.createStatement();// Execute SQL statement and retrieve result sets.ResultSet rezultats = komanda.executeQuery ("select F_NOS from FIRMAS where F_NUM =1");// Rezultāta izvadewhile (rezultats.next()) {teksts = rezultats.getString("F_NOS");}System.out.println ("1. firmas nosaukums : " + teksts);// Objektu aizvēršanarezultats.close();komanda.close();savienojums.close(); } }
6
Savienojuma izveidošana ar Oracle datu bāzes sistēmuKlases Class.forName izmantošana
import java.sql.*; public class SavienojumsArOracleDB {public static void main(String[] args) {try {// Programmas bloks ar pārbaudiConnection savienojums = null;// Datu bāzes Oracle11c JDBC draivera ielāde no paketes // oracle.jdbc.driver. Jābūt pieejai failam ojdbc6.jar no // F:\app\Janis\product\11.2.0\dbhome_1\jdbc\lib\ojdbc6.jar// Pieeja tiek norādīta izmantojot vides mainīgo (environmental variable // CLASSPATH).String driverName = "oracle.jdbc.driver.OracleDriver";Class.forName(driverName);// Savienojuma ar DBS izveidošana.String serveris = "localhost";String ports = "1521";String sid = "BAZE1";String url = "jdbc:oracle:thin:@" + serveris + ":" +ports + ":" + sid;String lietotajs = "system";String parole = "Janis1946";savienojums = DriverManager.getConnection(url, lietotajs, parole);System.out.println("Savienojums ar DB.");// Vaicājuma izveidošana un izpilde.// Datu bāzē ir tabula FIRMAS ar kolonām F_NUM un F_NOS.Statement vaicajums = savienojums.createStatement();ResultSet rezultats = vaicajums.executeQuery("select F_NOS from FIRMAS");rezultats.next();String s = rezultats.getString(1);System.out.println("Firmas nosaukums = " + s);vaicajums.close();savienojums.close(); }// Īpašās sistuācijas apstrāde.catch (Exception e) {System.out.println("Ir problema:" + e); } } }
7
8
Savienojuma izveidošana ar Oracle datu bāzes sistēmuMetodes registerDriver izmantošana
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;// Varēja arī rakstīt: import java.sql.*;
public class SavienojumsArOracleDB{public static void main(String[] args) {try {// Oracle JDBC draivera ielādeDriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());System.out.println("Oracle DBS draiveris noteikts.");// Savienojuma izveidošanaConnection savienojums= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:BAZE1", "system", "Janis1946");System.out.println("Savienojums ar DB.");// Vaicājuma realizēšanaStatement vaicajums =savienojums.createStatement();ResultSet rezultats = vaicajums.executeQuery("select F_NOS from FIRMAS");rezultats.next();String s = rezultats.getString(1);System.out.println("Firmas nosaukums = " + s);vaicajums.close();savienojums.close(); } catch (Exception e) {// Ir īpašā situācijaSystem.out.println("Ir problema:" + e); } } }
9
Ja norādām nepareizu datu bāzes tabulas nosaukumu, piemēram, FIRMASS:
10
JDBC izmantošanas testsimport java.sql.*;import oracle.jdbc.*;import oracle.jdbc.pool.OracleDataSource; // java.io – lai varētu nolasīt no // komandu rindasimport java.io.*;public class JDBCParbaude{public static void main(String args[ ]) throws SQLException, IOException {// Savienojuma informācijas pieprasīšanaSystem.out.println("Ievadiet savienojuma ar DB parametru vertibas!");String user;String password;String database;user = readEntry("lietotajs: ");int slash_index = user.indexOf('/');if (slash_index != -1) { password = user.substring(slash_index + 1); user = user.substring(0, slash_index); }elsepassword = readEntry("parole: ");database = readEntry("datubazes nosaukums: ");System.out.print("Savienojuma veidosana.");System.out.flush();System.out.println("Savienojums ...");// OracleDataSource atvēršana un savienojuma izveidošanaOracleDataSource ods = new OracleDataSource();ods.setURL("jdbc:oracle:thin:system/Janis1946@localhost:1521:BAZE1");ods.setUser(user);ods.setPassword(password);Connection conn = ods.getConnection();System.out.println("ir izveidots.");// Create a statementStatement stmt = conn.createStatement();ResultSet rset = stmt.executeQuery("select 'Nolasijums no DB ir veikts!' from dual");while (rset.next()) System.out.println(rset.getString(1));rset.close();stmt.close();conn.close();System.out.println("JDBC draiveris darbojas."); }// Rindas nolasīšana no standarta ievadespublic static String readEntry(String prompt) { try {StringBuffer buffer = new StringBuffer();System.out.print(prompt);System.out.flush(); // attīra buferiint c = System.in.read();while (c != '\n') {buffer.append((char) c); c = System.in.read(); }return buffer.toString().trim(); }catch(IOException e){return "Problēmas!"; } } }
11
JDBC interfeisa izmantošanas piemērs
import java.sql.*;import oracle.jdbc.*;import oracle.jdbc.pool.OracleDataSource;public class JDBCtests{public static void main (String args []) throws SQLException {String teksts = null;Connection savienojums = null;Statement komanda = null;OracleDataSource datuAvots = new OracleDataSource();// URL norādīšanaString url = "jdbc:oracle:thin:system/Janis1946@//localhost:1521/BAZE1";datuAvots.setURL(url);// Savienojuma izveidošanasavienojums = datuAvots.getConnection();// Izpildāmās komandas norādekomanda = savienojums.createStatement();// Execute SQL statement and retrieve result setsResultSet rezultats = komanda.executeQuery ("select F_NOS from FIRMAS where F_NUM =1");// Rezultāta izvadewhile (rezultats.next()) {teksts = rezultats.getString("F_NOS");}System.out.println ("1. firmas nosaukums : " + teksts);// Objektu aizvēršanarezultats.close();komanda.close();savienojums.close(); } }
12
JDBC interfeisa izmantošanas piemērs
import java.sql.*;import java.util.*;/*** This class provides three basic methods:* 1) how to create a connection for a given (url, username, password)* 2) how to create a connection for a given (url, databaseProperties)* 3) how to load a driver*/public class BasicConnectionManager {public static final String DATABASE_USER = "user";public static final String DATABASE_PASSWORD = "password";/*** Load the JDBC driver.* @param driverName the driver name.* @throws ClassNotFoundException Failed to load the driver.*/public static void loadDriver(String driverName)throws ClassNotFoundException {java.lang.Class.forName(driverName);}/*** Get the connection from a given (url, user, password).* @param url database URL.* @param username database user.* @param user's password.* @return Connection object.* @throws SQLException Failed to create a Connection object.*/public static Connection getConnection(String url, String username, String password)throws SQLException{return DriverManager.getConnection(url, username, password);}/*** Get the connection from a given (url, user, password).* @param url database URL.* @param dbProperties database properties (database username, password, and other attributes).* @return Connection object.* @throws SQLException Failed to create a Connection object.*/public static Connection getConnection(String url, Properties dbProperties)throws SQLException {return DriverManager.getConnection(url, dbProperties); } }
13
JDBC interfeisa izmantošanas piemērs (turpinājums)import java.sql.*;import java.util.*;public class TestOracleConnectionManager {// Client program to create two connections.public static void main(String[] args) {try {// Oracle JDBC draivera ielāde (piesaiste)String driverName = "oracle.jdbc.driver.OracleDriver";BasicConnectionManager.loadDriver(driverName);}// Could not find the database driver; when you are here,// it means that your .jar file (which contains// the Driver class) has not been added to the CLASSPATH// properly; you have to fix this problem before you// can establish a connection to an Oracle database.catch (ClassNotFoundException e) {e.printStackTrace();}
Connection conn1 = null;Connection conn2 = null;String serverName = "localhost";String portNumber = "1521";String sid = "BAZE1";String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" + sid;String username = "system";String password = "Janis1946";try {// Step 2: Create a connection to the databaseconn1 = BasicConnectionManager.getConnection(url, username, password);System.out.println("conn1="+conn1);System.out.println("-----------------------");// Step 3: Create another connection to the databaseconn2 = BasicConnectionManager.getConnection(url, username, password);System.out.println("conn2="+conn2);System.out.println("-----------------------");}// Could not connect to the database. Either database server is down or one/more of// your parameters is/are not specified correctly.catch (SQLException e){System.out.println("Problema ar savienojumu!");}finally {System.out.println("Nestrada savienojumu aizversana!");//conn1.close();//conn2.close();//BasicConnectionManager.close(conn1);//BasicConnectionManager.close(conn2);}}}
public static void main (String[] args){try {...}catch (ClassNotFoundException e) {e.printStackTrace();}…try {…}catch (SQLException e) {e.printStackTrace();}finally { … } }
14
JDBC savienojuma parametru vērtību nolase no faila
import java.sql.*;import java.util.*;import java.io.*;public class TestOracleConnectionManager {public static void main(String[] args) {// Parametru vērtību nolasīšana no failaProperties ipasibas = new Properties();try {FileInputStream in = new FileInputStream("datubaze.properties");// Parametru vērtību ielāde no failaipasibas.load(in);in.close();// Oracle JDBC draivera ielāde (piesaiste)// Draiveris - oracle.jdbc.driver.OracleDriverString draiveris = ipasibas.getProperty("jdbc.drivers");BasicConnectionManager.loadDriver(draiveris);String url = ipasibas.getProperty("jdbc.url");String username = ipasibas.getProperty("jdbc.username");String password = ipasibas.getProperty("jdbc.password");Connection conn1 = null;conn1 = BasicConnectionManager.getConnection(url, username, password);// conn1 = DriverManager.getConnection(url, username, password);System.out.println("conn1="+conn1);System.out.println("-----------------------");conn1.close();}catch (FileNotFoundException e){System.out.println("Nav faila!");}catch (IOException e){System.out.println("Nevar ieladet datus!");}catch (ClassNotFoundException e) {System.out.println("Nav draivera!");}catch (SQLException e){System.out.println("Problema ar savienojumu!");}}}
Oracle JDBC OCI (Oracle Call Interface) draivera izmantošana
1. You must use a JDBC OCI driver appropriate to your Oracle client installation. 2. The OCI driver works through SQL*Net. 3. The JDBC OCI drivers allow you to call the OCI directly from Java, thereby providing a high degree of compatibility with a specific version of Oracle. 4. Because they use native methods, they are platform specific.