SQLJ: Java and Relational Databases

Size: px
Start display at page:

Download "SQLJ: Java and Relational Databases"

Transcription

1 SQLJ: Java and Relational Databases Phil Shaw, Sybase Inc. Brian Becker, Oracle Corp. Johannes Klein, Tandem/Compaq Mark Hapner, JavaSoft Gray Clossman, Oracle Corp. Richard Pledereder, Sybase Inc. Agenda Introduction SQLJ Part 0: Embedded SQL and Portability Profile SQLJ Part 1: Java Methods as SQL Procedures SQLJ Part 2: Java Classes as SQL Types 1

2 Java and Databases JDBC Java Database Connectivity API Widely Implemented SQLJ Java-Relational Database Technology Portability; Productivity; Java in the Database Leverages JDBC technology JavaBlend Object/Relational Mapping for Java The focus of this tutorial is on SQLJ SQLJ - The Consortium Structure is informal Participants include Oracle, IBM, Sybase, Tandem, JavaSoft, Microsoft, Informix, XDB Open to other participants Meetings Approximately every 3-4 weeks Hosted by one of the Bay Area resident vendors (Oracle, Sybase, Tandem, JavaSoft, Informix, etc.) Participants: Product Architects + SQL Standards people 2

3 SQLJ - The Technology Part 0: SQLJ Embeded SQL Mostly reviewed and implemented Integrated with JDBC API Oracle has placed Translator source into public domain Part 1: SQLJ Stored Procedures and UDFs Using Java static methods as SQL stored procedures & functions Leverages JDBC API Part 2: SQLJ Data Types Pure Java Classes as SQL ADTs Alternative to SQL3 Abstract Data Types SQLJ - The Standard Goal of the SQLJ Consortium is to create workable standards specifications in web time The Consortium is working with ANSI X3H2 on a fasttrack process for adopting SQLJ as a standard The Consortium also works with The Open Group on a set of conformance tests 3

4 SQLJ - Implementation Status SQLJ Embedded SQL Public-domain reference implementation available from Oracle Profile customizations available from Oracle, IBM, Sybase, Tandem, SQLJ Procedures Specifications mostly reviewed Implementations, e.g., Sybase Adaptive Server Anywhere 6.0, Oracle 8.1, IBM SQLJ Data Types Specifications through first pass Implementations, e.g., Sybase Adaptive Server Anywhere 6.0 JDBC SQLJ Features Support for user-defined, object data types Java Classes Persistent Java objects stored in the DBMS SQL3 types BLOB, CLOB, array, reference Structured and distinct types New type codes JAVA_OBJECT, STRUCT, BLOB, etc. Metadata for user-defined types int[] types = {Types.JAVA_OBJECT; ResultSet rs = dmd.getudts("catalog-name", "schema-name", "%", types); 4

5 JDBC SQLJ Features Objects-by-Value Java Classes as database types this just works SQL3 ADTs as database types Java mapping maintained per Connection Seamless extension of get/setobject() Statement stmt; ResultSet rs = stmt.executequery( "SELECT CUSTOMER FROM ACCOUNTS"); rs.next(); Customer cust = (Customer)rs.getObject(1); Agenda Overview and JDBC 2.0: New Features SQLJ Part 0: Embedded SQL and Portability Profile SQLJ Part 1: Java Methods as SQL Procedures SQLJ Part 2: Java Classes as SQL Types 5

6 SQLJ Part 0: SQL Embedded in Java Objectives Simple, concise language for embedding SQL statements in Java programs Standard to allow for assembly of binary components produced by different tools Standard to allow for binary portability across different database systems Advantages Ahead-of-time syntax and type checking Strongly typed cursors (iterators) Offline pre-compilation (for performance) Deployment-time customization (for binary portability and native pre-compilation) 6

7 SQLJ clauses SQLJ statements start with #sql SQLJ statements terminate with ; SQLJ host variables start with : SQL text is enclosed in curly braces {.. int n; #sql { INSERT INTO emp VALUES (:n) ; SQLJ more concise than JDBC // SQLJ int n; #sql { INSERT INTO emp VALUES (:n); // JDBC int n; Statement stmt = conn.preparestatement ( INSERT INTO emp VALUES (?) ); stmt.setint(1,n); stmt.execute (); stmt.close(); 7

8 Strongly typed cursors Positional binding to columns #sql public iterator ByPos (String, int); ByPos positer; String name = null; int year = 0; #sql positer = { SELECT name, year FROM people; while (true) { #sql { FETCH :positer INTO :name, :year; if (positer.endfetch()) break; // process name, year positer.close(); Strongly typed cursors (cont.) Named binding to columns #sql public iterator ByName (int year, String name); ByName namiter; String name = null; int year = 0; #sql namiter = { SELECT name, year FROM people; while (namiter.next()) { name = namiter.name(); year = namiter.year(); // process name, year namiter.close(); 8

9 Connection context SQLJ statements are associated with a connection context Context type identifies exemplar schema, e.g. views, tables, privileges #sql context Department; Department dept = newdepartment( jdbc:odbc:acme.cs ); int n; #sql [dept] { insert into EMP values (:n); Extensible SQLJ framework Database vendors plug-in SQL syntax checkers and semantic analyzers using SQLChecker framework Database vendors provide customizers to install SQLJ binaries (profiles) in target database Default SQLJ binaries run on any JDBC driver 9

10 SQLJ translator framework Java Class Files SQLJ program SQLChecker Java Frontend SQLJ Translator SQLJ Profiles Profile Customizer Utility SQLJ Customizations SQLJ JAR FILE SQLJ portability layers SQLJ Program Profile Entries JDBC SQL DB SQL DB SQL DB 10

11 Custom SQL execution SQLJ Program Profile Entries JDBC Customizations SQL Module SQL DB Stored procedure SQL DB TP service SQL DB Profile customization selection Profile Data source URLs Customizations 11

12 SQLJ profile objects Profile ProfileData EntryInfo TypeInfo Customization ConnectedProfile RTStatement SQLJ compilation phases Foo.sqlj Foo.java Foo.class SQLJ Translator Java Compiler 12

13 SQLJ translation phase Foo.sqlj SQLJ Translator SQLJ semantic analysis Foo.sqlj [Ctx0] {SQL0 SQLJ Translator describe(sql0) SQLChecker0 13

14 SQLJ semantic analysis Foo.sqlj [Ctx0] {SQL0 [Ctx0] {SQL1 SQLJ Translator describe(sql1) SQLChecker0 SQLJ semantic analysis Foo.sqlj [Ctx0] {SQL0 [Ctx0] {SQL1 (Ctx1) {SQL2 SQLJ Translator describe(sql2) SQLChecker0 SQLChecker1 14

15 SQLJ code generation Foo.sqlj [Ctx0] {SQL0 [Ctx0] {SQL1 [Ctx1] {SQL2 SQLJ Translator Foo.java SQLJ code generation Foo.jsql [Ctx0] {SQL0 [Ctx0] {SQL1 [Ctx1) ]SQL2 SQLJ Translator Foo.java Profile0: Profile0.ser 15

16 SQLJ code generation Foo.jsql [Ctx0] {SQL0 [Ctx0] {SQL1 [Ctx1] {SQL2 SQLJ Translator Foo.java Profile0: Profile0: Entry1 Profile0.ser Entry1 SQLJ code generation Foo.jsql [Ctx0] {SQL0 [Ctx0] {SQL1 [Ctx1] {SQL2 SQLJ Translator Foo.java Profile0: Profile0: Entry1 Profile1: Profile0.ser Entry1 Profile1.ser 16

17 17 Java compilation SQLJ Translator Foo.sqlj [Ctx0] {SQL0 [Ctx0] {SQL1 [Ctx1] {SQL2 Foo.java Profile0.ser Profile0: Profile0: Entry1 Entry1 Profile1.ser Profile1: Java Compiler Foo.class Profile0: Profile0: Entry1 Profile1: SQLJ packaging SQLJ Translator Foo.sqlj [Ctx0] {SQL0 [Ctx0] {SQL1 [Ctx1] {SQL2 Foo.java Profile0.ser Profile0: Profile0: Entry1 Entry1 Profile1.ser Profile1: Java Compiler Foo.class Profile0: Profile0: Entry1 Profile1: Foo.jar

18 SQLJ installation phase Foo.jar Foo.class Profile0.ser Profile1.ser SQLJ installation phase Foo.jar Foo.jar Foo.class Foo.class Customizer1 Profile0.ser Profile0.ser Customization Profile1.ser Profile1.ser 18

19 SQLJ installation phase Foo.jar Foo.jar Foo.class Foo.class Foo.jar Foo.class Customizer2 Customizer1 Profile0.ser Profile1.ser Profile0.ser Customization1 Profile1.ser Profile0.ser Customization1 Customization2 Profile1.ser Customization2 Agenda JDBC 2.0: New Features SQLJ Part 0: Embedded SQL and Portability Profile SQLJ Part 1: Java Methods as SQL Procedures SQLJ Part 2: Java Classes as SQL Types 19

20 SQLJ Part 1: Java methods as SQL procedures Use Java static methods as SQL stored procedures and functions. Advantage to SQL: Direct use of pre-written Java libraries. A procedural and scripting language for SQL. Portable across DBMSs. Deployable across tiers. Technical objectives Convenient for Java programmers. Not just aimed at SQL programmers. Portable across DBMSs. Same capability as regular SQL stored procedures. Arbitrary SQL stored procedures re-codable as SQLJ stored procedures. Convenience and performance comparable with SQL routines. Callable from CLI/ODBC, from other SQL stored procedures, from JDBC/JSQL, and directly from Java. Caller needn't know the SQLJ stored procedure is in Java. 20

21 Technical objectives (cont.) Any Java static method callable as a stored procedure: Initially support only parameter and result types mappable to SQL. Extensible to support arbitrary Java types, for Java caller and callee. Body of SQLJ stored procedure routines can use JDBC and/or SQLJ to access SQL, or Java computation Initially support persistence only for duration of a call. Consider session and database persistence as follow-on. Topics Example Java classes Defining Java classes to SQL Installing jar files Specifying SQL names SQL Permissions OUT parameters Result sets Error handling Paths Deployment descriptors 21

22 Examples Example table: create table emps ( name varchar(50), id char(5), state char(20), sales decimal (6,2)); Example classes and methods: Routines1.region Maps a state code to a region number. Plain Java (no SQL). Routines1.correctStates Performs an SQL update to correct the state codes. Routines2.bestEmps Returns the top two employees as output parameters. Routines3.rankedEmps Returns the employees as a result set. Examples (cont.) The region and correctstates methods public class Routines1 { //The region method //An Integer method that will be called as a function public static Integer region(string s) throws SQLException { if (s == "MN" s == "VT" s == "NH" ) return 1; else if (s == "FL" s == "GA" s == "AL" ) return 2; else if (s == "CA" s == "AZ" s == "NV") return 3; else return 4; //The correctstates method //A void method that will be called as a stored procedure public static void correctstates (String oldspelling, String newspelling) throws SQLException { Connection conn = DriverManager.getConnection ("JDBC:DEFAULT:CONNECTION"); PreparedStatement stmt = conn.preparestatement ("UPDATE emps SET state =? WHERE state =?"); stmt.setstring(1, newspelling); stmt.setstring(2, oldspelling); stmt.executeupdate(); return; 22

23 Installing Java Classes in SQL New install_jar procedure: sqlj.install_jar ( file:~/classes/routines1.jar, routines1_jar ) Two parameters: The URL of a jar file containing a set of Java classes A character string that will be used to identify the Jar in SQL Installs all classes in the jar file: Uses Java reflection to determine their names, methods, and signatures Retains the Jar file, the character string identifies it: The jar name is specified in a later remove_jar procedure: Follow-on facilities will address replacing and downloading jar files, etc. Defining SQL names for Java methods A form of the SQL create procedure/function statement:. create procedure correct_states(old char(20), new char(20)) modifies sql data external name routines1_jar:routines1.correctstates language java parameter style java; create function region_of(state char(20)) returns integer no sql external name routines1_jar:routines1.region language java parameter style java; The create procedure statement and the external language X are standard. The language alternative java is an SQLJ extension. 23

24 Defining SQL names for Java methods The procedure/function names "correct_states" and "region_of" are normal SQL 3-part names, with normal defaults. You can do multiple create procedure statements pointing to the same Java method. The key role of create procedure is to define an SQL synonym for the Java method. Why use an SQL name? Java names have different syntax: case-sensitive, package names, Unicode, etc. SQL metadata and permissions are keyed to SQL names. Privileges The usage privilege on the installed jar file is grantable: grant usage on routines1_jar to Smith The execute permission on the SQL names is grantable. grant execute on correct_states to Smith Methods run with "definer's rights". 24

25 Invoking Java methods Use the SQL names, with normal defaults for the first two parts: select name, region_of(state) as region from emps where region_of(state) = 3 call correct_states ( CAL, CA ); OUT parameters SQL procedures have OUT and INOUT parameters; Java doesn't. If a Java method will be used as an SQL proc with OUT parameters, those parameters are declared as Java arrays, to act as "containers". Example (next page): besttwoemps returns the two top employees in a given region. The specific region is an in parameter. The column values of the two top employees are out parameters. The besttwoemps method is coded with JSQL. A version of besttwoemps coded with JDBC is shown in the draft specs, for comparison. 25

26 OUT Parameters (cont.) public class Routines2 { public static void besttwoemps (String[ ] n1, String[ ] id1, int[ ] r1, BigDecimal[ ] s1, String[ ] n2, String[ ] id2, int[ ] r2, BigDecimal[ ] s2, Integer regionparm) throws SQLException { #sql iterator ByNames (String name, int id, int region, BigDecimal sales); ByNames r; #sql r = {"SELECT name, id, region_of(state) as region, sales FROM emp WHERE region_of(state) > :regionparm AND sales IS NOT NULL ORDER BY sales DESC"; if (r.next()) { n1[0] = r.name(); id1[0] = r.id(); r1[0] = r.region(); s1[0] = r.sales(); else { n1[0] = "****"; return; if (r.next()) { n2[0] = r.name(); id2[0] = r.id(); r2[0] = r.region(); s2[0] = r.sales(); else { n2[0] = "****"; return; OUT parameters (cont.) CREATE PROC for the besttwoemps method The besttwoemps method has eight out parameters and one in parameter: create procedure best2 (out n1 varchar(50), out id1 varchar(5), out r1 integer, out s1 decimal(6,2), out n2 varchar(50), out id2 varchar(5), out r2 integer, out s2 decimal(6,2), region integer) reads sql data external name Routines2.bestTwoEmps language java parameter style java; 26

27 OUT parameters (cont.) Invoking the best2 procedure java.sql.callablestatement stmt = conn.preparecall ("{call best2(?,?,?,?,?,?,?,?,?)"); stmt.registeroutparameter(1, java.sql.types.string); stmt.registeroutparameter(2, java.sql.types.string); stmt.registeroutparameter(3, java.sql.types.int); stmt.registeroutparameter(4, java.sql.types.bigdecimal); stmt.registeroutparameter(5, java.sql.types.string); stmt.registeroutparameter(6, java.sql.types.string); stmt.registeroutparameter(7, java.sql.types.int); stmt.registeroutparameter(8, java.sql.types.bigdecimal); stmt.setint(9, 3); stmt.executeupdate(); String n1 = stmt.getstring(1); String id1 = stmt.getstring(2); Integer r1 = stmt.getint(3); BigDecimal s1 = stmt.getbigdecimal(4); String n2 = stmt.getstring(5); String id2 = stmt.getstring(6); Integer r2 = stmt.getint(7); BigDecimal s2 = stmt.getbigdecimal(8); Result sets SQL procedures can return result sets that are neither parameters nor function results. An SQL result set is a set of rows generated by the callee for the caller. The caller processes the result set iteratively. SQLJ models this as follows: An SQL3 clause on create procedure specifies that the proc has result sets. Such an SQL proc can be defined on a Java method with a result set return value. Example (below): The orderedemps method returns a result set with the employees of a given region ordered by sales. 27

28 Result sets (cont.) Example: The orderedemps method public class Routines3 { public static orderedemps(int regionparm, ResultSet[ ] rs ) throws SQLException { Connection conn = DriverManager.getConnection ("JDBC:DEFAULT:CONNECTION"); java.sql.preparedstatement stmt = conn.preparestatement ("SELECT name, region_of(state) as region, sales FROM emp WHERE region_of(state) >? AND sales IS NOT NULL ORDER BY sales DESC"); stmt.setinteger(1, regionparm); rs[0] = stmt.executequery(); return; Result sets (cont.) CREATE PROC for the orderedemps method The orderedemps method returns one result set: create procedure ranked_emps (region integer) dynamic result sets 1 reads sql data external name Routines3.orderedEmps language java parameter style java; The dynamic result sets clause is standard ISO/ANSI SQL3. Initially the dynamic result sets clause will only allow "1". 28

29 Result sets (cont.) Invoking the rankedemps procedure java.sql.callablestatement stmt = conn.preparecall( "{call ranked_emps(?)"); stmt.setint(1, 3); ResultSet rs = stmt.executequery(); while (rs.next()) { String name = rs.getstring(1); Integer region = rs.getint(2); BigDecimal sales = rs.getbigdecimal(3); System.out.print(" Name = " + name); System.out.print(" Region = " + region); System.out.print(" Sales = " + sales); System.out.print("\n"); Error Handling General treatment: Exceptions thrown and caught within an SQLJ stored procedure are internal to Java. Exceptions that are uncaught when you return from a Java method become SQLSTATE error codes. The message text of the SQLSTATE is the string specified in the Java throw. 29

30 Paths In Java, resolution of class names is done with the operating system CLASSPATH. The CLASSPATH mechanism uses the operating system directory structure. SQLJ defines a similar mechanism for name resolution. Assume you have three jar files that reference classes in each other: The admin jar references classes in the property and project jars. The property jar references classes in the project jar. The project jar references classes in the property and admin jars. Paths (cont.) You install the jar files as usual: sqlj.install_jar ( file:~/classes/admin.jar, admin_jar ); sqlj.install_jar ( file:~/classes/property.jar, property_jar ); sqlj.install_jar ( file:~/classes/project.jar, project_jar ); Then you specify paths for the jar files: sqlj.alter_java_path ( admin_jar, (property/*, property_jar) (project/*, project_jar) ); sqlj.alter_java_path ( property_jar, (project/*, project_jar ) ); sqlj.alter_java_path ( project_jar, (*, property_jar) (*, admin_jar) ); When the Java VM encounteres an unloaded class name in e.g. the admin_jar, it will invoke the class loader supplied by the SQL system, which will use the SQL path to resolve the name. 30

31 Deployment descriptors A deployment descriptor is a text file containing the create and grant statements to do on install_jar, and the drop and revoke statements to do on remove_jar. A deployment descriptor is contained in a jar file with the classes it describes. The install_jar procedure will implicitly perform the create and grant statements indicated by the deployment descriptor. The remove_jar procedure will implicitly perform the drop and revoke statements indicated by the deployment descriptor. Deployment descriptors (cont.) Example deployment descriptor Assume that all of the above example classes Routines1, Routines2, and Routines3 are in a single jar. An example deployment descriptor for that jar would have the following form: SQLActions[ ] = { BEGIN INSTALL // SQL create and grant statements // to be executed when the jar is installed. END INSTALL, BEGIN REMOVE //SQL drop and revoke statements // to be executed when the jar is removed. END REMOVE 31

32 Agenda Introduction SQLJ Part 0: Embedded SQL and Portability Profile SQLJ Part 1: Java Methods as SQL Procedures SQLJ Part 2: Java Classes as SQL Types SQLJ Part 2: Java classes as SQL types Use Java classes as SQL data types for: Columns of SQL tables and views. Parameters of SQL routines. Especially SQL routines defined on Java methods (SQLJPart 1). Advantage to SQL: A type extension mechanism. Either an alternative or supplement to SQL3 ADTs. Advantage to Java: Direct support for Java objects in SQL databases. No need to map Java objects to SQL scalar or BLOB types. 32

33 Examples Example class: Address public class Address implements java.io.serializable { public String street; public String zip; public static int recommended_width = 25; // A default constructor public Address ( ) { street = "Unknown"; zip = "None"; // A constructor with parameters public Address (String S, String Z) { street = S; zip = Z; // A method to return a string representation of the full address public String tostring( ) { return "Street= " + street + " ZIP= " + zip; ; Examples (cont.) Example subclass: Address2Line public class Address2Line extends Address implements java.io.serializable { public String line2; // A default constructor public Address2Line ( ) { line2 = " "; // A constructor with parameters public Address2Line (String S, String L2, String Z) { street = S; line2 = L2; zip = Z; // A method to return a string representation of the full address public String tostring( ) { return "Street= " + street + " Line2= " + line2 + " ZIP= " + zip; ; 33

34 CREATE TYPE The role of create type is like that of create procedure: Specify SQL names for the type, the fields, and the methods. Additional clauses for ordering specs, etc. The above example uses the default ordering CREATE TYPE (cont.) CREATE for Address create type addr external name Address language java (zip_attr char(10) external name zip, street_attr varchar(50) external name street, static rec_width_attr integer external name recommended_width, method addr ( ) returns addr external name Address, method addr (s_parm varchar(50), z_parm char(10)) returns addr external name Address, method to_string ( ) returns varchar(255) external name tostring, method remove_leading_blanks ( ) external name removeleadingblanks ; static method contiguous (A1 addr, A2 addr) returns char(3) external name contiguous ) 34

35 CREATE TYPE (cont.) CREATE for Address2 create type addr_2_line under addr external name Address2Line language java (line2_attr varchar(100) external name line2, method addr_2_line ( ) returns addr_2_line external name Address2Line, method addr_2_line (s_parm varchar(50), s2_parm char(100), z_parm char(10)) returns addr_2_line external name Address2Line, method to_string ( ) returns varchar(255) external name tostring, method remove_leading_blanks ( ) external name removeleadingblanks ; method strip ( ) external name removeleadingblanks ) Usage Privilege GRANTs for Address and Address2Line grant usage on datatype addr to public; grant usage on datatype addr2line to admin; 35

36 Java Classes as SQL datatypes Column data types: create table emps ( name varchar(30), home_addr addr), mailing_addr addr_2_line); Insert: insert into emps values( Bob Smith, new Address( 432 Elm Street, ), new Address2Line( PO Box 99, attn: Bob Smith, )); Select: select name, home_addr>>zip, home_addr>>street, mailing_addr>>zip from emps where home_addr>>zip <> mailing_addr>>zip Methods and comparison: select name, home_addr>>display(), mailing_addr>>display() from emps where home_addr <> mailing_addr Java Classes as SQL datatypes (cont.) Update: update emps set home_addr>>zip = where name = Bob Smith update emps set home_address = mailing_address --Normal Java substitutability where home_address is null; Note the use of >> to reference fields and methods of Java instances in SQL. This avoids ambiguities with SQL dot-qualified names. The >> symbol is used in SQL3 for ADT references. 36

37 SQLJ: Java and Relational Databases Phil Shaw, Sybase Inc. Brian Becker, Oracle Corp. Johannes Klein, Tandem/Compaq Mark Hapner, JavaSoft Gray Clossman, Oracle Corp. Richard Pledereder, Sybase Inc. 37

SQLJ Part 0, now known as SQL/OLB (Object-Language Bindings)

SQLJ Part 0, now known as SQL/OLB (Object-Language Bindings) SQLJ Part 0, now known as SQL/OLB (Object-Language Bindings) Andrew Eisenberg Sybase, Burlington, MA 01803 andrew.eisenberg@sybase.com Jim Melton Sybase, Sandy, UT 84093 jim.melton@sybase.com Introductions

More information

Chapter 4 Application Programs and Object-Relational Capabilities

Chapter 4 Application Programs and Object-Relational Capabilities Chapter 4 Application Programs and Object-Relational Capabilities Recent Development for Data Models 2016 Stefan Deßloch The "Big Picture" SQL99 Client DB Server Server-side Logic dynamic SQL JDBC 2.0

More information

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe Chapter 10 Outline Database Programming: Techniques and Issues Embedded SQL, Dynamic SQL, and SQLJ Database Programming with Function Calls: SQL/CLI and JDBC Database Stored Procedures and SQL/PSM Comparing

More information

Using SQL and Result Sets in Stored Procedures

Using SQL and Result Sets in Stored Procedures Data Warehousing > Database Using SQL and Result Sets in Stored By Doug Frazier Table of Contents Executive Summary 2 Introduction 2 What is an External Stored Procedure? 3 Returning Result Sets 9 Stored

More information

Database Access. Rick Cattell JavaSoft

Database Access. Rick Cattell JavaSoft Database Access Rick Cattell JavaSoft Database Access 1. Relational database connectivity: JDBC 2. Higher-level relational APIs and tools 3. Object-oriented databases 4. Partners and summary Overview Java

More information

Chapter 13 Introduction to SQL Programming Techniques

Chapter 13 Introduction to SQL Programming Techniques Chapter 13 Introduction to SQL Programming Techniques Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 13 Outline Database Programming: Techniques and Issues Embedded

More information

Chapter 3 User-defined Routines and Object Behavior

Chapter 3 User-defined Routines and Object Behavior Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 3 User-defined Routines and Object Behavior Recent Developments

More information

Database Application Development

Database Application Development Database Application Development Linda Wu (CMPT 354 2004-2) Topics SQL in application code Embedded SQL JDBC SQLJ Stored procedures Chapter 6 CMPT 354 2004-2 2 SQL in Application Code SQL commands can

More information

Stored Procedures and UDFs with Borland JDataStore

Stored Procedures and UDFs with Borland JDataStore Stored Procedures and UDFs with Borland JDataStore Increase application capability and get encapsulation of business logic by Jens Ole Lauridsen Borland Software Corporation August 2002 Contents Introduction

More information

SQL: Programming. Announcements (September 25) Motivation. CPS 116 Introduction to Database Systems. Pros and cons of SQL.

SQL: Programming. Announcements (September 25) Motivation. CPS 116 Introduction to Database Systems. Pros and cons of SQL. SQL: Programming CPS 116 Introduction to Database Systems Announcements (September 25) 2 Homework #2 due this Thursday Submit to Yi not through Jun s office door Solution available this weekend No class

More information

Java and the Java DataBase Connectivity (JDBC) API. Todd Kaufman April 25, 2002

Java and the Java DataBase Connectivity (JDBC) API. Todd Kaufman April 25, 2002 Java and the Java DataBase Connectivity (JDBC) API Todd Kaufman April 25, 2002 Agenda BIO Java JDBC References Q&A Speaker 4 years Java experience 4 years JDBC experience 3 years J2EE experience BS from

More information

Wentworth Institute of Technology COMP570 Database Applications Fall 2014 Derbinsky. SQL Programming. Lecture 8. SQL Programming

Wentworth Institute of Technology COMP570 Database Applications Fall 2014 Derbinsky. SQL Programming. Lecture 8. SQL Programming Lecture 8 1 Outline Context General Approaches Typical Programming Sequence Examples 2 Database Design and Implementation Process Normalization 3 SQL via API Embedded SQL SQLJ General Approaches DB Programming

More information

SQL: Programming Midterm in class next Thursday (October 5)

SQL: Programming Midterm in class next Thursday (October 5) Announcements (September 28) 2 Homework #1 graded Homework #2 due today Solution available this weekend SQL: Programming Midterm in class next Thursday (October 5) Open book, open notes Format similar

More information

Lecture 2. Introduction to JDBC

Lecture 2. Introduction to JDBC Lecture 2 Introduction to JDBC Introducing JDBC According to Sun, JDBC is not an acronym, but is commonly misinterpreted to mean Java DataBase Connectivity JDBC: is an API that provides universal data

More information

Overview. Database Application Development. SQL in Application Code. SQL in Application Code (cont.)

Overview. Database Application Development. SQL in Application Code. SQL in Application Code (cont.) Overview Database Application Development Chapter 6 Concepts covered in this lecture: SQL in application code Embedded SQL Cursors Dynamic SQL JDBC SQLJ Stored procedures Database Management Systems 3ed

More information

Database Application Development

Database Application Development Database Application Development Chapter 6 Database Management Systems 3ed 1 Overview Concepts covered in this lecture: SQL in application code Embedded SQL Cursors Dynamic SQL JDBC SQLJ Stored procedures

More information

Database Application Development

Database Application Development Database Application Development Chapter 6 Database Management Systems 3ed 1 Overview Concepts covered in this lecture: SQL in application code Embedded SQL Cursors Dynamic SQL JDBC SQLJ Stored procedures

More information

How to program applications. CS 2550 / Spring 2006 Principles of Database Systems. SQL is not enough. Roadmap

How to program applications. CS 2550 / Spring 2006 Principles of Database Systems. SQL is not enough. Roadmap How to program applications CS 2550 / Spring 2006 Principles of Database Systems 05 SQL Programming Using existing languages: Embed SQL into Host language ESQL, SQLJ Use a library of functions Design a

More information

Chapter 3 DB-Gateways

Chapter 3 DB-Gateways Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 3 DB-Gateways Outline Coupling DBMS and programming languages

More information

JDBC Installation Transactions Metadata

JDBC Installation Transactions Metadata Course Name: Advanced Java Lecture 14 Topics to be covered JDBC Installation Transactions Metadata Steps in JDBC Connectivity:Connectivity:Here are the JDBC Steps to be followed while writing JDBC

More information

ITCS Implementation. Jing Yang 2010 Fall. Class 14: Introduction to SQL Programming Techniques (Ch13) Outline

ITCS Implementation. Jing Yang 2010 Fall. Class 14: Introduction to SQL Programming Techniques (Ch13) Outline ITCS 3160 Data Base Design and Implementation Jing Yang 2010 Fall Class 14: Introduction to SQL Programming Techniques (Ch13) Outline Database Programming: Techniques and Issues Three approaches: Embedded

More information

The Design of JDBC The Structured Query Language Basic JDBC Programming Concepts Query Execution Scrollable and Updatable Result Sets

The Design of JDBC The Structured Query Language Basic JDBC Programming Concepts Query Execution Scrollable and Updatable Result Sets Course Name: Advanced Java Lecture 13 Topics to be covered The Design of JDBC The Structured Query Language Basic JDBC Programming Concepts Query Execution Scrollable and Updatable Result Sets Introducing

More information

Chapter 3 DB-Gateways

Chapter 3 DB-Gateways Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 3 DB-Gateways Outline Coupling DBMS and programming languages

More information

Introduction to Databases

Introduction to Databases JAVA JDBC Introduction to Databases Assuming you drove the same number of miles per month, gas is getting pricey - maybe it is time to get a Prius. You are eating out more month to month (or the price

More information

UNIT III - JDBC Two Marks

UNIT III - JDBC Two Marks UNIT III - JDBC Two Marks 1.What is JDBC? JDBC stands for Java Database Connectivity, which is a standard Java API for databaseindependent connectivity between the Java programming language and a wide

More information

Programming the Database

Programming the Database Programming the Database Today s Lecture 1. Stored Procedures 2. Functions BBM471 Database Management Systems Dr. Fuat Akal akal@hacettepe.edu.tr 3. Cursors 4. Triggers 5. Dynamic SQL 2 Stored Procedures

More information

IBM DB2 9 Application Developer. Download Full Version :

IBM DB2 9 Application Developer. Download Full Version : IBM 000-733 DB2 9 Application Developer Download Full Version : http://killexams.com/pass4sure/exam-detail/000-733 QUESTION: 130 A solution is needed to process a large amount of inventory table data on

More information

SQL Environment: Module Types. System Aspects of SQL. SQL Environment: Introduction. SQL Environment: Introduction. SQL Environment: Privileges

SQL Environment: Module Types. System Aspects of SQL. SQL Environment: Introduction. SQL Environment: Introduction. SQL Environment: Privileges SQL Environment: Module Types System Aspects of SQL Generic SQL Interface: Module: each query or statement Embedded SQL: SQL statements within host-language program SQL statements pre-processed to function

More information

BUSINESS INTELLIGENCE LABORATORY. Data Access: Relational Data Bases. Business Informatics Degree

BUSINESS INTELLIGENCE LABORATORY. Data Access: Relational Data Bases. Business Informatics Degree BUSINESS INTELLIGENCE LABORATORY Data Access: Relational Data Bases Business Informatics Degree RDBMS data access 2 Protocols and API ODBC, OLE DB, ADO, ADO.NET, JDBC JDBC Programming Java classes java.sql

More information

Kyle Brown Knowledge Systems Corporation by Kyle Brown and Knowledge Systems Corporation

Kyle Brown Knowledge Systems Corporation by Kyle Brown and Knowledge Systems Corporation Kyle Brown Knowledge Systems Corporation 1 What is the JDBC? What other persistence mechanisms are available? What facilities does it offer? How is it used? 2 JDBC is the Java DataBase Connectivity specification

More information

Introduction JDBC 4.1. Bok, Jong Soon

Introduction JDBC 4.1. Bok, Jong Soon Introduction JDBC 4.1 Bok, Jong Soon javaexpert@nate.com www.javaexpert.co.kr What is the JDBC TM Stands for Java TM Database Connectivity. Is an API (included in both J2SE and J2EE releases) Provides

More information

Efficient Object-Relational Mapping for JAVA and J2EE Applications or the impact of J2EE on RDB. Marc Stampfli Oracle Software (Switzerland) Ltd.

Efficient Object-Relational Mapping for JAVA and J2EE Applications or the impact of J2EE on RDB. Marc Stampfli Oracle Software (Switzerland) Ltd. Efficient Object-Relational Mapping for JAVA and J2EE Applications or the impact of J2EE on RDB Marc Stampfli Oracle Software (Switzerland) Ltd. Underestimation According to customers about 20-50% percent

More information

Chapter 3 DB-Gateways

Chapter 3 DB-Gateways Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 3 DB-Gateways Outline Coupling DBMS and programming languages

More information

System Aspects of SQL

System Aspects of SQL System Aspects of SQL SQL Environment User Access Control SQL in Programming Environment Embedded SQL SQL and Java Transactions (Programmers View) SQL Environment: Introduction SQL server Supports operations

More information

Enterprise JavaBeans. Layer:08. Persistence

Enterprise JavaBeans. Layer:08. Persistence Enterprise JavaBeans Layer:08 Persistence Agenda Discuss "finder" methods. Describe DataSource resources. Describe bean-managed persistence. Describe container-managed persistence. Last Revised: 11/1/2001

More information

Database Application Development

Database Application Development Database Application Development Chapter 6 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Overview Concepts covered in this lecture: SQL in application code Embedded SQL Cursors Dynamic

More information

Enterprise Java Unit 1- Chapter 6 Prof. Sujata Rizal

Enterprise Java Unit 1- Chapter 6 Prof. Sujata Rizal Introduction JDBC is a Java standard that provides the interface for connecting from Java to relational databases. The JDBC standard is defined by Sun Microsystems and implemented through the standard

More information

Chapter 5: Advanced SQL" Chapter 5: Advanced SQL"

Chapter 5: Advanced SQL Chapter 5: Advanced SQL Chapter 5: Advanced SQL" Database System Concepts, 6 th Ed.! Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use " Chapter 5: Advanced SQL" Accessing SQL From a Programming Language!

More information

Types of Databases. Types of Databases. Types of Databases. Databases and Web. Databases and Web. Relational databases may also have indexes

Types of Databases. Types of Databases. Types of Databases. Databases and Web. Databases and Web. Relational databases may also have indexes Types of Databases Relational databases contain stuctured data tables, columns, fixed datatype for each column Text databases are available for storing non-structured data typically text databases store

More information

Using IBM-Informix datatypes with IDS 10 and web application server Keshava Murthy, IBM Informix Development

Using IBM-Informix datatypes with IDS 10 and web application server Keshava Murthy, IBM Informix Development IBM GLOBAL SERVICES Using IBM-Informix datatypes with IDS 10 and web application server Keshava Murthy, IBM Informix Development Sept. 12-16, 2005 Orlando, FL 1 Agenda JDBC Datatypes IDS 10 Datatypes Java

More information

Vendor: IBM. Exam Code: Exam Name: DB2 9 Application Developer. Version: Demo

Vendor: IBM. Exam Code: Exam Name: DB2 9 Application Developer. Version: Demo Vendor: IBM Exam Code: 000-733 Exam Name: DB2 9 Application Developer Version: Demo QUESTION 1 Which of the following applies to nickname usage? A. Nicknames cannot be created for views. B. An MQT definition

More information

Lecture 27 10/30/15. CMPSC431W: Database Management Systems. Instructor: Yu- San Lin

Lecture 27 10/30/15. CMPSC431W: Database Management Systems. Instructor: Yu- San Lin CMPSC431W: Database Management Systems Lecture 27 10/30/15 Instructor: Yu- San Lin yusan@psu.edu Course Website: hcp://www.cse.psu.edu/~yul189/cmpsc431w Slides based on McGraw- Hill & Dr. Wang- Chien Lee

More information

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this

More information

JDBC Drivers Type. JDBC drivers implement the defined interfaces in the JDBC API for interacting with your database server.

JDBC Drivers Type. JDBC drivers implement the defined interfaces in the JDBC API for interacting with your database server. JDBC Drivers Type 1 What is JDBC Driver? JDBC drivers implement the defined interfaces in the JDBC API for interacting with your database server. For example, using JDBC drivers enable you to open database

More information

Part I: Stored Procedures. Introduction to SQL Programming Techniques. CSC 375, Fall 2017

Part I: Stored Procedures. Introduction to SQL Programming Techniques. CSC 375, Fall 2017 Introduction to SQL Programming Techniques CSC 375, Fall 2017 The Six Phases of a Project: Enthusiasm Disillusionment Panic Search for the Guilty Punishment of the Innocent Praise for non-participants

More information

SQL in a Server Environment (ii)

SQL in a Server Environment (ii) ICS 321 Spring 2012 SQL in a Server Environment (ii) Asst. Prof. Lipyeow Lim Information & Computer Science Department University of Hawaii at Manoa 03/19/2012 Lipyeow Lim -- University of Hawaii at Manoa

More information

Topic 12: Database Programming using JDBC. Database & DBMS SQL JDBC

Topic 12: Database Programming using JDBC. Database & DBMS SQL JDBC Topic 12: Database Programming using JDBC Database & DBMS SQL JDBC Database A database is an integrated collection of logically related records or files consolidated into a common pool that provides data

More information

Database Applications (15-415)

Database Applications (15-415) Database Applications (15-415) SQL-Part III & Storing Data: Disks and Files- Part I Lecture 8, February 5, 2014 Mohammad Hammoud Today Last Session: Standard Query Language (SQL)- Part II Today s Session:

More information

Chapter 3 User-defined Routines and Object Behavior

Chapter 3 User-defined Routines and Object Behavior Chapter 3 User-defined Routines and Object Behavior Prof. Dr.-Ing. Stefan Deßloch Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de 1 Inhalt Überblick I. Objektorientierung und Erweiterbarkeit

More information

ERwin and JDBC. Mar. 6, 2007 Myoung Ho Kim

ERwin and JDBC. Mar. 6, 2007 Myoung Ho Kim ERwin and JDBC Mar. 6, 2007 Myoung Ho Kim ERwin ERwin a popular commercial ER modeling tool» other tools: Dia (open source), Visio, ConceptDraw, etc. supports database schema generation 2 ERwin UI 3 Data

More information

Database Programming Overview. COSC 304 Introduction to Database Systems. Database Programming. JDBC Interfaces. JDBC Overview

Database Programming Overview. COSC 304 Introduction to Database Systems. Database Programming. JDBC Interfaces. JDBC Overview COSC 304 Introduction to Database Systems Database Programming Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca Database Programming Overview Most user interaction with

More information

You write standard JDBC API application and plug in the appropriate JDBC driver for the database the you want to use. Java applet, app or servlets

You write standard JDBC API application and plug in the appropriate JDBC driver for the database the you want to use. Java applet, app or servlets JDBC Stands for Java Database Connectivity, is an API specification that defines the following: 1. How to interact with database/data-source from Java applets, apps, servlets 2. How to use JDBC drivers

More information

INTRODUCTION TO JDBC - Revised Spring

INTRODUCTION TO JDBC - Revised Spring INTRODUCTION TO JDBC - Revised Spring 2006 - 1 What is JDBC? Java Database Connectivity (JDBC) is an Application Programmers Interface (API) that defines how a Java program can connect and exchange data

More information

SQream Connector JDBC SQream Technologies Version 2.9.3

SQream Connector JDBC SQream Technologies Version 2.9.3 SQream Connector JDBC 2.9.3 SQream Technologies 2019-03-27 Version 2.9.3 Table of Contents The SQream JDBC Connector - Overview...................................................... 1 1. API Reference............................................................................

More information

More Database Programming. CS157A Chris Pollett Nov. 2, 2005.

More Database Programming. CS157A Chris Pollett Nov. 2, 2005. More Database Programming CS157A Chris Pollett Nov. 2, 2005. Outline JDBC SQLJ Introduction Last day we went over some JDBC and SQLJ code examples from prior classes. Today, we will discuss JDBC and SQLJ

More information

Type Java.sql.sqlexception Error Code 0 Sql State S1000

Type Java.sql.sqlexception Error Code 0 Sql State S1000 Type Java.sql.sqlexception Error Code 0 Sql State S1000 sql query result parsing -SQL Error: 0, SQLState: S1000 - Unknown type '14 in column 3 of 4 in binary-encoded Browse other questions tagged java

More information

Designing a Persistence Framework

Designing a Persistence Framework Designing a Persistence Framework Working directly with code that uses JDBC is low-level data access; As application developers, one is more interested in the business problem that requires this data access.

More information

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution:

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution: Whitepaper The Challenge: Enterprise JavaBeans (EJB) represents a new standard in enterprise computing: a component-based architecture for developing and deploying distributed object-oriented applications

More information

Why use a database? You can query the data (run searches) You can integrate with other business systems that use the same database You can store huge

Why use a database? You can query the data (run searches) You can integrate with other business systems that use the same database You can store huge 175 Why use a database? You can query the data (run searches) You can integrate with other business systems that use the same database You can store huge numbers of records without the risk of corruption

More information

CHAPTER 44. Java Stored Procedures

CHAPTER 44. Java Stored Procedures CHAPTER 44 Java Stored Procedures 752 Oracle Database 12c: The Complete Reference You can write stored procedures, triggers, object type methods, and functions that call Java classes. In this chapter,

More information

Database Programming. Week 9. *Some of the slides in this lecture are created by Prof. Ian Horrocks from University of Oxford

Database Programming. Week 9. *Some of the slides in this lecture are created by Prof. Ian Horrocks from University of Oxford Database Programming Week 9 *Some of the slides in this lecture are created by Prof. Ian Horrocks from University of Oxford SQL in Real Programs We have seen only how SQL is used at the generic query interface

More information

SQL:1999 and Recent Developments in SQL Standardisation

SQL:1999 and Recent Developments in SQL Standardisation SQL:1999 and Recent Developments in SQL Standardisation by Hugh Darwen IBM United Kingdom Limited Hugh_Darwen@uk.ibm.com 22 May, 2001 (Cambridge University) (c) Hugh Darwen 2001 1 The Parts of SQL Part

More information

Information technology Database languages SQL Technical Reports. Part 4: SQL with Routines and types using the Java TM programming language

Information technology Database languages SQL Technical Reports. Part 4: SQL with Routines and types using the Java TM programming language TECHNICAL REPORT ISO/IEC TR 19075-4 This is a preview of "ISO/IEC TR 19075-4:2...". Click here to purchase the full version from the ANSI store. First edition 2015-07-01 Information technology Database

More information

Embedded SQL. csc343, Introduction to Databases Diane Horton with examples from Ullman and Widom Fall 2014

Embedded SQL. csc343, Introduction to Databases Diane Horton with examples from Ullman and Widom Fall 2014 Embedded SQL csc343, Introduction to Databases Diane Horton with examples from Ullman and Widom Fall 2014 Problems with using interactive SQL Standard SQL is not Turing-complete. E.g., Two profs are colleagues

More information

Accessing databases in Java using JDBC

Accessing databases in Java using JDBC Accessing databases in Java using JDBC Introduction JDBC is an API for Java that allows working with relational databases. JDBC offers the possibility to use SQL statements for DDL and DML statements.

More information

DB2 Development Center Advanced Topics for z/os

DB2 Development Center Advanced Topics for z/os IBM Software Group DB2 Development Center Advanced Topics for z/os Peggy Rader - peggyr@us.ibm.com Agenda Getting Started Environment Settings JDBC Driver Support Using Java SDK 1.3.1 and SDK 1.4.1 Multiple

More information

JDBC. Sun Microsystems has included JDBC API as a part of J2SDK to develop Java applications that can communicate with databases.

JDBC. Sun Microsystems has included JDBC API as a part of J2SDK to develop Java applications that can communicate with databases. JDBC The JDBC TM API is the application programming interface that provides universal data access for the Java TM platform. In other words, the JDBC API is used to work with a relational database or other

More information

DATABASE DESIGN - 1DL400

DATABASE DESIGN - 1DL400 DATABASE DESIGN - 1DL400 Fall 2015 A course on modern database systems http://www.it.uu.se/research/group/udbl/kurser/dbii_ht15 Kjell Orsborn Uppsala Database Laboratory Department of Information Technology,

More information

COMP 430 Intro. to Database Systems. SQL from application code

COMP 430 Intro. to Database Systems. SQL from application code COMP 430 Intro. to Database Systems SQL from application code Some issues How to connect to database Where, what type, user credentials, How to send SQL commands How to get communicate data to/from DB

More information

INTRODUCTION TO JDBC - Revised spring

INTRODUCTION TO JDBC - Revised spring INTRODUCTION TO JDBC - Revised spring 2004 - 1 What is JDBC? Java Database Connectivity (JDBC) is a package in the Java programming language and consists of several Java classes that deal with database

More information

Announcements. SQL: Part IV. Transactions. Summary of SQL features covered so far. Fine prints. SQL transactions. Reading assignments for this week

Announcements. SQL: Part IV. Transactions. Summary of SQL features covered so far. Fine prints. SQL transactions. Reading assignments for this week Announcements 2 SQL: Part IV CPS 216 Advanced Database Systems Reading assignments for this week A Critique of ANSI SQL Isolation Levels, by Berenson et al. in SIGMOD 1995 Weaving Relations for Cache Performance,

More information

Oracle Database 10g Java Web

Oracle Database 10g Java Web Oracle Database 10g Java Web 2005 5 Oracle Database 10g Java Web... 3... 3... 4... 4... 4 JDBC... 5... 5... 5 JDBC... 6 JDBC... 8 JDBC... 9 JDBC... 10 Java... 11... 12... 12... 13 Oracle Database EJB RMI/IIOP...

More information

The Object-Oriented Paradigm. Employee Application Object. The Reality of DBMS. Employee Database Table. From Database to Application.

The Object-Oriented Paradigm. Employee Application Object. The Reality of DBMS. Employee Database Table. From Database to Application. The Object-Oriented Paradigm CS422 Principles of Database Systems Object-Relational Mapping (ORM) Chengyu Sun California State University, Los Angeles The world consists of objects So we use object-oriented

More information

Relational Databases. CS 240 Advanced Programming Concepts

Relational Databases. CS 240 Advanced Programming Concepts Relational Databases CS 240 Advanced Programming Concepts Database Management Systems (DBMS) Databases are implemented by software systems called Database Management Systems (DBMS) Commonly used Relational

More information

The Web Application Developer s. Red Hat Database. View. October 30, Webcast. Patrick Macdonald, Fernando Nasser. Red Hat Database Engineering

The Web Application Developer s. Red Hat Database. View. October 30, Webcast. Patrick Macdonald, Fernando Nasser. Red Hat Database Engineering Red Hat Database The Web Application Developer s View Webcast October 30, 2001 Patrick Macdonald, Fernando Nasser Liam Stewart, Neil Padgett Red Hat Database Engineering Agenda Red Hat Database Web Interaction

More information

Non-interactive SQL. EECS Introduction to Database Management Systems

Non-interactive SQL. EECS Introduction to Database Management Systems Non-interactive SQL EECS3421 - Introduction to Database Management Systems Using a Database Interactive SQL: Statements typed in from terminal; DBMS outputs to screen. Interactive SQL is inadequate in

More information

Java Database Connectivity (JDBC) 25.1 What is JDBC?

Java Database Connectivity (JDBC) 25.1 What is JDBC? PART 25 Java Database Connectivity (JDBC) 25.1 What is JDBC? JDBC stands for Java Database Connectivity, which is a standard Java API for database-independent connectivity between the Java programming

More information

Questions and Answers. A. A DataSource is the basic service for managing a set of JDBC drivers.

Questions and Answers. A. A DataSource is the basic service for managing a set of JDBC drivers. Q.1) What is, in terms of JDBC, a DataSource? A. A DataSource is the basic service for managing a set of JDBC drivers B. A DataSource is the Java representation of a physical data source C. A DataSource

More information

Tutorial: Using Java/JSP to Write a Web API

Tutorial: Using Java/JSP to Write a Web API Tutorial: Using Java/JSP to Write a Web API Contents 1. Overview... 1 2. Download and Install the Sample Code... 2 3. Study Code From the First JSP Page (where most of the code is in the JSP Page)... 3

More information

UNIT-3 Java Database Client/Server

UNIT-3 Java Database Client/Server UNIT-3 Java Database Client/Server TOPICS TO BE COVERED 3.1 Client-Server Design: Two-Tier Database Design, Three-Tier Database Design 3.2 The JDBC API: The API Components, Database Creation, table creation

More information

DB2. Developing SQL and External Routines. DB2 Version 9 SC

DB2. Developing SQL and External Routines. DB2 Version 9 SC DB2 DB2 Version 9 for Linux, UNIX, and Windows Developing SQL and External Routines SC10-4373-00 DB2 DB2 Version 9 for Linux, UNIX, and Windows Developing SQL and External Routines SC10-4373-00 Before

More information

Database Applications. SQL/PSM Embedded SQL JDBC

Database Applications. SQL/PSM Embedded SQL JDBC Database Applications SQL/PSM Embedded SQL JDBC 1 Course Objectives Design Construction Applications Usage 2 Course Objectives Interfacing When the course is through, you should Know how to connect to

More information

JDBC Programming: Intro

JDBC Programming: Intro JDBC Programming: Intro Most interaction with DB is not via interactive interface Most people interact via 1. Application programs directly 2. Apps over the internet There are 3 general approaches to developing

More information

Database Application Programs PL/SQL, Java and the Web

Database Application Programs PL/SQL, Java and the Web Database Application Programs PL/SQL, Java and the Web As well as setting up the database and running queries, it is vital to be able to build programs which manage the database although they will only

More information

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

Weiss Chapter 1 terminology (parenthesized numbers are page numbers) Weiss Chapter 1 terminology (parenthesized numbers are page numbers) assignment operators In Java, used to alter the value of a variable. These operators include =, +=, -=, *=, and /=. (9) autoincrement

More information

Pace University. Fundamental Concepts of CS121 1

Pace University. Fundamental Concepts of CS121 1 Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction

More information

CSC System Development with Java. Database Connection. Department of Statistics and Computer Science. Budditha Hettige

CSC System Development with Java. Database Connection. Department of Statistics and Computer Science. Budditha Hettige CSC 308 2.0 System Development with Java Database Connection Budditha Hettige Department of Statistics and Computer Science Budditha Hettige 1 From database to Java There are many brands of database: Microsoft

More information

Oracle Exam 1z0-809 Java SE 8 Programmer II Version: 6.0 [ Total Questions: 128 ]

Oracle Exam 1z0-809 Java SE 8 Programmer II Version: 6.0 [ Total Questions: 128 ] s@lm@n Oracle Exam 1z0-809 Java SE 8 Programmer II Version: 6.0 [ Total Questions: 128 ] Oracle 1z0-809 : Practice Test Question No : 1 Given: public final class IceCream { public void prepare() { public

More information

SQL STORED ROUTINES. CS121: Relational Databases Fall 2017 Lecture 9

SQL STORED ROUTINES. CS121: Relational Databases Fall 2017 Lecture 9 SQL STORED ROUTINES CS121: Relational Databases Fall 2017 Lecture 9 SQL Functions 2 SQL queries can use sophisticated math operations and functions Can compute simple functions, aggregates Can compute

More information

Lecture 9&10 JDBC. Mechanism. Some Warnings. Notes. Style. Introductory Databases SSC Introduction to DataBases 1.

Lecture 9&10 JDBC. Mechanism. Some Warnings. Notes. Style. Introductory Databases SSC Introduction to DataBases 1. Lecture 9&10 JDBC Java and SQL Basics Data Manipulation How to do it patterns etc. Transactions Summary JDBC provides A mechanism for to database systems An API for: Managing this Sending s to the DB Receiving

More information

CSE 135. Three-Tier Architecture. Applications Utilizing Databases. Browser. App. Server. Database. Server

CSE 135. Three-Tier Architecture. Applications Utilizing Databases. Browser. App. Server. Database. Server CSE 135 Applications Utilizing Databases Three-Tier Architecture Located @ Any PC HTTP Requests Browser HTML Located @ Server 2 App Server JDBC Requests JSPs Tuples Located @ Server 1 Database Server 2

More information

JDBC 3.0. Java Database Connectivity. 1 Java

JDBC 3.0. Java Database Connectivity. 1 Java JDBC 3.0 Database Connectivity 1 Contents 1 JDBC API 2 JDBC Architecture 3 Steps to code 4 Code 5 How to configure the DSN for ODBC Driver for MS-Access 6 Driver Types 7 JDBC-ODBC Bridge 8 Disadvantages

More information

Using Java - for PL/SQL and Database Developers Student Guide

Using Java - for PL/SQL and Database Developers Student Guide Using Java - for PL/SQL and Database Developers Student Guide D71990GC10 Edition 1.0 June 2011 D73403 Authors Priya Shridhar Prathima Trivedi Technical Contributors and Reviewers Andrew Rothstein Ashok

More information

SQL in a Server Environment

SQL in a Server Environment ICS 321 Fall 2011 SQL in a Server Environment Asst. Prof. Lipyeow Lim Information & Computer Science Department University of Hawaii at Manoa 11/02/2011 Lipyeow Lim -- University of Hawaii at Manoa 1 Three

More information

Instructor: Jinze Liu. Fall 2008

Instructor: Jinze Liu. Fall 2008 Instructor: Jinze Liu Fall 2008 Database Project Database Architecture Database programming 2 Goal Design and implement a real application? Jinze Liu @ University of Kentucky 9/16/2008 3 Goal Design and

More information

EMBEDDED SQL. SE 3DB3 Fall 2016 MICHAEL LIUT DEPARTMENT OF COMPUTING AND SOFTWARE MCMASTER UNIVERSITY

EMBEDDED SQL. SE 3DB3 Fall 2016 MICHAEL LIUT DEPARTMENT OF COMPUTING AND SOFTWARE MCMASTER UNIVERSITY EMBEDDED SQL MICHAEL LIUT (LIUTM@MCMASTER.CA) DEPARTMENT OF COMPUTING AND SOFTWARE MCMASTER UNIVERSITY SE 3DB3 Fall 2016 (Slides adapted from Dr. Fei Chiang, Diane Horton, examples from J. Ullman, J. Widom)

More information

CSE 530A. DAOs and MVC. Washington University Fall 2012

CSE 530A. DAOs and MVC. Washington University Fall 2012 CSE 530A DAOs and MVC Washington University Fall 2012 Model Object Example public class User { private Long id; private String username; private String password; public Long getid() { return id; public

More information

Several major software companies including IBM, Informix, Microsoft, Oracle, and Sybase have all released object-relational versions of their

Several major software companies including IBM, Informix, Microsoft, Oracle, and Sybase have all released object-relational versions of their Several major software companies including IBM, Informix, Microsoft, Oracle, and Sybase have all released object-relational versions of their products. These companies are promoting a new, extended version

More information

Chapter 9 SQL in a server environment

Chapter 9 SQL in a server environment Chapter 9 SQL in a server environment SQL in a Programming Environment embedded SQL persistent stored modules Database-Connection Libraries Call-level interface (CLI) JDBC PHP SQL in Real Programs We have

More information

COP4540 TUTORIAL PROFESSOR: DR SHU-CHING CHEN TA: H S IN-YU HA

COP4540 TUTORIAL PROFESSOR: DR SHU-CHING CHEN TA: H S IN-YU HA COP4540 TUTORIAL PROFESSOR: DR SHU-CHING CHEN TA: H S IN-YU HA OUTLINE Postgresql installation Introduction of JDBC Stored Procedure POSTGRES INSTALLATION (1) Extract the source file Start the configuration

More information