Presentation is loading. Please wait.

Presentation is loading. Please wait.

COMP201 Java Programming Topic 15: Database Connectivity JDBC Reading: Chapter 4, Volume 2.

Similar presentations


Presentation on theme: "COMP201 Java Programming Topic 15: Database Connectivity JDBC Reading: Chapter 4, Volume 2."— Presentation transcript:

1 COMP201 Java Programming Topic 15: Database Connectivity JDBC Reading: Chapter 4, Volume 2

2 COMP201 Topic 15 / Slide 2 Objective & Outline l Objective: n Introduction: How to connect to and communicate with databases l Outline: n Database basics n Connecting to a database with JDBC n Querying and manipulating databases with JDBC

3 COMP201 Topic 15 / Slide 3 Database Basics l A (relational) database: a collection of tables n Attributes: names of columns n Records or entries: rows l Example: testdb.mdb n 4 tables

4

5

6 COMP201 Topic 15 / Slide 6 Database Basics l Database management systems (DBMS): allow user to manipulate data Many DBMS available. We will use Microsoft Access, which comes with Microsoft Office.

7 COMP201 Topic 15 / Slide 7 Database Basics l Task: n Find all books by “Fox, David”, list author name, title, publisher name and price l The query involves all four tables and

8 COMP201 Topic 15 / Slide 8 Database Basics l The query: Select2 in testmd.db

9 COMP201 Topic 15 / Slide 9 Database Basics l Task: Find all books published by McGraw-Hill n Select3 in testdb

10 COMP201 Topic 15 / Slide 10 Database Basics l Update: n Modify records n Insert new records n Delete records n Create new Table n ….

11 COMP201 Topic 15 / Slide 11 Database Basics l So far, interact with database manually n Usually interact with databases via application programs l The structured query language (SQL): n Standard language for accessing databases:. Query database using SELECT statements n Select all elements in the Books table: SELECT * FROM Books n Select only some columns SELECT ISBN, Price, Title FROM Books

12 COMP201 Topic 15 / Slide 12 Database Basics l Select from multiple tables n Find all books by “Fox, David”, list author name, title, publisher name and price SELECT Authors.Name, Books.Title, Publishers.Name, Books.Price FROM Books, Authors, Publishers, BooksAuthors WHERE Publishers.Publisher_Id = Books.Publisher_Id AND Books.ISBN = BooksAuthors.ISBN AND BooksAuthors.Author_Id = Authors.Author_Id AND Authors.Name= 'Fox, David' n When we select from multiple tables, a joint table is formed. The joint table consists of ALL possible combinations of rows from all the tables. n The first three conditions in the WHERE clause constrain the query to legal combinations.

13 COMP201 Topic 15 / Slide 13 Database Basics l Update: n Slash prices for McGraw-Hill books by 0.5 UPDATE Books SET Price = Price -0.5 WHERE Books.Publisher_Id = ‘ 00791 ’ n A more intuitive way UPDATE Books SET Price = Price -0.5 WHERE Books.Publisher_Id = ( SELECT Publisher_Id FROM Publishers WHERE Name = 'McGraw-Hill ‘ )

14 COMP201 Topic 15 / Slide 14 Objective & Outline l Outline: n Database basics n Connecting to a database with JDBC n Querying and manipulating databases with JDBC

15 COMP201 Topic 15 / Slide 15 l JDBC-to-database communication path Connecting to Databases with JDBC Will discuss this path using testdb.mdb Textbook discusses this path using testdb.mdb Java Application JDBC Driver Manager JDBC/ODBC bridge Vendor supplied JDBC drivers ODBC Database

16 COMP201 Topic 15 / Slide 16 Connecting to Databases with JDBC l JDBC -- Java Database Connectivity kit : Programs written according to the JDBC API would talk to the JDBC driver manager, which in turn, would use the drivers that were plugged into it at that moment to talk to the actual database. JDBC consists of two layers. 1.JDBC API, it communicates with the JDBC manager driver API, sending it the various SQL statements. 2.The manager should communicate with the various third-party drivers that actually connect to the database and return the information from the query or perform the action specified by the query. Package: java.sql DriverManager : class for making connection to databases Connection : interface for communicating with databases once connection has been established. Other interfaces: Statement, ResultSet, DatabaseMetaData, ResultSetMetaData, SQLException, ….

17 COMP201 Topic 15 / Slide 17 l To establish connection, DBMS must provide JDBC drivers PointBase Mobile Edition : DBMS in java by PointBase Inc. –JDBC driver: com.pointbase.jdbc.jdbcDriver Microsoft Access & many other DBMS –Has a C interface called ODBC (Open DataBase Connectivity) –The JDBC/ODBC bridge sun.jdbc.odbc.JdbcOdbcDriver provided by Sun See java.sun.com/products/jdbc/driverdesc.html for DBMS with JDBC drivers Connecting to Databases with JDBC

18 COMP201 Topic 15 / Slide 18 Next: Register testdb.mdb with the ODBC Data Source Administrator on your PC. Register JDBC driver ( sun.jdbc.odbc.JdbcOdbc Driver ) with DriverManager n Making connection Connecting to Databases with JDBC Java Application JDBC Driver Manager JDBC/ODBC bridge Vendor supplied JDBC drivers ODBC Database

19 COMP201 Topic 15 / Slide 19 Register testdb.mdb with the ODBC Datasource Administer on your PC. Instructions: Open Control Panel and select ODBC Data Sources [32bit] (under Administrative Tools ). You will get the window shown on the right. Click on Add. Connecting to Databases with JDBC

20 COMP201 Topic 15 / Slide 20 Select Microsoft Access Driver and then click on Finish. You will get the window shown on the right. Provide a name for the data source, say TestDB. Click and Select and select testdb.mdb from file system (picture on the next page) Connecting to Databases with JDBC

21 COMP201 Topic 15 / Slide 21 n Then you see the picture on the right. Simply click on OK and the registration is complete. Thereafter the database testdb.mdb is known as TestDB to the ODBC Datasource Adminstrator. For JDBC, URL for the database is: jdbc:odbc:TestDB Connecting to Databases with JDBC

22 COMP201 Topic 15 / Slide 22 Register JDBC driver ( sun.jdbc.odbc.JdbcOdbcDriver ) with DriverManager n Method 1: –set system property( ~/.hotjava/properties ) System.setProperty("jdbc.drivers", "sun.jdbc.odbc.JdbcOdbcDriver"); –At initialization, DriverManager loads all driver classes referenced in jdbc.drivers n Method 2: Load driver explicitly at any time Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); A call to forName("X") causes the class named X to be initialized. Connecting to Databases with JDBC Java Application JDBC Driver Manager JDBC/ODBC bridge Vendor supplied JDBC drivers ODBC Database

23 COMP201 Topic 15 / Slide 23 l Making connection Connection con= DriverManager.getConnection("jdbc:odbc:TestDB", "", ""); java.sql.Connection : represents a connection to a DB. l Several drivers might have been registered with the DriverManager. The DriverManager will find one that can use the protocol on the database URL. Connecting to Databases with JDBC URL for database DB password DB user name

24 COMP201 Topic 15 / Slide 24 l Connection examples ConnectMe1.java : register JDBC driver using the first method ConnectMe.java : register JDBC driver using the second method Note. Examples (including testdb.mdb ) in this topic are packaged in the zip. See the code page Connecting to Databases with JDBC

25 COMP201 Topic 15 / Slide 25 Objective & Outline l Outline: n Database basics n Connecting to a database with JDBC n Querying and manipulating databases with JDBC

26 COMP201 Topic 15 / Slide 26 Querying and Manipulating Databases with JDBC getConnection returns an object of java.sql.Connection Connection con = DriverManager.getConnection("jdbc:odbc:TestDB","", ""); To execute SQL queries and commands, we first need to get a java.sql.Statement (interface in java.sql) object Statement stmt = con.createStatement(); The object used for executing a static SQL statement and returning the results it produces. Next: n Queries n Commands (updates)

27 COMP201 Topic 15 / Slide 27 l Form query as a string String query = "SELECT ISBN, Title, Price " + "FROM Books"; Call the executeQuery method of the Statement interface ResultSet rs = stmt.executeQuery( query ); Which returns an object of the java.sql.ResultSet interface. n A table of data representing a database result set, which is usually generated by executing a statement that queries the database. l Analysis of result: while (rs.next()) { for (int i = 1; i <= 3; i++) System.out.print( rs.getString(i) + " | "); System.out.println(""); } Querying and Manipulating Databases with JDBC Select1.java Database column number starts at 1

28 COMP201 Topic 15 / Slide 28 l More complex queries Select2.java: Find all books by David Fox and print out author name, title, publisher name, and price. String query = "SELECT Authors.Name, Books.Title, Publishers.Name, Books.Price " + "FROM Books, Authors, Publishers, BooksAuthors " + "WHERE Publishers.Publisher_Id = Books.Publisher_Id " + "AND Books.ISBN = BooksAuthors.ISBN " + "AND BooksAuthors.Author_Id = Authors.Author_Id " + "AND Authors.Name= 'Fox, David' "; Querying and Manipulating Databases with JDBC

29 COMP201 Topic 15 / Slide 29 l More complex queries Select3.java: Find all books published by McGraw-Hill and print out author name, title, publisher name, and price String query = "SELECT Authors.Name, Books.Title, Publishers.Name, Books.Price " + "FROM Books, Authors, Publishers, BooksAuthors " + "WHERE Publishers.Publisher_Id = Books.Publisher_Id " + "AND Books.ISBN = BooksAuthors.ISBN " + "AND BooksAuthors.Author_Id = Authors.Author_Id " + "AND Publishers.Name= 'McGraw-Hill' "; Querying and Manipulating Databases with JDBC

30 COMP201 Topic 15 / Slide 30 l Commands: modify records, insert new records, delete records, …. l Form command as a string String command = "UPDATE Books " + "SET Price = Price - 0.5" + " WHERE Books.Publisher_Id = 'McGraw-Hill'"; Call the executeUpdate method of the Statement interface stmt.executeUpdate( command ); Querying and Manipulating Databases with JDBC Update.java


Download ppt "COMP201 Java Programming Topic 15: Database Connectivity JDBC Reading: Chapter 4, Volume 2."

Similar presentations


Ads by Google