JDBC izmantošanas tests Web view01/11/2015 · // java.io – lai varētu...

21
Point database JDBC driver storage place 1

Transcript of JDBC izmantošanas tests Web view01/11/2015 · // java.io – lai varētu...

Page 1: JDBC izmantošanas tests  Web view01/11/2015 · // java.io – lai varētu nolasīt no ... // it means that your .jar file (which contains ... {System.out.println

Point database JDBC driver storage place

1

Page 2: JDBC izmantošanas tests  Web view01/11/2015 · // java.io – lai varētu nolasīt no ... // it means that your .jar file (which contains ... {System.out.println

Test JDBC driver versionOracleDataSource class use

import java.sql.*; // JDBC library.import oracle.jdbc.*; // Oracle DBS JDBC library.import oracle.jdbc.pool.OracleDataSource;

class JDBCVersija{public static void main (String args[]) throws SQLException{// Data source object creation. OracleDataSource datuAvots = new OracleDataSource();// Connection information input. datuAvots.setURL("jdbc:oracle:thin:system/janis@localhost:1521:BAZE");// Connection object creation. Connection savienojums= datuAvots.getConnection();// Metadata object creation.DatabaseMetaData meta = savienojums.getMetaData();// Driver version output.System.out.println("JDBC draivera versija: " + meta.getDriverVersion());}}

2

Page 3: JDBC izmantošanas tests  Web view01/11/2015 · // java.io – lai varētu nolasīt no ... // it means that your .jar file (which contains ... {System.out.println

All JDBC driver output

import java.util.*;import java.io.*;import java.sql.*;

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ī.

buffer.append("<");buffer.append(tagName);buffer.append(">");buffer.append(value);buffer.append("</");buffer.append(tagName);buffer.append(">"); }

3

Page 4: JDBC izmantošanas tests  Web view01/11/2015 · // java.io – lai varētu nolasīt no ... // it means that your .jar file (which contains ... {System.out.println

// Draiveru nosaukumu izvade.public static void main(String[] args) throws Exception {try {// Draivera ielāde operatīvajā atmiņā.Class.forName("oracle.jdbc.driver.OracleDriver");// Ielādēto draiveru nosaukumu izvade XML dokumenta formā.System.out.println(getLoadedDrivers());}// Izņēmuma situāciju apstrāde.catch(Exception e) {e.printStackTrace();} }}

4

Page 5: JDBC izmantošanas tests  Web view01/11/2015 · // java.io – lai varētu nolasīt no ... // it means that your .jar file (which contains ... {System.out.println

Java application exampleMethod registerDriver use

import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;// Alternate writing: import java.sql.*;

public class ConnectionWithOracleDB{public static void main(String[] args) {try {// Load Oracle JDBC driverDriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());System.out.println("Oracle DBS driver detected.");// Connection creationConnection conn= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:BAZE1", "system", "Janis1946");System.out.println("Connection with DB.");// QueryStatement query =conn.createStatement();ResultSet res = query.executeQuery("select F_NAM from FIRMS");res.next();String s = res.getString(1);System.out.println("Firms name = " + s);query.close();conn.close(); } catch (Exception e) {// Exception situationSystem.out.println("Is problem:" + e); } } }

5

Page 6: JDBC izmantošanas tests  Web view01/11/2015 · // java.io – lai varētu nolasīt no ... // it means that your .jar file (which contains ... {System.out.println

Application exampleClass OracleDataSource use

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/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

Page 7: JDBC izmantošanas tests  Web view01/11/2015 · // java.io – lai varētu nolasīt no ... // it means that your .jar file (which contains ... {System.out.println

Application exampleClass Class.forName use

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

Page 8: JDBC izmantošanas tests  Web view01/11/2015 · // java.io – lai varētu nolasīt no ... // it means that your .jar file (which contains ... {System.out.println

8

Page 9: JDBC izmantošanas tests  Web view01/11/2015 · // java.io – lai varētu nolasīt no ... // it means that your .jar file (which contains ... {System.out.println

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!"; } } }

9

Page 10: JDBC izmantošanas tests  Web view01/11/2015 · // java.io – lai varētu nolasīt no ... // it means that your .jar file (which contains ... {System.out.println

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(); } }

10

Page 11: JDBC izmantošanas tests  Web view01/11/2015 · // java.io – lai varētu nolasīt no ... // it means that your .jar file (which contains ... {System.out.println

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); } }

11

Page 12: JDBC izmantošanas tests  Web view01/11/2015 · // java.io – lai varētu nolasīt no ... // it means that your .jar file (which contains ... {System.out.println

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 { … } }

12

Page 13: JDBC izmantošanas tests  Web view01/11/2015 · // java.io – lai varētu nolasīt no ... // it means that your .jar file (which contains ... {System.out.println

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!");}}}

Fails datubaze.properties:

jdbc.drivers=oracle.jdbc.driver.OracleDriverjdbc.url=jdbc:oracle:thin:@localhost:1521:BAZEjdbc.username=systemjdbc.password=janis

13

Page 14: JDBC izmantošanas tests  Web view01/11/2015 · // java.io – lai varētu nolasīt no ... // it means that your .jar file (which contains ... {System.out.println

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.

import java.sql.*;class dbAccess {public static void main (String args []) throws Exception {Class.forName ("oracle.jdbc.OracleDriver");Connection conn = DriverManager.getConnection("jdbc:oracle:oci8:@BAZE", "system", "janis");// or oci7 @TNSNames_Entry, userid, passwordStatement stmt = conn.createStatement();ResultSet rset = stmt.executeQuery("select BANNER from SYS.V_$VERSION");while (rset.next())System.out.println (rset.getString(1)); // 1. kolonas izvade}}

14