Download JDBC connection object. - Datu bāzes tehnoloģijas

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Concurrency control wikipedia , lookup

Database wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Database model wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Relational model wikipedia , lookup

Clusterpoint wikipedia , lookup

SQL wikipedia , lookup

Open Database Connectivity wikipedia , lookup

PL/SQL wikipedia , lookup

Oracle Database wikipedia , lookup

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