Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
1 Savienojuma izveidošana ar datu bāzi lietojot DriverManager.registerDriver import java.sql.*; public class SavienojumsArOracleDB{ public static void main(String[] args) {try { // Oracle JDBC draivera ielāde DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); System.out.println("Oracle DBS draiveris noteikts."); // Savienojuma izveidošana Connection savienojums= DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:BAZE", "system", "Janis1946"); System.out.println("Savienojums ar datu bāzi BAZE."); // JDBC draivera versijas noteikšana DatabaseMetaData meta = savienojums.getMetaData(); System.out.println("JDBC draivera versija: " + meta.getDriverVersion()); // Vaicājuma realizēšana Statement vaicajums =savienojums.createStatement(); ResultSet rezultats = vaicajums.executeQuery("select F_NOS from FIRMAS"); // Rezultāta izvade rezultats.next(); String s = rezultats.getString(1); System.out.println("Firmas nosaukums = " + s); vaicajums.close(); savienojums.close(); } catch (Exception e) { // Ir īpašā situācija System.out.println("Ir problēma:" + e); } } } 2 3 Savienojuma izveidošana ar datu bāzi lietojot DriverManager.registerDriver 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īšana String url = "jdbc:oracle:thin:system/Janis1946@//localhost:1521/BAZE"; datuAvots.setURL(url); // Savienojuma izveidošana savienojums = datuAvots.getConnection(); // Izpildāmās komandas norāde 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 izvade while (rezultats.next()) {teksts = rezultats.getString("F_NOS");} System.out.println ("1. firmas nosaukums : " + teksts); // Objektu aizvēršana rezultats.close(); komanda.close(); savienojums.close(); } } 4 Savienojuma noteikšana ar Oracle10g parametru vērtību To connect to an Oracle database, you need to create an instance of the java.sql.Connection object. The java.sql.Connection object is an interface, and you need an implementing class for it. Please remember that you do not need to implement this interface, because Oracle’s JDBC driver provides such an implementation. The following example uses an Oracle JDBC driver to connect to an Oracle database instance located at server SYSTEM and port number 1521 with an SID (Oracle database ID) called BAZE. To make sure you have the right values for the SID and port, you may view the F:\oracle\product\10.1.0\Db_1\network\admin\tnsnames.ora file: BAZE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = BAZE) ) ) 5 Savienojuma izveidošana ar datu bāzi lietojot OracleDataSource import java.sql.*; import oracle.jdbc.*; import oracle.jdbc.pool.OracleDataSource; // JDBC draivera versijas pārbaude class JDBCVersija{ public static void main (String args[]) throws SQLException{ OracleDataSource datuAvots = new OracleDataSource(); datuAvots.setURL("jdbc:oracle:thin:system/Janis1946@localhost:152 1:BAZE"); Connection savienojums= datuAvots.getConnection(); // Metadatu objekta DatabaseMetaData izveidošana DatabaseMetaData meta = savienojums.getMetaData(); System.out.println("JDBC draivera versija: " + meta.getDriverVersion());}} 6 Visu pieejamo JDBC draiveru nosaukumu izvade import java.util.*; import java.io.*; import java.sql.*; public class DriverManagerTool { // Visu pieejamo JDBC draiveru izvade public static String getLoadedDrivers() { java.util.Enumeration e = java.sql.DriverManager.getDrivers(); StringBuffer sb = new StringBuffer("<?xml versija='1.0'>"); sb.append("<pieejamie_draiveri>"); while (e.hasMoreElements()) { Object driver = e.nextElement(); appendXMLTag(sb, "draiveris", driver.toString());} sb.append("</pieejamie_draiveri>"); return sb.toString();} private static void appendXMLTag(StringBuffer buffer,String tagName,String value){ buffer.append("<"); buffer.append(tagName); buffer.append(">"); buffer.append(value); buffer.append("</"); buffer.append(tagName); buffer.append(">"); } // Draiveru nosaukumu izvade. public static void main(String[] args) throws Exception {try { Class.forName("oracle.jdbc.driver.OracleDriver"); System.out.println(getLoadedDrivers());} catch(Exception e) {e.printStackTrace();} }} run: <?xml versija='1.0'> <pieejamie_draiveri> <draiveris>sun.jdbc.odbc.JdbcOdbcDriver@17653ae</draiveris> <draiveris>oracle.jdbc.OracleDriver@1c247a0</draiveris> </pieejamie_draiveri> BUILD SUCCESSFUL (total time: 0 seconds) 7 Savienojuma izveidošana ar Oracle datu bāzes sistēmu 1. variants import java.sql.*; public class SavienojumsArOracleDB { public static void main(String[] args) {try { // Programmas bloks ar pārbaudi Connection savienojums = null; // Datu bāzes Oracle JDBC draivera ielāde no paketes oracle.jdbc.driver // Jābūt pieejai failam ojdbc14.jar no DBVS Oracle \oracle\10.1.0\Db_1\jdbc\lib\ojdbc14.jar String driverName = "oracle.jdbc.driver.OracleDriver"; Class.forName(driverName); // Savienojuma ar DBS izveidošana String serveris = "localhost"; String ports = "1521"; String sid = "BAZE"; String url = "jdbc:oracle:thin:@" + serveris + ":" +ports + ":" + sid; String lietotajs = "system"; String parole = "janis"; savienojums = DriverManager.getConnection(url, lietotajs, parole); System.out.println("Savienojums ar DB."); // Vaicājuma izveidošana un izpilde 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(); } catch (Exception e) { // Ir īpašā sistuācija System.out.println("Ir problema:" + e); } } } 8 Savienojuma izveidošana ar Oracle datu bāzes sistēmu 2. variants 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āde DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); System.out.println("Oracle DBS draiveris noteikts."); // Savienojuma izveidošana Connection savienojums= DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:BAZE", "system", "Janis1946"); System.out.println("Savienojums ar DB."); // Vaicājuma realizēšana 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(); } catch (Exception e) { // Ir īpašā situācija System.out.println("Ir problema:" + e); } } } Ja norādām nepareizu datu bāzes tabulas nosaukumu, piemēram, FIRMASS: 9 JDBC izmantošanas tests import java.sql.*; import oracle.jdbc.*; import oracle.jdbc.pool.OracleDataSource; // java.io – lai varētu nolasīt no // komandu rindas import java.io.*; public class JDBCParbaude{ public static void main(String args[ ]) throws SQLException, IOException { // Savienojuma informācijas pieprasīšana System.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); } else password = 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šana OracleDataSource ods = new OracleDataSource(); ods.setURL("jdbc:oracle:thin:system/janis@localhost:1521:BAZE"); ods.setUser(user); ods.setPassword(password); Connection conn = ods.getConnection(); System.out.println("ir izveidots."); // Create a statement Statement 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 ievades public static String readEntry(String prompt) { try { StringBuffer buffer = new StringBuffer(); System.out.print(prompt); System.out.flush(); // attīra buferi int c = System.in.read(); while (c != '\n') {buffer.append((char) c); c = System.in.read(); } return buffer.toString().trim(); } catch(IOException e){return "Problemas!"; } } } 10 Class to connect Oracle database import java.sql.*; import java.util.*; // import jdbc.util.DatabaseUtil; /** * 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 The following code shows some client code to work the BasicConnectionManager class just created. I will provide an output sample later. import java.sql.*; public class TestOracleConnectionManager { // Client program to create two connections. public static void main(String[] args) { try { // Step 1: Load the JDBC driver String driverName = "oracle.jdbc.driver.OracleDriver"; BasicConnectionManager.loadDriver(driverName);} catch (ClassNotFoundException e) { // 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. e.printStackTrace();} public static void main (String[] args){ try {...} catch (ClassNotFoundException e) { e.printStackTrace();} … try {…} catch (SQLException e) { e.printStackTrace();} finally { … } } Connection conn1 = null; Connection conn2 = null; String serverName = "TIGER"; String portNumber = "1521"; String sid = "scorpian"; String url = "jdbc:oracle:thin:@" + serverName + ":" + portNumber + ":" + sid; String username = "octopus"; String password = "octopus"; try { // Step 2: Create a connection to the database conn1 = BasicConnectionManager.getConnection(url, username, password); System.out.println("conn1="+conn1); System.out.println("-----------------------"); // Step 3: Create another connection to the database conn2 = BasicConnectionManager.getConnection(url, username, password); System.out.println("conn2="+conn2); System.out.println("-----------------------"); } catch (SQLException e) { // Could not connect to the database. Either database server is down or one/more of // your parameters is/are not specified correctly. e.printStackTrace();} finally { BasicConnectionManager.close(conn1); BasicConnectionManager.close(conn2);} } } The client output is as follows: conn1=oracle.jdbc.driver.OracleConnection@66e815 ----------------------conn2=oracle.jdbc.driver.OracleConnection@a37368 -----------------------