JDBC Java and Databases. RHS – SOC 2 JDBC JDBC – Java DataBase Connectivity An API (i.e. a set of classes and methods), for working with databases in.

Slides:



Advertisements
Similar presentations
Java Database Connectivity (JDBC). 2/24 JDBC (Java DataBase Connectivity) - provides access to relational database systems JDBC is a vendor independent.
Advertisements

JDBC. Java Database Connectivity (JDBC) Use the java.sql package to query and update the database. JDBC is an API that allows java to communicate with.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 13 Introduction to SQL Programming Techniques.
Distributed Application Development B. Ramamurthy.
1 JDBC Java Database Connectivity. 2 c.pdf
Java Database Connectivity (JDBC) java.sql package to query and update the database. JDBC is an API that allows java to communicate with a database server.
1 Lecture 29 More on JDBC Overview  Objectives of this lecture  JDBC and its Drivers  Connecting to Databases (Java’s Connection class)  Querying a.
1 Design patterns Lecture 4. 2 Three Important skills Understanding OO methodology Mastering Java language constructs Recognizing common problems and.
JDBC / ODBC JDBC is the java API that facilitate interaction of a java application with the DBMS. FIRST APPROACH:
Advance Computer Programming Java Database Connectivity (JDBC) – In order to connect a Java application to a database, you need to use a JDBC driver. –
Getting connected.  Java application calls the JDBC library.  JDBC loads a driver which talks to the database.  We can change database engines without.
CSCI 6962: Server-side Design and Programming
1 Java Database Connection (JDBC) There are many industrial-strength DBMS's commercially available in the market. Oracle, DB2, and Sybase are just a few.
JDBC. What is JDBC JDBC is an acronym for –Java Data Base Connectivity. It allows java/jsp program to connect to any database.
© Wang Bin 2004 JDBC ----Java Database Connectivity.
CSE470 Software Engineering Fall Database Access through Java.
Beginning Databases with JDBC Mike Bradley Adapted from and notes by Kevin Parker, Ph.D.
Java Database Connectivity (JDBC) Introduction to JDBC JDBC is a simple API for connecting from Java applications to multiple databases. Lets you smoothly.
Database Programming in Java Corresponds with Chapter 32, 33.
© D. Wong  Indexes  JDBC  JDBC in J2EE (Java 2 Enterprise Edition)
MySQL, Java, and JDBC CSE 3330 Southern Methodist University.
JDBC Tutorial MIE456 - Information Systems Infrastructure II Vinod Muthusamy November 4, 2004.
Designing and Developing WS B. Ramamurthy. Plans We will examine the resources available for development of JAX-WS based web services. We need an IDE,
Servlets Database Access. Agenda:  Setup Java Environment  Install Database  Install Database Drivers  Create Table and add records  Accessing a.
JDBC Java and Databases, including Postgress. JDBC l Developed by Industry leaders l Three main goals: –JDBC should be an SQL-level API –JDBC should capitalize.
Stored procedures1 Stored procedures and functions Procedures and functions stored in the database.
JDBC. JDBC stands for Java Data Base Connectivity. JDBC is different from ODBC in that – JDBC is written in Java (hence is platform independent, object.
1 JDBC Aum Amriteshwaryai Namah. 2 2 JDBC – Java DataBase Connectivity.
SQL introduction. RHS – SOC 2 Getting data out of databases Databases are ”just” containers of data We could – in principle – just put data in a text.
JSP program that interacts with HTML form & Access Data Base.
Accessing Database using JDBC. JDBC Objectives Gain basic knowledge of Java JDBC Become familiar with the basics of interacting with a database using.
Chapter 25 Databases. Chapter Scope Database concepts Tables and queries SQL statements Managing data in a database Java Foundations, 3rd Edition, Lewis/DePasquale/Chase25.
Java Database Connectivity (JDBC). Topics 1. The Vendor Variation Problem 2. SQL and Versions of JDBC 3. Creating an ODBC Data Source 4. Simple Database.
Copyright  Oracle Corporation, All rights reserved. 7 Accessing a Database Using SQLJ.
Copyright © 2002 ProsoftTraining. All rights reserved. Building Database Client Applications Using JDBC 2.0.
JDBC. Java.sql.package The java.sql package contains various interfaces and classes used by the JDBC API. This collection of interfaces and classes enable.
Li Tak Sing COMPS311F. Database programming JDBC (Java Database Connectivity) Java version of ODBC (Open Database Connectivity) ODBC provides a standard.
UNIT III - JDBC JDBC Overview – JDBC implementation – Connection class – Statements - Catching Database Results, handling database Queries. Networking–
16 Java Database Connectivity. 2 Understand the JDBC Understand the steps of the JDBC: 1.) Importing packages 2.) Opening a connection to a database 3.)
Database Access Using JDBC BCIS 3680 Enterprise Programming.
JDBC CS 260 Database Systems. Overview  Introduction  JDBC driver types  Eclipse project setup  Programming with JDBC  Prepared statements  SQL.
CSI 3125, Preliminaries, page 1 JDBC. CSI 3125, Preliminaries, page 2 JDBC JDBC stands for Java Database Connectivity, which is a standard Java API (application.
Access Databases from Java Programs via JDBC Tessema M. Mengistu Department of Computer Science Southern Illinois University Carbondale
Basics of JDBC.
Basics of JDBC Session 14.
Ch. NoNameMarks 01AWT24 02Networking18 03JDBC20 04Swing18 05Servlet20 Advance Java Programming.
Database Programming With Java & JDBC Reading: DD Ch. 18, pp al/jdbc/index.html, or anything covering JDBC.
Introduction to JDBC Instructor: Mohamed Eltabakh 1.
JDBC Java and Databases. SWC – JDBC JDBC – Java DataBase Connectivity An API (i.e. a set of classes and methods), for working with databases in.
1 JDBC – Java Database Connectivity CS , Spring 2010.
Intro to JDBC Joseph Sant Applied Computing and Engineering Sciences Sheridan ITAL.
JDBC Statements The JDBC Statement, CallableStatement, and PreparedStatement interfaces define the methods and properties that enables to send SQL or PL/SQL.
Copyright © 2016 Ramez Elmasri and Shamkant B. Navathe.
Introduction to Database Programming with Python Gary Stewart
CS320 Web and Internet Programming Database Access with JDBC Chengyu Sun California State University, Los Angeles.
JSP and DB.
Database: JDBC Overview
DEPTT. OF COMP. SC & APPLICATIONS
CS3220 Web and Internet Programming Database Access with JDBC
Lec - 14.
ODBC, OCCI and JDBC overview
JDBC – Java Database Connectivity
CS320 Web and Internet Programming Database Access with JDBC
Database JDBC Overview CS Programming Languages for Web Applications
Advanced Web Automation Using Selenium
Developing a Model-View-Controller Component for Joomla Part 3
Using a Database with JDBC
JDBC Example.
CS3220 Web and Internet Programming Database Access with JDBC
CS3220 Web and Internet Programming Database Access with JDBC
Presentation transcript:

JDBC Java and Databases

RHS – SOC 2 JDBC JDBC – Java DataBase Connectivity An API (i.e. a set of classes and methods), for working with databases in Java code Primary goal: to make the Java code (almost) independent of the actual data- base being used Encapsulate what varies…

RHS – SOC 3 JDBC JDBC allows us to use data from a database with relative ease in a Java program Main steps –Connect to a data source –Execute queries on the database –Store result of query in a data structure –Process the data according to business logic

RHS – SOC 4 JDBC There is nothing ”magical” about the JDBC classes and methods – it is just yet another part of the library Is found in java.sql.* packages

RHS – SOC 5 JDBC - connecting Making a connection to a data source (database) in done like this. Connection conn = DriverManager.getConnection(url); So… what is the ”url”..?

RHS – SOC 6 JDBC - connecting In general, we can connect to a data source ”anywhere on the web” Therefore, the data source is specified as a URL (uniform resource locator) What is the URL for a database on our own computer…?

RHS – SOC 7 JDBC - connecting URL

RHS – SOC 8 JDBC - connecting

RHS – SOC 9 JDBC - connecting Simply copy the URL into the connection statement: Connection conn = DriverManager.getConnection( "jdbc:derby://localhost:1527/MovieInformation"); In practice, URL can be read from a setup file, registry, etc..

RHS – SOC 10 JDBC - connecting If connection succeeds, we have a connection object available Actual data source is now abstracted away… We can now execute statements on the connection object

RHS – SOC 11 JDBC - statements We can execute various types of statements on the connection object First, we must create a statement object Statement stmt = conn.createStatement();

RHS – SOC 12 JDBC - statements On the statement object, we can call various methods, that perform an operation on the database In particular, we can execute an SQL query on the statement object

RHS – SOC 13 JDBC - queries ResultSet srs = stmt.executeQuery("SELECT Title, prodYear FROM Movie");

RHS – SOC 14 JDBC - queries The return value of executeQuery is a result set (type ResultSet ) The result set object contains the result of the query, i.e the set of rows returned by the query A result set is somewhat similar to an ArrayList, but with some important differences

RHS – SOC 15 JDBC - queries A result set object has a cursor, which points to a specific row in the set The cursor can be moved in the result set, by calling certain methods For instance the next() method –Returns a boolean value (any more rows?) –Advances the cursor one row

RHS – SOC 16 JDBC - queries Typical processing of a result set: while (srs.next()) { // What should we do here…? }

RHS – SOC 17 JDBC - queries The precise processing of the result set is – of course – application dependent Typically, we will here map the result to the object model in the application This is a topic in itself… Typically, some application-specific class acts as a ”bridge” between relational model and object model

RHS – SOC 18 JDBC - queries while (srs.next()) { String title = srs.getString("Title"); int year = srs.getInt("prodYear"); objectModel.addMovie(new Movie(title, year)); }

RHS – SOC 19 JDBC - queries The ResultSet methods enable us to retrieve the actual field values from each row in the result set Many more details about result set methods are found at

RHS – SOC 20 JDBC – exercise 1 In this exercise, you must use the methods available in the JDBC library 1.Make sure you have the MovieInformation database on your own computer. If not, create it and use the SQL code in the file Movie- InformationSQL.txt to create the tables and populate them with data 2.Obtain a connection to the MovieInformation database. You need the URL of the database to do this. You will also need to handle exceptions in the code 3.When you have successfully obtained a connection (no exceptions occurred), create a statement object. On the statement object, execute the query ’SELECT * FROM movie’ 4.When you have successfully executed the query (no exceptions occurred), process the ResultSet object, by printing out some of the fields for each record in the set

RHS – SOC 21 JDBC - updates It is fairly straightforward to retrieve data from a database using JDBC –Create a connection object, using a URL –Create a statement object –Execute a query on the statement object –Process the result set returned from the query What if we wish to update some data…?

RHS – SOC 22 JDBC - updates It it very important to realise, that the result set object and the underlying database are still ”connected” to each other If we update a value in the result set, the corresponding field in the database is also updated! This is the beauty of JDBC!

RHS – SOC 23 JDBC - updates A few technicalities… A result set has some properties with regards to –Freedom of cursor movement –Ability to update database These properties are specified when we create the statement object

RHS – SOC 24 JDBC - updates In order to let us update the data, we must create the statement object like: Statement stmt = conn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

RHS – SOC 25 JDBC - updates while (srs.next()) { String title = srs.getString("Title"); int year = srs.getInt("prodYear");... srs.updateInt("prodYear", year + 30); srs.updateRow(); } This also updates the DB

RHS – SOC 26 JDBC - insertion A result set also allows us to insert a new record into the result set – and thereby into the database The procedure requires a few steps: –Move the cursor to a special row called the ”insert row” –Set field values by using the update… methods –Finally, the row is actually inserted

RHS – SOC 27 JDBC - insertion srs.moveToInsertRow(); srs.updateString("TITLE", "District 9"); srs.updateString("COUNTRY", "UK"); srs.updateString("GENRE", "Sci-Fi"); srs.updateInt("MOVIEID", 11); srs.updateInt("PRODYEAR", 2009); srs.updateInt("OSCARS", 0); srs.insertRow();

RHS – SOC 28 JDBC - deletion Finally, it is also possible to delete a row from the result set – and thereby also from the database srs.deleteRow(); Deletes the row to which the result set cursor currently points

RHS – SOC 29 JDBC – exercise 2 In this exercise, you must (again) use the methods available in the JDBC library 1.First, you must have completed the steps in exercise 1 2.Change the statement object, such that it allows for result sets that can be scrolled and updated 3.In the processing of the records, now also update the movie records, by adding 2 to the numbers of Oscars won by each movie 4.After having successfully updated the records (no exceptions occurred), use Derby to check that the records were indeed updated 5.Finally, also try to insert a couple of new records into the movie and actor tables (follow the procedure described in the presentation) 6.After having successfully inserted the records (no exceptions occurred), use Derby to check that the records were indeed inserted

RHS – SOC 30 Keeping models in sync We could – in principle – just execute queries, updates, etc. directly on the database, without using result sets It is much more efficient to use result sets But…when and how do we update…?

RHS – SOC 31 Keeping models in sync Object model Result set Appli- cation DB

RHS – SOC 32 Keeping models in sync Questions to ponder –When do we load the data initially? Application start-up When object model is accessed User initiative –When (how often) is data saved? Application shutdown Upon every change to object model User initiative

RHS – SOC 33 Keeping models in sync Questions to ponder (continued) –How much data do we save, when we save Everything (brute force). Inefficient, but easy to implement in code Difference between current object model, and object model at last save. Efficient, but requires more book-keeping

RHS – SOC 34 JDBC – exercise 3 1.Consider how a class model for movie information - containing information about movies, actors and casting – should be designed 2.How should the class model and the database interact? What happens, when the class model is updated (e.g by a user through a suitable GUI)? 3.Try to consider different alternatives with regards to when to update the database, and what to update 4.If you have time left, try to outline Java code for interaction between the class model and the database