Setting Up Jdbc & Odbc

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Setting Up Jdbc & Odbc as PDF for free.

More details

  • Words: 1,729
  • Pages: 6
Setting up Oracle JDBC Authors: Lichu Dang, Lixin Yu The steps to enable your Java program to talk to Oracle database: 1. Install Oracle and make sure it is running ok. (ie. you can connect to Oracle by sqlplus) 2. Download the JDBC driver from Oracle at the following url. http://otn.oracle.com/software/tech/java/sqlj_jdbc/content.html 3. Typically, the JDBC driver file you should download is named class12.zip. If you want to know the details of the JDBC drivers on the Oracle site. Here is some info. JDBC drivers can be classified into 4 types, ranging from pure Java driver to thin Java/heavy native driver. The class12.zip driver we chosen is the pure Java type. And for different type, there are different drivers for different Oracle versions and JDK versions. Pick the one that match your environment. I assume we are using Java 2, so we should use the class12.zip driver.

4. Put this class12.zip file to your Java classpath. You should know how to do this. If not, follow the steps: For Windows 2000 (Windows 9x or XP should be similar): 1. 2. 3. 4. 5. 6. 7. 8. 9.

save class12.zip to C:\sjsu\cs157a\jdbc right click My Computer, choose Properties, click Advanced tab, click Environment Variables button, choose the variable CLASSPATH in the User variables table, click Edit button in the variable value text field, append ;C:\sjsu\cs157a\jdbc\classes12.zip if CLASSPATH is not present in the table, click Add button and type CLASSPATH in the variable name and type C:\sjsu\cs157a\jdbc\classes12.zip in the variable value box.

For Unix or Linux: 10. save class12.zip to /usr/jdbc

11. add the line setenv CLASSPATH $CLASSPATH:/usr/jdbc to your .login file. 12. relogin to your shell 2. Do a short simple test by issuing command in DOS or a shell: java oracle.jdbc.driver.OracleDriver You will get an error, but don't panic. If your error said: Exception in thread "main" java.lang.NoSuchMethodError: main Congradulation, you have setup JDBC driver correctly, despite what the error said. But if your error said: Exception in thread "main" java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleDrivera Your driver has not been setup correctly. Go back and review steps from 1 to 4.

3. Done JDBC setup. 4. Start to program and connect to Oracle through JDBC driver. Following is a simple test program to actually connect to Oracle and retrieve some data. (or download it here). 5. 6. import java.sql.*; 7. import oracle.jdbc.driver.*; 8. public class DbTest { 9. public static void main (String args[]) throws Exception { 10. 11. // Load the Oracle JDBC driver 12. DriverManager.registerDriver 13. (new oracle.jdbc.driver.OracleDriver()); 14. 15. // connect through driver 16. Connection conn = DriverManager.getConnection 17. ("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","scott","tiger"); 18. 19. // Create Oracle DatabaseMetaData object 20. DatabaseMetaData meta = conn.getMetaData(); 21. // gets driver info: 22. System.out.println("JDBC driver version is " + meta.getDriverVersion()); 23. 24. // Create a statement 25. Statement stmt = conn.createStatement(); 26. 27. // Do the SQL "Hello World" thing 28. ResultSet rset = stmt.executeQuery("SELECT TABLE_NAME FROM USER_TABLES"); 29. 30. while (rset.next()) 31. System.out.println(rset.getString(1));

32. 33. 34. 35. 36. 37. 38. 39.

// close the result set, the statement and disconnect rset.close(); stmt.close(); conn.close(); System.out.println("Your JDBC installation is correct."); } }

40. Compile and run the above DbTest. You should get the message Your JDBC installation is correct. If not, please see the following troubleshootings: 1. If you get an error message similar to this: The system cannot find the file specified, That means that you haven’t told the JDBC where you store your file. Assume that the path to reach your file(s) is C:\cs157aProject\, you have to reset your CLASSPATH as the following: C:\sjsu\cs157a\jdbc\classes12.zip;C:\cs157aProject\ Refer to step 4 to reset your CLASSPATH. If you still have problem of compiling your program, restart your computer. Note: Once you setup the CLASSPATH, all your java programs have to store under the same directory to compile, no matter you use JDBC or not. 2. If you get an error message similar to this: Exception in thread "main" java.sql.SQLException: Io exception: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=134238208)(ERR=12505)(ERROR _STACK=(ERROR=(CODE=12505)(EMFI=4)))) That means your database name in the code is not correct. Change the ORCL in your connection string in the DbTest.java to the correct database name. Recall that you had created your database name when installing Oracle. If you don't remember it, you could search your Oracle installation directory for a file called TNSNAMES.ORA and open it. Find the SID value, that is your database name. 3. If you get the error message: Exception in thread "main" java.sql.SQLException: ORA-01017: invalid username/pa ssword; logon denied That obviously means your user name or password is not correct. scott/tiger is the default login to Oracle database, but you may have changed it while in Oracle installation. 4. If you get this error: Exception in thread "main" java.sql.SQLException: Io exception: The Network Adap ter could not establish the connection

That hints your Oracle TNS listener service may not have been started or your port number is not correct. Go to Windows Services console and start the Oracle TNS listener service if it is not already started. And check your Oracle database listening port number.

41. Once the DbTest program runs correctly, you could start coding your own Java Database program. To make a good looking project, you should have knowledge of Java GUI programming such as Swing, AWT or Applet. Here we only get into details of the database programming portion. 1. To connect through JDBC, the first thing you need is to load the JDBC driver to your program. Here is how you do it: DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); This loaded driver enables you to make a connection to Oracle database. 2. The next thing you would do is to make the actual connection: Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORCL"," scott","tiger"); This tells the driver manager to create a connection to a database. The long parameter here is the essential part of connecting operation. 1. The portion jdbc:oracle:thin instructs the driver manager to use the Oracle thin type jdbc driver, which is exactly the one we loaded in the previous step. 2. The @127.0.0.1 indicates the database host that you are connecting to. Here I used the local machine IP address. You could change it to a remote machine name such as @sigma.mathcs.sjsu.edu, if that is the Oracle instance you want to connect to. 3. The number 1521 is the port number of the Oracle database. The default when Oracle is installed is to listen to port #1521, but it is configurable, so make sure your code is using the right number. 4. The second and third parameters are the username and password for your Oracle database.

3. Once the connection is made, you may want to start issuing your SQL statement to Oracle within your code. You may then create a java.sql.Statement object by writing: Statement stmt = conn.createStatement(); 4. Using the Statement object, you can then construct your SQL statement and execute it. The result of a SQL statement will be assigned to a ResultSet object. String sqlString = "SELECT * FROM SUPPLIER"; ResultSet rset = stmt.executeQuery(sqlString);

5. If your SQL statement runs successfully, you will be able to walk through the obtained ResultSet object to get result details. Here is one example: 6. int numCols = 4; // there are 4 columns in SUPPLIER table 7. while (rset.next()) 8. { 9. // walk through each row 10. for (int i = 1; i<=numCols; i++) 11. { 12. // print each columen 13. System.out.println(rset.getString(i) + " "); 14. } 15. System.out.println(); }

42. A complete database demo with GUI can be downloaded here: JdbcDemo.zip

Setting up a data source (ODBC) You need to create a data source to be able to allow C to talk to Oracle • •

• •

• • • • •

Select Microsoft ODBC administrator from Oracle/Network Adminstration Data source types o Select the user DSN tab if the data source will only be used from your PC for the logged on username (Typically, entries in this tab are added by applications that are installed locally and that use a data source, such as Microsoft Office) else select the System DSN tab. o The System DSN tab allows you to configure a specific data source to a clientserver database. Using the System DSN tab to configure a connection will write an entry for that connection in the registry in HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\ODBC Data Sources. The advantage of this is faster access, since it is in the registry. The disadvantage is that it will have to be created on each local machine. o The File DSN tab does the same thing as the System DSN tab, but the File DSN tab will create a file stored on the local server with the extension .dsn on the local drive in the folder at C:\Program Files\Common Files\ODBC\Data Sources. The advantage of this approach is that the file can be easily copied to other machines. Press Add You will be asked which driver to use. Choose Oracle ODBC Driver NOT Microsoft ODBC for Oracle since this is the driver that you have just installed and will not cause problems such as described in ODBC Problems Choose a data source name- can be the same as the data source service that you specified above eg cs157a or perhaps the username to be used Choose a description eg cs157a Give a data source service name. This must relate to the definition in the tnsnames.ora file eg sjsu Give the default username for that datasource Click OK

• • • • • • • •

You can now test the data source by using ODBC test from Oracle/Network Adminstration Press Connect Choose a data source from the Machine Data Source tab Give the passwd for the given service name and username Type some SQL eg select table_name from user_tables Press the Execute button and hopefully some data will appear If something goes wrong, test the service name by typing tnsping xxx on the Command Prompt found in Program /Accessories on the Start menu to check the database is up The Connection Pooling tab allows you to enable and configure connection pooling for a specified driver. Connection pooling uses a connection to a data source from a pool of connections, so that a connection does not have to be reestablished each time you access the data source. Unless you are having trouble establishing or maintaining a connection, you probably will not use this tab. Connection pooling timeout is set to 120 second by default.

Related Documents

Setting Up Jdbc & Odbc
November 2019 23
Odbc
May 2020 11
Setting Up Php
July 2020 3
Setting Up Modems
November 2019 13
Setting Up Eventmon.docx
December 2019 16