Dealing with Enterprise Database Challenges

Size: px
Start display at page:

Download "Dealing with Enterprise Database Challenges"

Transcription

1 Dealing with Enterprise Database Challenges Featuring the Apache ibatis Data Mapping Framework Scope ibatis Data Mapping Framework Introduction, SQL Mapping defined, examples. SQL Is it still relevant? ibatis is a hybrid solution Features, qualities, competition, other solutions. The Challenges Ownership, access, complexity, normalization, skinny design. An Introduction to Apache ibatis SQL Mapping defined

2 Concept SQL Mapping SQL as a Black Box OUTPUT OUTPUT SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEE WHERE EMPLOYEE_NUMBER = 1234 INPUT SQL Mapping Maps objects to SQL statements NOT Classes to Tables Fully functional SQL via named statements NOT generated SQL (although that s possible) For example

3 CLASSES Order id : int total : BigDecimal pst : BigDecimal gst : BigDeciml lineitems : Collection date : Date LineItem id : int product : Product order : Order cost : BigDecimal retail : BigDecimal Product id : int name : String description : String cost : BigDecimal retail : BigDeciml TABLES Mapping Layer Order LineItem Product The Product Table PRODUCT PRODUCT_ID NAME DESCRIPTION COST RETAIL INTEGER VARCHAR TEXT MONEY MONEY PK, NN NN NN NN NN The Person Class public class Product { private int id; private String name; private String description; private BigDecimal cost; private BigDecimal retail; // getters/setters implied }

4 The SQL <select id= getproduct" parameterclass= int resultclass="examples.domain.product"> SELECT PRODUCT_ID as id, NAME, DESCRIPTION, COST, RETAIL, FROM PRODUCT WHERE PRODUCT_ID = #id# </select> Simple Configuration String resource = SqlMapConfig.xml ; Reader reader = Resources.getResourceAsReader (resource); SqlMapClient sqlmap = SqlMapClientBuilder.buildSqlMapClient(reader); Executing the Query Product product = (Product) sqlmap.queryforobject ( getproduct, 5);

5 Audience: OMG! Did you just hand code SQL? Clinton: Yes. SQL Is it still relevant? SQL Structured Query Language Introduced in 1973 by IBM Based on relational model of 1970 Based on sound mathematical principles Significant industry investment Has withstood the test of time Nothing else has even come close

6 SQL is much more than a simple data update and retrieval mechanism. SQL's query processing can perform many tasks. By hiding SQL, application developers are excluding a powerful tool. Writing SQL is NOT a Sin! Is SQL what we want to avoid? SELECT * FROM EMPLOYEE WHERE EMPLOYEE_NUMBER = 99

7 Or is it JDBC? public Employee getemployee (int id) throws SQLException { Employee employee = null; String sql = "SELECT * FROM EMPLOYEE " + "WHERE EMPLOYEE_NUMBER =?"; Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = datasource.getconnection (); ps = conn.preparestatement(sql); ps.setint(1, id); rs = ps.executequery(); employee = null; while (rs.next()) { employee = new Employee(); employee.setid (rs.getint("emp_id")); employee.setemployeenumber (rs.getint("emp_number")); employee.setfirstname (rs.getstring("emp_first_name")); employee.setlastname (rs.getstring("emp_last_name")); employee.settitle (rs.getstring("emp_title")); } } finally { try { if (rs!= null) rs.close(); } finally { try { if (ps!= null) ps.close(); } finally { if (conn!= null) conn.close(); } } } return employee; } ibatis is a hybrid solution Qualities, features and competition. Apache ibatis Is tolerant of complex/bad database designs Isolates the data model Separates concerns Divides labor Saves time Reduces code Can improve overall performance

8 Advanced ibatis Features Supports all types Objects, Primitives, Arrays, Collections Caching (use case vs. holistic) Lazy Loading or Join Mapping (1:1, 1:M, M:N) Bytecode enhancement XML parameters and results Transaction Management (Local/Global) But yes SQL Coding is Required Many people consider this an advantage Many others eventually realize it s required Few people consider it a problem SQL can be done fast and done well Use good tools (there are plenty) Generation is an option (but not a best practice) The SQL may already exist (consider app rewrites or ports) Other SQL Mapper-Like Tools JDBC PreparedStatement Embedded SQL as a language feature Pro*C, Forte TOOL, SQLJ Spring framework Voruta SQLC (ibatis inspired?) O/R Broker (ibatis inspired) Mr. Persister (ibatis inspired) Aximol SQL Library (ibatis inspired)

9 Other Solutions Stored procedures Inline SQL Dynamic SQL Object Relational Mapping ibatis IS A HYBRID! A Hybrid? Full support for stored procedures SQL is written just like inline SQL Inline SQL for XML Advanced dynamic SQL definition features A big problem even for the best ORM tools Shares many features with ORM Caching, lazy loading, join mapping, bytecode enhancement etc. The Challenges Welcome, to the real world. go for the red pill

10 Challenges of Politics boo! Database ownership and control Change management Cost allocation who pays for changes? No developer access to design Proprietary/3 rd Party legal issues Agile methods vs. legacy methods ibatis isolates the data model, the SQL, the work and the responsibility. In doing so, it isolates much of the politics surrounding the enterprise database as well. Challenges of Imperfection doh! Denormalized models Super-normalized models Modeled Value Entities Thin data models (rows vs. columns) Implicit relationships Overcomplicated relationships

11 ibatis works even when the data model does not map to the object model. Challenges of Legacy OMG! Too many tables to map Encoded Fields No primary keys Hierarchical ERP systems Yo DB so old, its primary keys are in Roman numerals! ibatis allows you to build modern applications on top of legacy databases by allowing you more freedom to define and tune your mappings that deal with unique databases.

12 Challenges of Technology Yay! Distributed transactions Distributed caching Vendor specific database features Break sponsored by Audience Response Questions?

13 More simple examples To inspire questions or support answers. <select id="getproduct" parameterclass= int resultclass= com.domain.product"> select PRODUCT_ID as id, NAME as name, DESCN as description, CATEGORY as category from PRODUCT where PRODUCTID = #id# </select> <resultmap id="productresult class="com.domain.product"> <result property="id" column="productid"/> <result property="name" column="name"/> <result property="description" column="descn"/> <result property="categoryid" column="category"/> </resultmap> <select id="getproduct parameterclass= int resultmap="productresult"> select * from PRODUCT where PRODUCTID = #id# </select>

14 <parametermap id="productparameter class= int"> <parameter property= id"/> </parametermap> <select id="getproduct parametermap= productparameter resultclass= com.domain.product > select PRODUCT_ID as id, NAME as name, DESCN as description, CATEGORY as category from PRODUCT where PRODUCTID =? </select> <statement id= insertproduct parameterclass= com.domain.product > insert into PRODUCT values (#id#,#name#,#description#,#category#) </statement> <statement id= updateproduct parameterclass= com.domain.product > update PRODUCT set NAME = #name#,desc = #description#,category=#category# where PRODUCT_ID = #id# </statement> <statement id= deleteproduct parameterclass= com.domain.product > delete PRODUCT where PRODUCT_ID = #id# </statement> Simple Query Product product =(Product) sqlmap.queryforobject ( getproduct, 23);

15 Insert, Update, Delete Product product = new Product(); product.setid(324); product.setname( Shih Tzu ); Product.setDescription( Some longer description. ); product.setcategory( DOG ); sqlmap.insert( insertproduct, product); product.setcategory( CAT ); sqlmap.update( updateproduct, product); product.delete( deleteproduct, product); Transaction Handling try { sqlmap.starttransaction(); sqlmap.insert( insertproduct, product); sqlmap.update( updateproduct, product); product.delete( deleteproduct, product); sqlmap.committransaction(); } finally { sqlmap.endtransaction(); } What does an application using SQL Maps look like? See JPetStore 4

ibatis SQL Maps Version 2.0 Clinton Begin

ibatis SQL Maps Version 2.0 Clinton Begin ibatis SQL Maps Page 1 of 10 ibatis SQL Maps Version 2.0 2004 6 17 Clinton Begin ibatis SQL Maps Page 2 of 10 SQL Map ibatis SQL Maps 2.0 ibatis SQL Maps Tutorial Clinton Begin email toleu@21cn.com Blog

More information

ibatis in Action by Clinton Begin Brandon Goodin Larry Meadors Chapter 2

ibatis in Action by Clinton Begin Brandon Goodin Larry Meadors Chapter 2 SAMPLE CHAPTER ibatis in Action by Clinton Begin Brandon Goodin Larry Meadors Chapter 2 Copyright 2007 Manning Publications brief contents PART I INTRODUCTION... 1 1 The ibatis philosophy 3 2 What is ibatis?

More information

SQLMap Editor. Summary. Description. Display. Main features. SQLMap Tree

SQLMap Editor. Summary. Description. Display. Main features. SQLMap Tree SQLMap Editor Summary The SQLMap Editor is a tool for conveniently editing SQL map files. Knowledge of XML syntax is not required in order to use the editor s form UI to create SQL map files. The editor

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

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

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

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

Modern Java Programming with Spring

Modern Java Programming with Spring Modern Java Programming with Spring Trainer and Senior Consultant Joined SpringSource in 2008 Already taught Spring in more than 20 countries Core-Spring, Spring MVC, Spring with JPA/Hibernate In charge

More information

Introduction. Who wants to study databases?

Introduction. Who wants to study databases? Introduction Example databases Overview of concepts Why use database systems Who wants to study databases? What is the use of all the courses I have taken so far? This course shows very concrete how CS

More information

Database Application Development

Database Application Development CS 461: Database Systems Database Application Development supplementary material: Database Management Systems Sec. 6.2, 6.3 DBUtils.java, Student.java, Registrar.java, RegistrarServlet.java, PgRegistrar.sql

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

7 Reasons to use Spring. Arjen Poutsma SpringSource

7 Reasons to use Spring. Arjen Poutsma SpringSource 7 Reasons to use Spring Arjen Poutsma SpringSource About Me Fifteen years of experience in Enterprise Software Development Development lead of Spring Web Services Developer on Spring 3 Contributor to various

More information

JDBC, Transactions. Niklas Fors JDBC 1 / 38

JDBC, Transactions. Niklas Fors JDBC 1 / 38 JDBC, Transactions SQL in Programs Embedded SQL and Dynamic SQL JDBC Drivers, Connections, Statements, Prepared Statements Updates, Queries, Result Sets Transactions Niklas Fors (niklas.fors@cs.lth.se)

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

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

Object-Relational Mapping Tools let s talk to each other!

Object-Relational Mapping Tools let s talk to each other! Object-Relational Mapping Tools let s talk to each other! BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH Agenda O/R Mappers

More information

Introduction. Example Databases

Introduction. Example Databases Introduction Example databases Overview of concepts Why use database systems Example Databases University Data: departments, students, exams, rooms,... Usage: creating exam plans, enter exam results, create

More information

Working with Databases and Java

Working with Databases and Java Working with Databases and Java Pedro Contreras Department of Computer Science Royal Holloway, University of London January 30, 2008 Outline Introduction to relational databases Introduction to Structured

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

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

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

Object Persistence and Object-Relational Mapping. James Brucker

Object Persistence and Object-Relational Mapping. James Brucker Object Persistence and Object-Relational Mapping James Brucker Goal Applications need to save data to persistent storage. Persistent storage can be database, directory service, XML files, spreadsheet,...

More information

L6 Application Programming. Thibault Sellam Fall 2018

L6 Application Programming. Thibault Sellam Fall 2018 L6 Application Programming Thibault Sellam Fall 2018 Topics Interfacing with applications Database APIs (DBAPIS) Cursors SQL!= Programming Language Not a general purpose programming language Tailored for

More information

Software LEIC/LETI. Lecture 15

Software LEIC/LETI. Lecture 15 Software Engineering @ LEIC/LETI Lecture 15 Last Lecture Software Architecture Architectural Patterns Application Architectures Software Architecture in the Project Today Enterprise Application Architecture

More information

Perform Database Actions Using Java 8 Stream Syntax Instead of SQL. Emil Forslund Java Developer Speedment, Inc.

Perform Database Actions Using Java 8 Stream Syntax Instead of SQL. Emil Forslund Java Developer Speedment, Inc. Perform Database Actions Using Java 8 Stream Syntax Instead of SQL Emil Forslund Java Developer Speedment, Inc. About Me Emil Forslund Java Developer Speedment Palo Alto Age of Java Why Should You Need

More information

Software MEIC. (Lesson 22)

Software MEIC. (Lesson 22) Software Architecture @ MEIC (Lesson 22)! Last class Finished Allocation viewtype Software architecture of enterprise applications The architecture of Amazon Silk Today Digging into the Domain Logic Layer

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

Internals of Derby An Open Source Pure Java Relational Database Engine

Internals of Derby An Open Source Pure Java Relational Database Engine Internals of Derby An Open Source Pure Java Relational Database Engine Daniel John Debrunner STSM IBM Data Management (1.2 2004/10/24) Dan Debrunner Internals of Derby Page 1 Introduction After a quick

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

Scott Meder Senior Regional Sales Manager

Scott Meder Senior Regional Sales Manager www.raima.com Scott Meder Senior Regional Sales Manager scott.meder@raima.com Short Introduction to Raima What is Data Management What are your requirements? How do I make the right decision? - Architecture

More information

Building and Managing Efficient data access to DB2. Vijay Bommireddipalli, Solutions Architect, Optim

Building and Managing Efficient data access to DB2. Vijay Bommireddipalli, Solutions Architect, Optim Building and Managing Efficient data access to DB2 Vijay Bommireddipalli, vijayrb@us.ibm.com Solutions Architect, Optim September 16, 2010 Information Management Disclaimer THE INFORMATION CONTAINED IN

More information

The Many Faces Of Apache Ignite. David Robinson, Software Engineer May 13, 2016

The Many Faces Of Apache Ignite. David Robinson, Software Engineer May 13, 2016 The Many Faces Of Apache Ignite David Robinson, Software Engineer May 13, 2016 A Face In elementary geometry, a face is a two-dimensional polygon on the boundary of a polyhedron. 2 Attribution:Robert Webb's

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 10 Java and SQL. Wang Yang

Chapter 10 Java and SQL. Wang Yang Chapter 10 Java and SQL Wang Yang wyang@njnet.edu.cn Outline Concern Data - File & IO vs. Database &SQL Database & SQL How Connect Java to SQL - Java Model for Database Java Database Connectivity (JDBC)

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

Unit 3 - Java Data Base Connectivity

Unit 3 - Java Data Base Connectivity Two-Tier Database Design The two-tier is based on Client-Server architecture. The direct communication takes place between client and server. There is no mediator between client and server. Because of

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

Consistency The DBMS must ensure the database will always be in a consistent state. Whenever data is modified, the database will change from one

Consistency The DBMS must ensure the database will always be in a consistent state. Whenever data is modified, the database will change from one Data Management We start our studies of Computer Science with the problem of data storage and organization. Nowadays, we are inundated by data from all over. To name a few data sources in our lives, we

More information

Type-safe SQL embedded in Scala

Type-safe SQL embedded in Scala Type-safe SQL embedded in Scala Christoph Wulf University of Kiel cwu@informatik.uni-kiel.de Christoph Wulf (University of Kiel) Type-safe SQL embedded in Scala cwu@informatik.uni-kiel.de 1 / 34 Embedded

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

This tutorial is going to guide you throughout the setup of your. workspace. First, we re going to see how to install the MySQL RDBMS

This tutorial is going to guide you throughout the setup of your. workspace. First, we re going to see how to install the MySQL RDBMS Installing MySQL This tutorial is going to guide you throughout the setup of your workspace. First, we re going to see how to install the MySQL RDBMS in your preferred OS. This is going to be the only

More information

purequery Deep Dive Part 2: Data Access Development Dan Galvin Galvin Consulting, Inc.

purequery Deep Dive Part 2: Data Access Development Dan Galvin Galvin Consulting, Inc. purequery Deep Dive Part 2: Data Access Development Dan Galvin Galvin Consulting, Inc. Agenda The Problem Data Access in Java What is purequery? How Could purequery Help within My Data Access Architecture?

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

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

SQL, the underestimated Big Data technology

SQL, the underestimated Big Data technology SQL, the underestimated Big Data technology No tation Seen at the 2013 O Reilly Strata Conf: History of NoSQL by Mark Madsen. Picture published by Edd Dumbill NoSQL? NoSQL? No, SQL! Our vision at Data

More information

TopLink Grid: Scaling JPA applications with Coherence

TopLink Grid: Scaling JPA applications with Coherence TopLink Grid: Scaling JPA applications with Coherence Shaun Smith Principal Product Manager shaun.smith@oracle.com Java Persistence: The Problem Space Customer id: int name: String

More information

Hibernate Overview. By Khader Shaik

Hibernate Overview. By Khader Shaik Hibernate Overview By Khader Shaik 1 Agenda Introduction to ORM Overview of Hibernate Why Hibernate Anatomy of Example Overview of HQL Architecture Overview Comparison with ibatis and JPA 2 Introduction

More information

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Copyright 2012, Oracle and/or its affiliates. All rights reserved. 1 ADF Mobile The Data Layer 2 Mobile Device Device Services ADF Mobile Architecture Device Native Container HTML5 & JavaScript Presentation Phone Gap Native View ADF Mobile XML View ADF Controller Local

More information

extreme Scale caching alternatives for Bank ATM Offerings

extreme Scale caching alternatives for Bank ATM Offerings Customer POC Experience with WebSphere extreme Scale extreme Scale caching alternatives for Bank ATM Offerings Agenda Business and application challenges where elastic caching applies Customer POC Context

More information

Database Application Architectures

Database Application Architectures Chapter 15 Database Application Architectures Database Systems(Part 2) p. 221/287 Database Applications Most users do not interact directly with a database system The DBMS is hidden behind application

More information

<Insert Picture Here> DBA s New Best Friend: Advanced SQL Tuning Features of Oracle Database 11g

<Insert Picture Here> DBA s New Best Friend: Advanced SQL Tuning Features of Oracle Database 11g DBA s New Best Friend: Advanced SQL Tuning Features of Oracle Database 11g Peter Belknap, Sergey Koltakov, Jack Raitto The following is intended to outline our general product direction.

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

Java Persistence API (JPA)

Java Persistence API (JPA) Java Persistence API (JPA) Petr Křemen petr.kremen@fel.cvut.cz Winter Term 2016 Petr Křemen (petr.kremen@fel.cvut.cz) Java Persistence API (JPA) Winter Term 2016 1 / 53 Contents 1 Data Persistence 2 From

More information

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material,

More information

AC : EXPLORATION OF JAVA PERSISTENCE

AC : EXPLORATION OF JAVA PERSISTENCE AC 2007-1400: EXPLORATION OF JAVA PERSISTENCE Robert E. Broadbent, Brigham Young University Michael Bailey, Brigham Young University Joseph Ekstrom, Brigham Young University Scott Hart, Brigham Young University

More information

What data persistence means? We manipulate data (represented as object state) that need to be stored

What data persistence means? We manipulate data (represented as object state) that need to be stored 1 Data Persistence What data persistence means? We manipulate data (represented as object state) that need to be stored persistently to survive a single run of the application queriably to be able to retrieve/access

More information

Patterns of Enterprise Application Architecture

Patterns of Enterprise Application Architecture Patterns of Enterprise Application Architecture CS446/ECE452/SE464 Majed Al-Shawa Q1: Performance There are two systems, Shark and Whale. Each system is running on a single processor, but Shark produces

More information

Software MEIC. (Lesson 26)

Software MEIC. (Lesson 26) Software Architecture @ MEIC (Lesson 26) Last class The Architecture of the Morrison's OrderPad (continuation) Data source architectural patterns Today Domain logic patterns Organizing the Domain Logic

More information

CSE 510 Web Data Engineering

CSE 510 Web Data Engineering CSE 510 Web Data Engineering Data Access Object (DAO) Java Design Pattern UB CSE 510 Web Data Engineering Data Access Object (DAO) Java Design Pattern A Data Access Object (DAO) is a bean encapsulating

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

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

Database Application Development

Database Application Development CS 500: Fundamentals of Databases Database Application Development supplementary material: Database Management Systems Sec. 6.2, 6.3 DBUtils.java, Student.java, Registrar.java, RegistrarServlet.java, PgRegistrar.sql

More information

Migrating traditional Java EE applications to mobile

Migrating traditional Java EE applications to mobile Migrating traditional Java EE applications to mobile Serge Pagop Sr. Channel MW Solution Architect, Red Hat spagop@redhat.com Burr Sutter Product Management Director, Red Hat bsutter@redhat.com 2014-04-16

More information

Topics. History. Architecture. MongoDB, Mongoose - RDBMS - SQL. - NoSQL

Topics. History. Architecture. MongoDB, Mongoose - RDBMS - SQL. - NoSQL Databases Topics History - RDBMS - SQL Architecture - SQL - NoSQL MongoDB, Mongoose Persistent Data Storage What features do we want in a persistent data storage system? We have been using text files to

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

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

Page 1

Page 1 Java 1. Core java a. Core Java Programming Introduction of Java Introduction to Java; features of Java Comparison with C and C++ Download and install JDK/JRE (Environment variables set up) The JDK Directory

More information

Database connectivity (I) ()

Database connectivity (I) () Agenda Lecture (06) Database connectivity (I) () Dr. Ahmed ElShafee Introduction Relational Database SQL Database Programming JDBC Overview Connecting DB 1 Dr. Ahmed ElShafee, ACU Spring 2011, Distributed

More information

sqoop Automatic database import Aaron Kimball Cloudera Inc. June 18, 2009

sqoop Automatic database import Aaron Kimball Cloudera Inc. June 18, 2009 sqoop Automatic database import Aaron Kimball Cloudera Inc. June 18, 2009 The problem Structured data already captured in databases should be used with unstructured data in Hadoop Tedious glue code necessary

More information

Quality Assessment of Embedded Language Modules: Targeting the spotlight on heterogeneous systems

Quality Assessment of Embedded Language Modules: Targeting the spotlight on heterogeneous systems Quality Assessment of Embedded Language Modules: Targeting the spotlight on heterogeneous systems Martin van der Vlist Laboratory for Quality Software (LaQuSo) Overview Introduction COBOL Approach Results

More information

This lecture. Databases - JDBC I. Application Programs. Database Access End Users

This lecture. Databases - JDBC I. Application Programs. Database Access End Users This lecture Databases - I The lecture starts discussion of how a Java-based application program connects to a database using. (GF Royle 2006-8, N Spadaccini 2008) Databases - I 1 / 24 (GF Royle 2006-8,

More information

ibatis, Hibernate, and JPA: Which is right for you?

ibatis, Hibernate, and JPA: Which is right for you? Sponsored by: This story appeared on JavaWorld at http://www.javaworld.com/javaworld/jw-07-2008/jw-07-orm-comparison.html ibatis, Hibernate, and JPA: Which is right for you? Object-relational mapping solutions

More information

COMP283-Lecture 6 Applied Database Management

COMP283-Lecture 6 Applied Database Management Applied Database Management Introduction Database Administration More Optimisation Maintaining Data Integrity Improving Performance 1 DB Administration: Full-text index Full Text Index Index large text

More information

Best Practices for Boosting Java Application Performance and Availability on IBM DB2

Best Practices for Boosting Java Application Performance and Availability on IBM DB2 Best Practices for Boosting Java Application Performance and Availability on IBM DB2 Pallavi Priyadarshini Architect, JCC DB2 Connect, IBM pallavipr@in.ibm.com Agenda DB2 JDBC driver architecture and ecosystem

More information

Three-Tier Architecture

Three-Tier Architecture Three-Tier Architecture Located @ Any PC HTTP Requests Microsoft Internet Explorer HTML Located @ Your PC Apache Tomcat App Server Java Server Pages (JSPs) JDBC Requests Tuples Located @ DBLab MS SQL Server

More information

Hsql Java.sql.sqlexception Invalid Schema Name

Hsql Java.sql.sqlexception Invalid Schema Name Hsql Java.sql.sqlexception Invalid Schema Name I am new to Spring, thank you for your help. My JUnit test class works very well : import java.sql.sqlexception, import javax.sql.datasource, import org.junit.test.

More information

Breaking the PL/SQL Barrier for Procedures Calling Java Routines from Validation/Derivation Procedures. Thomas Struzik

Breaking the PL/SQL Barrier for Procedures Calling Java Routines from Validation/Derivation Procedures. Thomas Struzik Breaking the PL/SQL Barrier for Procedures Calling Java Routines from Validation/Derivation Procedures Thomas Struzik DBMS Consulting 12 October 2010 Validation/Derivation Procedures Acknowledgements Many

More information

Injection Of Datasource

Injection Of Datasource Injection Of Datasource Example injection-of-datasource can be browsed at https://github.com/apache/tomee/tree/master/examples/injection-of-datasource Help us document this example! Click the blue pencil

More information

Introduction to K2View Fabric

Introduction to K2View Fabric Introduction to K2View Fabric 1 Introduction to K2View Fabric Overview In every industry, the amount of data being created and consumed on a daily basis is growing exponentially. Enterprises are struggling

More information

Complete Java Contents

Complete Java Contents Complete Java Contents Duration: 60 Hours (2.5 Months) Core Java (Duration: 25 Hours (1 Month)) Java Introduction Java Versions Java Features Downloading and Installing Java Setup Java Environment Developing

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

Embedded SQL. Host Language (record-oriented) 3. Process a tuple at a time. 1. Query. 4. Close Cursor

Embedded SQL. Host Language (record-oriented) 3. Process a tuple at a time. 1. Query. 4. Close Cursor Embedded SQL Host Language (record-oriented) 3. Process a tuple at a time 1. Query 4. Close Cursor DBMS (set-oriented) 2. Evaluate query. Provide cursor to query result. 1 JDBC Java DataBase Connectivity

More information

Database Fundamentals

Database Fundamentals Database Fundamentals presented to NYPHP May 22, 2007 by Kenneth Downs Secure Data Software, Inc. ken@secdat.com www.secdat.com www.andromeda project.org Pre Relational In the bad old days, every program

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

SQL DML and DB Applications, JDBC

SQL DML and DB Applications, JDBC SQL DML and DB Applications, JDBC Week 4.2 Week 4 MIE253-Consens 1 Schedule Week Date Lecture Topic 1 Jan 9 Introduction to Data Management 2 Jan 16 The Relational Model 3 Jan. 23 Constraints and SQL DDL

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

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

Designing Performance-Optimized JDBC Applications

Designing Performance-Optimized JDBC Applications Designing Performance-Optimized JDBC Applications Introduction Recognized as experts in database access standards such as ODBC, Java JDBC, and ADO/OLE DB, Progress has consistently been instrumental in

More information

Where Are We? Next Few Lectures. Integrity Constraints Motivation. Constraints in E/R Diagrams. Keys in E/R Diagrams

Where Are We? Next Few Lectures. Integrity Constraints Motivation. Constraints in E/R Diagrams. Keys in E/R Diagrams Where Are We? Introduction to Data Management CSE 344 Lecture 15: Constraints We know quite a bit about using a DBMS Start with real-world problem, design ER diagram From ER diagram to relations -> conceptual

More information

Tiers (or layers) Separation of concerns

Tiers (or layers) Separation of concerns Tiers (or layers) Separation of concerns Hiding the type of storage from the client class Let s say we have a program that needs to fetch objects from a storage. Should the program have to be concerned

More information

Introduction to Database Systems CSE 414

Introduction to Database Systems CSE 414 Introduction to Database Systems CSE 414 Lecture 16: Constraints CSE 414 - Spring 2015 1 Announcements Reminders: Web quiz due Monday night XML homework due Wednesday night Today: Constraints (7.1, 7.2,

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

Student Number: Please fill out the identification section above as well as the one on the back page, and read the instructions below. Good Luck!

Student Number: Please fill out the identification section above as well as the one on the back page, and read the instructions below. Good Luck! CSC 343H1S 2013 Test 2 Duration 50 minutes Aids allowed: none Last Name: Lecture Section: Day Student Number: First Name: Instructor: Horton Please fill out the identification section above as well as

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

SQL Server 2008 Tutorial 3: Database Creation

SQL Server 2008 Tutorial 3: Database Creation SQL Server 2008 Tutorial 3: Database Creation IT 5101 Introduction to Database Systems J.G. Zheng Fall 2011 DDL Action in SQL Server Creating and modifying structures using the graphical interface Table

More information

John Edgar 2

John Edgar 2 CMPT 354 http://www.cs.sfu.ca/coursecentral/354/johnwill/ John Edgar 2 Assignments 30% Midterm exam in class 20% Final exam 50% John Edgar 3 A database is a collection of information Databases of one

More information

LAMPIRAN. public class PengajuanDana extends javax.swing.jinternalframe { Connection conn = null; ResultSet rs = null; PreparedStatement ps = null;

LAMPIRAN. public class PengajuanDana extends javax.swing.jinternalframe { Connection conn = null; ResultSet rs = null; PreparedStatement ps = null; 73 LAMPIRAN Source Code Aplikasi 1. Source Code Connect ke Database public class connect Connection conn = null; public static Connection tadb() try Class.forName("com.mysql.jdbc.Driver"); Connection conn

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

Clean Pragmatic Architecture

Clean Pragmatic Architecture Enterprise Java Training Brainstorming a Clean Pragmatic Architecture Victor Rentea 22 feb 2017 Single Responsibility Principle High Cohesion A method should do only ONE thing. A class should have only

More information

1. PhP Project. Create a new PhP Project as shown below and click next

1. PhP Project. Create a new PhP Project as shown below and click next 1. PhP Project Create a new PhP Project as shown below and click next 1 Choose Local Web Site (Apache 24 needs to be installed) Project URL is http://localhost/projectname Then, click next We do not use

More information