This tutorial will teach you how to use Hibernate to develop your database based web applications in simple and easy steps.

Size: px
Start display at page:

Download "This tutorial will teach you how to use Hibernate to develop your database based web applications in simple and easy steps."

Transcription

1

2 About the Tutorial Hibernate is a high-performance Object/Relational persistence and query service, which is licensed under the open source GNU Lesser General Public License (LGPL) and is free to download. Hibernate not only takes care of the mapping from Java classes to database tables (and from Java data types to SQL data types), but also provides data query and retrieval facilities. This tutorial will teach you how to use Hibernate to develop your database based web applications in simple and easy steps. Audience This tutorial is designed for all those Java programmers who would like to understand the Hibernate framework and its API. Prerequisites We assume you have a good understanding of the Java programming language. A basic understanding of relational databases, JDBC, and SQL will be very helpful in understanding this tutorial. Copyright & Disclaimer Copyright 2015 by Tutorials Point (I) Pvt. Ltd. All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish any contents or a part of the contents of this e-book in any manner without written consent of the publisher. We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness, or completeness of our website or its contents including this tutorial. If you discover any errors on our website or in this tutorial, please notify us at contact@tutorialspoint.com i

3 Table of Contents About the Tutorial... i Audience... i Prerequisites... i Copyright & Disclaimer... i Table of Contents... ii 1. HIBERNATE ORM OVERVIEW... 1 What is JDBC?... 1 Pros and Cons of JDBC... 1 Why Object Relational Mapping (ORM)?... 1 What is ORM?... 3 Java ORM Frameworks HIBERNATE OVERVIEW... 5 Hibernate Advantages... 5 Supported Databases... 6 Supported Technologies HIBERNATE ARCHITECTURE... 7 Configuration Object... 8 SessionFactory Object... 9 Session Object... 9 Transaction Object... 9 Query Object... 9 Criteria Object HIBERNATE ENVIRONMENT SETUP Downloading Hibernate Installing Hibernate ii

4 Hibernate Prerequisites HIBERNATE CONFIGURATION Hibernate with MySQL Database HIBERNATE SESSIONS Session Interface Methods HIBERNATE PERSISTENT CLASS Simple POJO Example HIBERNATE MAPPING FILES HIBERNATE MAPPING TYPES Primitive Types Date and Time Types Binary and Large Object Types JDK-related Types HIBERNATE EXAMPLES Create POJO Classes Create Database Tables Create Mapping Configuration File Create Application Class Compilation and Execution HIBERNATE O/R MAPPINGS Collections Mappings Hibernate Set Mappings Hibernate SortedSet Mappings Hibernate List Mappings Hibernate Bag Mappings iii

5 Hibernate Map Mappings Hibernate SortedMap Mappings Association Mappings Hibernate Many-to-One Mappings Hibernate One-to-One Mappings Hibernate One-to-Many Mappings Hibernate Many-to-Many Mappings Component Mappings Hibernate Component Mappings HIBERNATE ANNOTATIONS Environment Setup for Hibernate Annotation Annotated Class Example... Annotation... Annotation... Annotations... Annotation Create Application Class Database Configuration Compilation and Execution HIBERNATE QUERY LANGUAGE FROM Clause AS Clause SELECT Clause WHERE Clause ORDER BY Clause GROUP by Clause Using Named Parameters iv

6 UPDATE Clause DELETE Clause INSERT Clause Aggregate Methods Pagination using Query HIBERNATE CRITERIA QUERIES Restrictions with Criteria Pagination Using Criteria Sorting the Results Projections & Aggregations Criteria Queries Example Compilation and Execution HIBERNATE NATIVE SQL Scalar Queries Entity Queries Named SQL Queries Native SQL Example Compilation and Execution HIBERNATE CACHING First-level Cache Second-level Cache Query-level Cache The Second Level Cache Concurrency Strategies Cache Provider The Query-level Cache v

7 17. HIBERNATE BATCH PROCESSING Batch Processing Example Compilation and Execution HIBERNATE INTERCEPTORS How to Use Interceptors? Create POJO Classes Create Database Tables Create Mapping Configuration File Create Application Class Compilation and Execution vi

8 1. HIBERNATE ORM OVERVIEW Hibernate What is JDBC? JDBC stands for Java Database Connectivity. It provides a set of Java API for accessing the relational databases from Java program. These Java APIs enables Java programs to execute SQL statements and interact with any SQL compliant database. JDBC provides a flexible architecture to write a database independent application that can run on different platforms and interact with different DBMS without any modification. Pros and Cons of JDBC Pros of JDBC Clean and simple SQL processing Good performance with large data Very good for small applications Simple syntax so easy to learn Cons of JDBC Complex if it is used in large projects Large programming overhead No encapsulation Hard to implement MVC concept. Query is DBMS specific. Why Object Relational Mapping (ORM)? When we work with an object-oriented system, there is a mismatch between the object model and the relational database. RDBMSs represent data in a tabular format whereas object-oriented languages, such as Java or C# represent it as an interconnected graph of objects. Consider the following Java Class with proper constructors and associated public function: public class Employee { private int id; private String first_name; private String last_name; private int salary; public Employee() { public Employee(String fname, String lname, int salary) { this.first_name = fname; this.last_name = lname; this.salary = salary; 1

9 public int getid() { return id; public String getfirstname() { return first_name; public String getlastname() { return last_name; public int getsalary() { return salary; Consider the above objects are to be stored and retrieved into the following RDBMS table: create table EMPLOYEE ( id INT NOT NULL auto_increment, first_name VARCHAR(20) default NULL, last_name VARCHAR(20) default NULL, ); salary PRIMARY KEY (id) INT default NULL, First problem, what if we need to modify the design of our database after having developed a few pages or our application? Second, loading and storing objects in a relational database exposes us to the following five mismatch problems: Mismatch Granularity Inheritance Identity Associations Description Sometimes you will have an object model, which has more classes than the number of corresponding tables in the database. RDBMSs do not define anything similar to Inheritance, which is a natural paradigm in object-oriented programming languages. An RDBMS defines exactly one notion of 'sameness': the primary key. Java, however, defines both object identity (a==b) and object equality (a.equals(b)). Object-oriented languages represent associations using object references whereas an RDBMS represents an association as a foreign key column. 2

10 Navigation The ways you access objects in Java and in RDBMS are fundamentally different. The Object-Relational Mapping (ORM) is the solution to handle all the above impedance mismatches. What is ORM? ORM stands for Object-Relational Mapping (ORM) is a programming technique for converting data between relational databases and object oriented programming languages such as Java, C#, etc. An ORM system has the following advantages over plain JDBC: S.N. Advantages 1 Let s business code access objects rather than DB tables. 2 Hides details of SQL queries from OO logic. 3 Based on JDBC 'under the hood.' 4 No need to deal with the database implementation. 5 Entities based on business concepts rather than database structure. 6 Transaction management and automatic key generation. 7 Fast development of application. An ORM solution consists of the following four entities: S.N. Solutions 1 An API to perform basic CRUD operations on objects of persistent classes. 2 A language or API to specify queries that refer to classes and properties of classes. 3 A configurable facility for specifying mapping metadata. 4 A technique to interact with transactional objects to perform dirty checking, lazy association fetching, and other optimization functions. 3

11 Java ORM Frameworks There are several persistent frameworks and ORM options in Java. A persistent framework is an ORM service that stores and retrieves objects into a relational database. Enterprise JavaBeans Entity Beans Java Data Objects Castor TopLink Spring DAO Hibernate, and many more 4

12 2. HIBERNATE OVERVIEW Hibernate Hibernate is an Object-Relational Mapping(ORM) solution for JAVA. It is an open source persistent framework created by Gavin King in It is a powerful, high performance Object-Relational Persistence and Query service for any Java Application. Hibernate maps Java classes to database tables and from Java data types to SQL data types and relieves the developer from 95% of common data persistence related programming tasks. Hibernate sits between traditional Java objects and database server to handle all the works in persisting those objects based on the appropriate O/R mechanisms and patterns. Hibernate Advantages Hibernate takes care of mapping Java classes to database tables using XML files and without writing any line of code. Provides simple APIs for storing and retrieving Java objects directly to and from the database. If there is change in the database or in any table, then you need to change the XML file properties only. Abstracts away the unfamiliar SQL types and provides a way to work around familiar Java Objects. Hibernate does not require an application server to operate. Manipulates Complex associations of objects of your database. Minimizes database access with smart fetching strategies. Provides simple querying of data. 5

13 Supported Databases Hibernate supports almost all the major RDBMS. Following is a list of few of the database engines supported by Hibernate: HSQL Database Engine DB2/NT MySQL PostgreSQL FrontBase Oracle Microsoft SQL Server Database Sybase SQL Server Informix Dynamic Server Supported Technologies Hibernate supports a variety of other technologies, including: XDoclet Spring J2EE Eclipse plug-ins Maven 6

14 3. HIBERNATE ARCHITECTURE Hibernate Hibernate has a layered architecture which helps the user to operate without having to know the underlying APIs. Hibernate makes use of the database and configuration data to provide persistence services (and persistent objects) to the application. Following is a very high level view of the Hibernate Application Architecture. 7

15 Following is a detailed view of the Hibernate Application Architecture with its important core classes. Hibernate uses various existing Java APIs, like JDBC, Java Transaction API(JTA), and Java Naming and Directory Interface (JNDI). JDBC provides a rudimentary level of abstraction of functionality common to relational databases, allowing almost any database with a JDBC driver to be supported by Hibernate. JNDI and JTA allow Hibernate to be integrated with J2EE application servers. Following section gives brief description of each of the class objects involved in Hibernate Application Architecture. Configuration Object The Configuration object is the first Hibernate object you create in any Hibernate application. It is usually created only once during application initialization. It represents a configuration or properties file required by the Hibernate. The Configuration object provides two keys components: Database Connection: This is handled through one or more configuration files supported by Hibernate. These files are hibernate.properties and hibernate.cfg.xml. Class Mapping Setup: This component creates the connection between the Java classes and database tables. 8

16 SessionFactory Object Configuration object is used to create a SessionFactory object which in turn configures Hibernate for the application using the supplied configuration file and allows for a Session object to be instantiated. The SessionFactory is a thread safe object and used by all the threads of an application. The SessionFactory is a heavyweight object; it is usually created during application start up and kept for later use. You would need one SessionFactory object per database using a separate configuration file. So, if you are using multiple databases, then you would have to create multiple SessionFactory objects. Session Object A Session is used to get a physical connection with a database. The Session object is lightweight and designed to be instantiated each time an interaction is needed with the database. Persistent objects are saved and retrieved through a Session object. The session objects should not be kept open for a long time because they are not usually thread safe and they should be created and destroyed them as needed. Transaction Object A Transaction represents a unit of work with the database and most of the RDBMS supports transaction functionality. Transactions in Hibernate are handled by an underlying transaction manager and transaction (from JDBC or JTA). This is an optional object and Hibernate applications may choose not to use this interface, instead managing transactions in their own application code. Query Object Query objects use SQL or Hibernate Query Language (HQL) string to retrieve data from the database and create objects. A Query instance is used to bind query parameters, limit the number of results returned by the query, and finally to execute the query. Criteria Object Criteria objects are used to create and execute object oriented criteria queries to retrieve objects. 9

17 4. HIBERNATE ENVIRONMENT SETUP Hibernate This chapter explains how to install Hibernate and other associated packages to prepare an environment for the Hibernate applications. We will work with MySQL database to experiment with Hibernate examples, so make sure you already have a setup for MySQL database. For more detail on MySQL, you can check our MySQL Tutorial. Downloading Hibernate It is assumed that you already have the latest version of Java installed on your system. Following are the simple steps to download and install Hibernate on your system: Make a choice whether you want to install Hibernate on Windows, or Unix and then proceed to the next step to download.zip file for windows and.tz file for Unix. Download the latest version of Hibernate from At the time of writing this tutorial, I downloaded hibernate-distribution Final and when you unzip the downloaded file, it will give you directory structure as shown in the following image: Installing Hibernate Once you downloaded and unzipped the latest version of the Hibernate Installation file, you need to perform following two simple steps. Make sure you are setting your CLASSPATH variable properly otherwise you will face problem while compiling your application. Now, copy all the library files from /lib into your CLASSPATH, and change your classpath variable to include all the JARs: Finally, copy hibernate3.jar file into your CLASSPATH. This file lies in the root directory of the installation and is the primary JAR that Hibernate needs to do its work. 10

18 Hibernate Prerequisites Following is the list of the packages/libraries required by Hibernate and you should install them before starting with Hibernate. To install these packages, you will have to copy library files from/lib into your CLASSPATH, and change your CLASSPATH variable accordingly. S.N. 1 dom4j - XML parsing Packages/Libraries 2 Xalan - XSLT Processor 3 Xerces - The Xerces Java Parser 4 cglib - Appropriate changes to Java classes at runtime 5 log4j - Logging Framework 6 Commons - Logging, etc. 7 SLF4J - Logging Facade for Java 11

19 5. HIBERNATE CONFIGURATION Hibernate Hibernate requires to know in advance where to find the mapping information that defines how your Java classes relate to the database tables. Hibernate also requires a set of configuration settings related to database and other related parameters. All such information is usually supplied as a standard Java properties file called hibernate.properties, or as an XML file named hibernate.cfg.xml. I will consider XML formatted file hibernate.cfg.xml to specify required Hibernate properties in my examples. Most of the properties take their default values and it is not required to specify them in the property file unless it is really required. This file is kept in the root directory of your application's classpath. Hibernate Properties Following is the list of important properties, you will be required to configure for a databases in a standalone situation: S.N Properties and Description hibernate.dialect This property makes Hibernate generate the appropriate SQL for the chosen database. hibernate.connection.driver_class The JDBC driver class. hibernate.connection.url The JDBC URL to the database instance. hibernate.connection.username The database username. hibernate.connection.password The database password. hibernate.connection.pool_size Limits the number of connections waiting in the Hibernate database connection pool. hibernate.connection.autocommit Allows auto-commit mode to be used for the JDBC connection. 12

20 If you are using a database along with an application server and JNDI, then you would have to configure the following properties: S.N Properties and Description hibernate.connection.datasource The JNDI name defined in the application server context, which you are using for the application. hibernate.jndi.class The InitialContext class for JNDI. hibernate.jndi.<jndipropertyname> Passes any JNDI property you like to the JNDI InitialContext. hibernate.jndi.url Provides the URL for JNDI. hibernate.connection.username The database username. hibernate.connection.password The database password. Hibernate with MySQL Database MySQL is one of the most popular open-source database systems available today. Let us create hibernate.cfg.xml configuration file and place it in the root of your application's classpath. You will have to make sure that you have testdb database available in your MySQL database and you have a user test available to access the database. The XML configuration file must conform to the Hibernate 3 Configuration DTD, which is available at <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration SYSTEM " <hibernate-configuration> <session-factory> <property name="hibernate.dialect"> org.hibernate.dialect.mysqldialect </property> <property name="hibernate.connection.driver_class"> com.mysql.jdbc.driver </property> <!-- Assume test is the database name --> 13

21 <property name="hibernate.connection.url"> jdbc:mysql://localhost/test </property> <property name="hibernate.connection.username"> root </property> <property name="hibernate.connection.password"> root123 </property> <!-- List of XML mapping files --> <mapping resource="employee.hbm.xml"/> </session-factory> </hibernate-configuration> The above configuration file includes <mapping> tags, which are related to hibernatemapping file and we will see in next chapter what exactly a hibernate mapping file is and how and why do we use it? Following is the list of various important databases dialect property type: Database Dialect Property DB2 HSQLDB HypersonicSQL Informix Ingres Interbase Microsoft SQL Server 2000 Microsoft SQL Server 2005 Microsoft SQL Server 2008 MySQL Oracle (any version) Oracle 11g Oracle 10g org.hibernate.dialect.db2dialect org.hibernate.dialect.hsqldialect org.hibernate.dialect.hsqldialect org.hibernate.dialect.informixdialect org.hibernate.dialect.ingresdialect org.hibernate.dialect.interbasedialect org.hibernate.dialect.sqlserverdialect org.hibernate.dialect.sqlserver2005dialect org.hibernate.dialect.sqlserver2008dialect org.hibernate.dialect.mysqldialect org.hibernate.dialect.oracledialect org.hibernate.dialect.oracle10gdialect org.hibernate.dialect.oracle10gdialect 14

22 Oracle 9i PostgreSQL Progress SAP DB Sybase Sybase Anywhere org.hibernate.dialect.oracle9idialect org.hibernate.dialect.postgresqldialect org.hibernate.dialect.progressdialect org.hibernate.dialect.sapdbdialect org.hibernate.dialect.sybasedialect org.hibernate.dialect.sybaseanywheredialect 15

23 6. HIBERNATE SESSIONS Hibernate A Session is used to get a physical connection with a database. The Session object is lightweight and designed to be instantiated each time an interaction is needed with the database. Persistent objects are saved and retrieved through a Session object. The session objects should not be kept open for a long time because they are not usually thread safe and they should be created and destroyed them as needed. The main function of the Session is to offer, create, read, and delete operations for instances of mapped entity classes. Instances may exist in one of the following three states at a given point in time: transient: A new instance of a persistent class, which is not associated with a Session and has no representation in the database and no identifier value is considered transient by Hibernate. persistent: You can make a transient instance persistent by associating it with a Session. A persistent instance has a representation in the database, an identifier value and is associated with a Session. detached: Once we close the Hibernate Session, the persistent instance will become a detached instance. A Session instance is serializable if its persistent classes are serializable. A typical transaction should use the following idiom: Session session = factory.opensession(); Transaction tx = null; try { tx = session.begintransaction(); // do some work... tx.commit(); catch (Exception e) { if (tx!=null) tx.rollback(); e.printstacktrace(); finally { session.close(); If the Session throws an exception, the transaction must be rolled back and the session must be discarded. 16

24 Session Interface Methods There are number of methods provided by the Session interface, but I'm going to list down a few important methods only, which we will use in this tutorial. You can check Hibernate documentation for a complete list of methods associated with Session and SessionFactory. S.N Session Methods and Description Transaction begintransaction() Begin a unit of work and return the associated Transaction object. void cancelquery() Cancel the execution of the current query. void clear() Completely clear the session. Connection close() End the session by releasing the JDBC connection and cleaning up. Criteria createcriteria(class persistentclass) Create a new Criteria instance, for the given entity class, or a superclass of an entity class. Criteria createcriteria(string entityname) Create a new Criteria instance, for the given entity name. Serializable getidentifier(object object) Return the identifier value of the given entity as associated with this session. Query createfilter(object collection, String querystring) Create a new instance of Query for the given collection and filter string. Query createquery(string querystring) Create a new instance of Query for the given HQL query string. SQLQuery createsqlquery(string querystring) Create a new instance of SQLQuery for the given SQL query string. void delete(object object) Remove a persistent instance from the datastore. void delete(string entityname, Object object) Remove a persistent instance from the datastore. Session get(string entityname, Serializable id) Return the persistent instance of the given named entity with the given identifier, or null if there is no such persistent instance. SessionFactory getsessionfactory() Get the session factory, which created this session. void refresh(object object) Re-read the state of the given instance from the underlying database. Transaction gettransaction() Get the Transaction instance associated with this session. boolean isconnected() Check if the session is currently connected. 17

25 boolean isdirty() Does this session contain any changes, which must be synchronized with the database? boolean isopen() Check if the session is still open. Serializable save(object object) Persist the given transient instance, first assigning a generated identifier. void saveorupdate(object object) Either save(object) or update(object) the given instance. void update(object object) Update the persistent instance with the identifier of the given detached instance. void update(string entityname, Object object) Update the persistent instance with the identifier of the given detached instance. 18

26 7. HIBERNATE PERSISTENT CLASS Hibernate The entire concept of Hibernate is to take the values from Java class attributes and persist them to a database table. A mapping document helps Hibernate in determining how to pull the values from the classes and map them with table and associated fields. Java classes whose objects or instances will be stored in database tables are called persistent classes in Hibernate. Hibernate works best if these classes follow some simple rules, also known as the Plain Old Java Object (POJO) programming model. There are following main rules of persistent classes, however, none of these rules are hard requirements: All Java classes that will be persisted need a default constructor. All classes should contain an ID in order to allow easy identification of your objects within Hibernate and the database. This property maps to the primary key column of a database table. All attributes that will be persisted should be declared private and have getxxx and setxxx methods defined in the JavaBean style. A central feature of Hibernate, proxies, depends upon the persistent class being either non-final, or the implementation of an interface that declares all public methods. All classes that do not extend or implement some specialized classes and interfaces required by the EJB framework. The POJO name is used to emphasize that a given object is an ordinary Java Object, not a special object, and in particular not an Enterprise JavaBean. Simple POJO Example Based on the few rules mentioned above, we can define a POJO class as follows: public class Employee { private int id; private String firstname; private String lastname; private int salary; public Employee() { public Employee(String fname, String lname, int salary) { this.firstname = fname; this.lastname = lname; this.salary = salary; 19

27 public int getid() { return id; public void setid( int id ) { this.id = id; public String getfirstname() { return firstname; public void setfirstname( String first_name ) { this.firstname = first_name; public String getlastname() { return lastname; public void setlastname( String last_name ) { this.lastname = last_name; public int getsalary() { return salary; public void setsalary( int salary ) { this.salary = salary; 20

28 8. HIBERNATE MAPPING FILES Hibernate An Object/relational mappings are usually defined in an XML document. This mapping file instructs Hibernate how to map the defined class or classes to the database tables? Though many Hibernate users choose to write the XML by hand, but a number of tools exist to generate the mapping document. These include XDoclet, Middlegen, and AndroMDA for the advanced Hibernate users. Let us consider our previously defined POJO class whose objects will persist in the table defined in next section. public class Employee { private int id; private String firstname; private String lastname; private int salary; public Employee() { public Employee(String fname, String lname, int salary) { this.firstname = fname; this.lastname = lname; this.salary = salary; public int getid() { return id; public void setid( int id ) { this.id = id; public String getfirstname() { return firstname; public void setfirstname( String first_name ) { this.firstname = first_name; public String getlastname() { 21

29 return lastname; public void setlastname( String last_name ) { this.lastname = last_name; public int getsalary() { return salary; public void setsalary( int salary ) { this.salary = salary; There would be one table corresponding to each object you are willing to provide persistence. Consider above objects need to be stored and retrieved into the following RDBMS table: create table EMPLOYEE ( id INT NOT NULL auto_increment, first_name VARCHAR(20) default NULL, last_name VARCHAR(20) default NULL, ); salary PRIMARY KEY (id) INT default NULL, Based on the two above entities, we can define following mapping file, which instructs Hibernate how to map the defined class or classes to the database tables. <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" " <hibernate-mapping> <class name="employee" table="employee"> <meta attribute="class-description"> This class contains the employee detail. </meta> <id name="id" type="int" column="id"> 22

30 </id> <generator class="native"/> <property name="firstname" column="first_name" type="string"/> <property name="lastname" column="last_name" type="string"/> <property name="salary" column="salary" type="int"/> </class> </hibernate-mapping> You should save the mapping document in a file with the format <classname>.hbm.xml. We saved our mapping document in the file Employee.hbm.xml. Let us see understand a little detail about the mapping elements used in the mapping file: The mapping document is an XML document having <hibernate-mapping> as the root element, which contains all the <class> elements. The <class> elements are used to define specific mappings from a Java classes to the database tables. The Java class name is specified using the name attribute of the class element and the database table name is specified using the table attribute. The <meta> element is optional element and can be used to create the class description. The <id> element maps the unique ID attribute in class to the primary key of the database table. The name attribute of the id element refers to the property in the class and the column attribute refers to the column in the database table. The type attribute holds the hibernate mapping type, this mapping types will convert from Java to SQL data type. The <generator> element within the id element is used to generate the primary key values automatically. The class attribute of the generator element is set to native to let hibernate pick up either identity, sequence, or hilo algorithm to create primary key depending upon the capabilities of the underlying database. The <property> element is used to map a Java class property to a column in the database table. The name attribute of the element refers to the property in the class and the column attribute refers to the column in the database table. The type attribute holds the hibernate mapping type, this mapping types will convert from Java to SQL data type. There are other attributes and elements available, which will be used in a mapping document and I would try to cover as many as possible while discussing other Hibernate related topics. 23

31 9. HIBERNATE MAPPING TYPES Hibernate When you prepare a Hibernate mapping document, you find that you map the Java data types into RDBMS data types. The types declared and used in the mapping files are not Java data types; they are not SQL database types either. These types are called Hibernate mapping types, which can translate from Java to SQL data types and vice versa. This chapter lists down all the basic, date and time, large object, and various other builtin mapping types. Primitive Types Mapping type Java type ANSI SQL Type integer int or java.lang.integer INTEGER long long or java.lang.long BIGINT short short or java.lang.short SMALLINT float float or java.lang.float FLOAT double double or java.lang.double DOUBLE big_decimal java.math.bigdecimal NUMERIC character java.lang.string CHAR(1) string java.lang.string VARCHAR byte byte or java.lang.byte TINYINT boolean boolean or java.lang.boolean BIT yes/no boolean or java.lang.boolean CHAR(1) ('Y' or 'N') true/false boolean or java.lang.boolean CHAR(1) ('T' or 'F') Date and Time Types ANSI SQL Mapping type Java type Type date java.util.date or java.sql.date DATE time java.util.date or java.sql.time TIME timestamp java.util.date or java.sql.timestamp TIMESTAMP calendar java.util.calendar TIMESTAMP calendar_date java.util.calendar DATE Binary and Large Object Types Mapping type Java type ANSI SQL Type 24

32 binary byte[] text java.lang.string CLOB serializable any Java class that implements java.io.serializable clob java.sql.clob CLOB blob java.sql.blob BLOB VARBINARY (or BLOB) VARBINARY (or BLOB) JDK-related Types Mapping type Java type ANSI SQL Type class java.lang.class VARCHAR locale java.util.locale VARCHAR timezone java.util.timezone VARCHAR currency java.util.currency VARCHAR 25

33 10. HIBERNATE EXAMPLES Hibernate Let us now take an example to understand how we can use Hibernate to provide Java persistence in a standalone application. We will go through the different steps involved in creating a Java Application using Hibernate technology. Create POJO Classes The first step in creating an application is to build the Java POJO class or classes, depending on the application that will be persisted to the database. Let us consider our Employee class with getxxx and setxxx methods to make it JavaBeans compliant class. A POJO (Plain Old Java Object) is a Java object that doesn't extend or implement some specialized classes and interfaces respectively required by the EJB framework. All normal Java objects are POJO. When you design a class to be persisted by Hibernate, it is important to provide JavaBeans compliant code as well as one attribute, which would work as index like id attribute in the Employee class. public class Employee { private int id; private String firstname; private String lastname; private int salary; public Employee() { public Employee(String fname, String lname, int salary) { this.firstname = fname; this.lastname = lname; this.salary = salary; public int getid() { return id; public void setid( int id ) { this.id = id; public String getfirstname() { 26

34 return firstname; public void setfirstname( String first_name ) { this.firstname = first_name; public String getlastname() { return lastname; public void setlastname( String last_name ) { this.lastname = last_name; public int getsalary() { return salary; public void setsalary( int salary ) { this.salary = salary; Create Database Tables Second step would be creating tables in your database. There would be one table corresponding to each object, you are willing to provide persistence. Consider above objects need to be stored and retrieved into the following RDBMS table: create table EMPLOYEE ( id INT NOT NULL auto_increment, first_name VARCHAR(20) default NULL, last_name VARCHAR(20) default NULL, ); salary PRIMARY KEY (id) INT default NULL, Create Mapping Configuration File This step is to create a mapping file that instructs Hibernate how to map the defined class or classes to the database tables. <?xml version="1.0" encoding="utf-8"?> 27

35 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" " <hibernate-mapping> <class name="employee" table="employee"> <meta attribute="class-description"> This class contains the employee detail. </meta> <id name="id" type="int" column="id"> <generator class="native"/> </id> <property name="firstname" column="first_name" type="string"/> <property name="lastname" column="last_name" type="string"/> <property name="salary" column="salary" type="int"/> </class> </hibernate-mapping> You should save the mapping document in a file with the format <classname>.hbm.xml. We saved our mapping document in the file Employee.hbm.xml. Let us see little detail about the mapping document: The mapping document is an XML document having <hibernate-mapping> as the root element, which contains all the <class> elements. The <class> elements are used to define specific mappings from a Java classes to the database tables. The Java class name is specified using the name attribute of the class element and the database table name is specified using the table attribute. The <meta> element is optional element and can be used to create the class description. The <id> element maps the unique ID attribute in class to the primary key of the database table. The name attribute of the id element refers to the property in the class and the column attribute refers to the column in the database table. The type attribute holds the hibernate mapping type, this mapping types will convert from Java to SQL data type. The <generator> element within the id element is used to generate the primary key values automatically. The class attribute of the generator element is set to native to let hibernate pick up either identity, sequence, or hilo algorithm to create primary key depending upon the capabilities of the underlying database. The <property> element is used to map a Java class property to a column in the database table. The name attribute of the element refers to the property in the class and the column attribute refers to the column in the database table. The 28

36 type attribute holds the hibernate mapping type, this mapping types will convert from Java to SQL data type. There are other attributes and elements available, which will be used in a mapping document and I would try to cover as many as possible while discussing other Hibernate related topics. Create Application Class Finally, we will create our application class with the main() method to run the application. We will use this application to save few Employee's records and then we will apply CRUD operations on those records. import java.util.list; import java.util.date; import java.util.iterator; import org.hibernate.hibernateexception; import org.hibernate.session; import org.hibernate.transaction; import org.hibernate.sessionfactory; import org.hibernate.cfg.configuration; public class ManageEmployee { private static SessionFactory factory; public static void main(string[] args) { try{ factory = new Configuration().configure().buildSessionFactory(); catch (Throwable ex) { System.err.println("Failed to create sessionfactory object." + ex); throw new ExceptionInInitializerError(ex); ManageEmployee ME = new ManageEmployee(); /* Add few employee records in database */ Integer empid1 = ME.addEmployee("Zara", "Ali", 1000); Integer empid2 = ME.addEmployee("Daisy", "Das", 5000); Integer empid3 = ME.addEmployee("John", "Paul", 10000); /* List down all the employees */ 29

37 ME.listEmployees(); /* Update employee's records */ ME.updateEmployee(empID1, 5000); /* Delete an employee from the database */ ME.deleteEmployee(empID2); /* List down new list of the employees */ ME.listEmployees(); /* Method to CREATE an employee in the database */ public Integer addemployee(string fname, String lname, int salary){ Session session = factory.opensession(); Transaction tx = null; Integer employeeid = null; try{ tx = session.begintransaction(); Employee employee = new Employee(fname, lname, salary); employeeid = (Integer) session.save(employee); tx.commit(); catch (HibernateException e) { if (tx!=null) tx.rollback(); e.printstacktrace(); finally { session.close(); return employeeid; /* Method to READ all the employees */ public void listemployees( ){ Session session = factory.opensession(); Transaction tx = null; try{ tx = session.begintransaction(); 30

38 List employees = session.createquery("from Employee").list(); for (Iterator iterator = employees.iterator(); iterator.hasnext();){ Employee employee = (Employee) iterator.next(); System.out.print("First Name: " + employee.getfirstname()); System.out.print(" Last Name: " + employee.getlastname()); System.out.println(" Salary: " + employee.getsalary()); tx.commit(); catch (HibernateException e) { if (tx!=null) tx.rollback(); e.printstacktrace(); finally { session.close(); /* Method to UPDATE salary for an employee */ public void updateemployee(integer EmployeeID, int salary ){ Session session = factory.opensession(); Transaction tx = null; try{ tx = session.begintransaction(); Employee employee = (Employee)session.get(Employee.class, EmployeeID); employee.setsalary( salary ); session.update(employee); tx.commit(); catch (HibernateException e) { if (tx!=null) tx.rollback(); e.printstacktrace(); finally { session.close(); /* Method to DELETE an employee from the records */ 31

39 public void deleteemployee(integer EmployeeID){ Session session = factory.opensession(); Transaction tx = null; try{ tx = session.begintransaction(); Employee employee = (Employee)session.get(Employee.class, EmployeeID); session.delete(employee); tx.commit(); catch (HibernateException e) { if (tx!=null) tx.rollback(); e.printstacktrace(); finally { session.close(); Compilation and Execution Here are the steps to compile and run the above mentioned application. Make sure, you have set PATH and CLASSPATH appropriately before proceeding for the compilation and execution. Create hibernate.cfg.xml configuration file as explained in configuration chapter. Create Employee.hbm.xml mapping file as shown above. Create Employee.java source file as shown above and compile it. Create ManageEmployee.java source file as shown above and compile it. Execute ManageEmployee binary to run the program. You would get the following result, and records would be created in the EMPLOYEE table. $java ManageEmployee...VARIOUS LOG MESSAGES WILL DISPLAY HERE... First Name: Zara Last Name: Ali Salary: 1000 First Name: Daisy Last Name: Das Salary: 5000 First Name: John Last Name: Paul Salary: First Name: Zara Last Name: Ali Salary:

40 First Name: John Last Name: Paul Salary: If you check your EMPLOYEE table, it should have the following records: mysql> select * from EMPLOYEE; id first_name last_name salary Zara Ali John Paul rows in set (0.00 sec mysql> 33

41 11. HIBERNATE O/R MAPPINGS Hibernate So far, we have seen very basic O/R mapping using hibernate, but there are three most important mapping topics, which we have to learn in detail. These are: Mapping of collections, Mapping of associations between entity classes, and Component Mappings. Collections Mappings If an entity or class has collection of values for a particular variable, then we can map those values using any one of the collection interfaces available in java. Hibernate can persist instances of java.util.map, java.util.set, java.util.sortedmap, java.util.sortedset, java.util.list, and any array of persistent entities or values. Collection type java.util.set java.util.sortedset java.util.list java.util.collection java.util.map java.util.sortedmap Mapping and Description This is mapped with a <set> element and initialized with java.util.hashset This is mapped with a <set> element and initialized with java.util.treeset. The sort attribute can be set to either a comparator or natural ordering. This is mapped with a <list> element and initialized with java.util.arraylist This is mapped with a <bag> or <ibag> element and initialized with java.util.arraylist This is mapped with a <map> element and initialized with java.util.hashmap This is mapped with a <map> element and initialized with java.util.treemap. The sort attribute can be set to either a comparator or natural ordering. Arrays are supported by Hibernate with <primitive-array> for Java primitive value types and <array> for everything else. However, they are rarely used, so I am not going to discuss them in this tutorial. If you want to map a user defined collection interfaces, which is not directly supported by Hibernate, you need to tell Hibernate about the semantics of your custom collections, which is not very easy and not recommend to be used. 34

42 Hibernate Set Mappings A Set is a java collection that does not contain any duplicate element. More formally, sets contain no pair of elements e1 and e2 such that e1.equals(e2), and at most, one null element. So, objects to be added to a set must implement both the equals() and hashcode() methods so that Java can determine whether any two elements/objects are identical. A Set is mapped with a <set> element in the mapping table and initialized with java.util.hashset. You can use Set collection in your class when there is no duplicate element required in the collection. Define RDBMS Tables Consider a situation where we need to store our employee records in EMPLOYEE table, which would have the following structure: create table EMPLOYEE ( id INT NOT NULL auto_increment, first_name VARCHAR(20) default NULL, last_name VARCHAR(20) default NULL, ); salary PRIMARY KEY (id) INT default NULL, Further, assume each employee can have one or more certificate associated with him/her. So, we will store certificate related information in a separate table having the following structure: create table CERTIFICATE ( ); id INT NOT NULL auto_increment, certificate_name VARCHAR(30) default NULL, employee_id INT default NULL, PRIMARY KEY (id) There will be one-to-many relationship between EMPLOYEE and CERTIFICATE objects: Define POJO Classes Let us implement our POJO class Employee, which will be used to persist the objects related to EMPLOYEE table and having a collection of certificates in Set variable. 35

43 import java.util.*; public class Employee { private int id; private String firstname; private String lastname; private int salary; private Set certificates; public Employee() { public Employee(String fname, String lname, int salary) { this.firstname = fname; this.lastname = lname; this.salary = salary; public int getid() { return id; public void setid( int id ) { this.id = id; public String getfirstname() { return firstname; public void setfirstname( String first_name ) { this.firstname = first_name; public String getlastname() { return lastname; public void setlastname( String last_name ) { this.lastname = last_name; public int getsalary() { return salary; 36

44 public void setsalary( int salary ) { this.salary = salary; public Set getcertificates() { return certificates; public void setcertificates( Set certificates ) { this.certificates = certificates; Now let us define another POJO class corresponding to CERTIFICATE table so that certificate objects can be stored and retrieved into the CERTIFICATE table. This class should also implement both the equals() and hashcode() methods so that Java can determine whether any two elements/objects are identical. public class Certificate { private int id; private String name; public Certificate() { public Certificate(String name) { this.name = name; public int getid() { return id; public void setid( int id ) { this.id = id; public String getname() { return name; public void setname( String name ) { this.name = name; 37

45 public boolean equals(object obj) { if (obj == null) return false; if (!this.getclass().equals(obj.getclass())) return false; Certificate obj2 = (Certificate)obj; if((this.id == obj2.getid()) && (this.name.equals(obj2.getname()))) { return true; return false; public int hashcode() { int tmp = 0; tmp = ( id + name ).hashcode(); return tmp; Define Hibernate Mapping File Let us develop our mapping file, which instructs Hibernate how to map the defined classes to the database tables. The <set> element will be used to define the rule for Set collection used. <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" " <hibernate-mapping> <class name="employee" table="employee"> <meta attribute="class-description"> This class contains the employee detail. </meta> <id name="id" type="int" column="id"> <generator class="native"/> </id> 38

46 <set name="certificates" cascade="all"> <key column="employee_id"/> <one-to-many class="certificate"/> </set> <property name="firstname" column="first_name" type="string"/> <property name="lastname" column="last_name" type="string"/> <property name="salary" column="salary" type="int"/> </class> <class name="certificate" table="certificate"> <meta attribute="class-description"> This class contains the certificate records. </meta> <id name="id" type="int" column="id"> <generator class="native"/> </id> <property name="name" column="certificate_name" type="string"/> </class> </hibernate-mapping> You should save the mapping document in a file with the format <classname>.hbm.xml. We saved our mapping document in the file Employee.hbm.xml. You are already familiar with most of the mapping detail, but let us see all the elements of mapping file once again: The mapping document is an XML document having <hibernate-mapping> as the root element, which contains two <class> elements corresponding to each class. The <class> elements are used to define specific mappings from a Java classes to the database tables. The Java class name is specified using the name attribute of the class element and the database table name is specified using the table attribute. The <meta> element is optional element and can be used to create the class description. The <id> element maps the unique ID attribute in class to the primary key of the database table. The name attribute of the id element refers to the property in the class and the column attribute refers to the column in the database table. The type attribute holds the hibernate mapping type, this mapping types will convert from Java to SQL data type. The <generator> element within the id element is used to generate the primary key values automatically. The class attribute of the generator element is set to 39

Introduction to Hibernate. Overview

Introduction to Hibernate. Overview Introduction to Hibernate Overview About the Presenter Cliff Meyers cliff.meyers@gmail.com Application Developer US Department of State, Bureau of Information Resource Management ColdFusion, Java, Oracle,

More information

IBATIS - DYNAMIC SQL

IBATIS - DYNAMIC SQL IBATIS - DYNAMIC SQL http://www.tutorialspoint.com/ibatis/ibatis_dynamic_sql.htm Copyright tutorialspoint.com Dynamic SQL is a very powerful feature of ibatis. Sometimes you have to change the WHERE clause

More information

Easy-Cassandra User Guide

Easy-Cassandra User Guide Easy-Cassandra User Guide Document version: 005 1 Summary About Easy-Cassandra...5 Features...5 Java Objects Supported...5 About Versions...6 Version: 1.1.0...6 Version: 1.0.9...6 Version: 1.0.8...6 Version:

More information

Aspects of using Hibernate with CaptainCasa Enterprise Client

Aspects of using Hibernate with CaptainCasa Enterprise Client Aspects of using Hibernate with CaptainCasa Enterprise Client We all know: there are a lot of frameworks that deal with persistence in the Java environment one of them being Hibernate. And there are a

More information

Specialized Programme on Web Application Development using Open Source Tools

Specialized Programme on Web Application Development using Open Source Tools Specialized Programme on Web Application Development using Open Source Tools Objective: At the end of the course, Students will be able to: Understand various open source tools(programming tools and databases)

More information

Services. Relational. Databases & JDBC. Today. Relational. Databases SQL JDBC. Next Time. Services. Relational. Databases & JDBC. Today.

Services. Relational. Databases & JDBC. Today. Relational. Databases SQL JDBC. Next Time. Services. Relational. Databases & JDBC. Today. & & 1 & 2 Lecture #7 2008 3 Terminology Structure & & Database server software referred to as Database Management Systems (DBMS) Database schemas describe database structure Data ordered in tables, rows

More information

PERFORMANCE EVALUATION OF JAVA OBJECT-RELATIONAL MAPPING TOOLS HASEEB YOUSAF. (Under the Direction of John A. Miller)

PERFORMANCE EVALUATION OF JAVA OBJECT-RELATIONAL MAPPING TOOLS HASEEB YOUSAF. (Under the Direction of John A. Miller) PERFORMANCE EVALUATION OF JAVA OBJECT-RELATIONAL MAPPING TOOLS by HASEEB YOUSAF (Under the Direction of John A. Miller) ABSTRACT In the modern era of enterprise Web technology, there is strong competition

More information

Hibernate Reference Documentation

Hibernate Reference Documentation HIBERNATE - Relational Persistence for Idiomatic Java 1 Hibernate Reference Documentation 3.5.6-Final by Gavin King, Christian Bauer, Max Rydahl Andersen, Emmanuel Bernard, and Steve Ebersole and thanks

More information

Java EE 7: Back-End Server Application Development

Java EE 7: Back-End Server Application Development Oracle University Contact Us: 01-800-913-0322 Java EE 7: Back-End Server Application Development Duration: 5 Days What you will learn The Java EE 7: Back-End Server Application Development training teaches

More information

Enterprise Application Development In Java with AJAX and ORM

Enterprise Application Development In Java with AJAX and ORM Enterprise Application Development In Java with AJAX and ORM ACCU London March 2010 ACCU Conference April 2010 Paul Grenyer Head of Software Engineering p.grenyer@validus-ivc.co.uk http://paulgrenyer.blogspot.com

More information

Core Java+ J2EE+Struts+Hibernate+Spring

Core Java+ J2EE+Struts+Hibernate+Spring Core Java+ J2EE+Struts+Hibernate+Spring Java technology is a portfolio of products that are based on the power of networks and the idea that the same software should run on many different kinds of systems

More information

How To Create A Table In Sql 2.5.2.2 (Ahem)

How To Create A Table In Sql 2.5.2.2 (Ahem) Database Systems Unit 5 Database Implementation: SQL Data Definition Language Learning Goals In this unit you will learn how to transfer a logical data model into a physical database, how to extend or

More information

Package sjdbc. R topics documented: February 20, 2015

Package sjdbc. R topics documented: February 20, 2015 Package sjdbc February 20, 2015 Version 1.5.0-71 Title JDBC Driver Interface Author TIBCO Software Inc. Maintainer Stephen Kaluzny Provides a database-independent JDBC interface. License

More information

Specialized Programme on Web Application Development using Open Source Tools

Specialized Programme on Web Application Development using Open Source Tools Specialized Programme on Web Application Development using Open Source Tools A. NAME OF INSTITUTE Centre For Development of Advanced Computing B. NAME/TITLE OF THE COURSE C. COURSE DATES WITH DURATION

More information

Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar

Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar Object Oriented Databases OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar Executive Summary The presentation on Object Oriented Databases gives a basic introduction to the concepts governing OODBs

More information

Hibernate Reference Documentation. Version: 3.2 cr1

Hibernate Reference Documentation. Version: 3.2 cr1 Hibernate Reference Documentation Version: 3.2 cr1 Table of Contents Preface... viii 1. Introduction to Hibernate... 1 1.1. Preface... 1 1.2. Part 1 - The first Hibernate Application... 1 1.2.1. The first

More information

A Brief Introduction to MySQL

A Brief Introduction to MySQL A Brief Introduction to MySQL by Derek Schuurman Introduction to Databases A database is a structured collection of logically related data. One common type of database is the relational database, a term

More information

CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS

CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS A technical white paper by: InterSystems Corporation Introduction Java is indisputably one of the workhorse technologies for application

More information

OpenReports: Users Guide

OpenReports: Users Guide OpenReports: Users Guide Author: Erik Swenson Company: Open Source Software Solutions Revision: Revision: 1.3 Last Modified: Date: 05/24/2004 1 Open Source Software Solutions Table Of Contents 1. Introduction...

More information

Using SQL Server Management Studio

Using SQL Server Management Studio Using SQL Server Management Studio Microsoft SQL Server Management Studio 2005 is a graphical tool for database designer or programmer. With SQL Server Management Studio 2005 you can: Create databases

More information

FreeSB Installation Guide 1. Introduction Purpose

FreeSB Installation Guide 1. Introduction Purpose FreeSB Installation Guide 1. Introduction Purpose This document provides step-by-step instructions on the installation and configuration of FreeSB Enterprise Service Bus. Quick Install Background FreeSB

More information

JDBC (Java / SQL Programming) CS 377: Database Systems

JDBC (Java / SQL Programming) CS 377: Database Systems JDBC (Java / SQL Programming) CS 377: Database Systems JDBC Acronym for Java Database Connection Provides capability to access a database server through a set of library functions Set of library functions

More information

Spring Data JDBC Extensions Reference Documentation

Spring Data JDBC Extensions Reference Documentation Reference Documentation ThomasRisberg Copyright 2008-2015The original authors Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee

More information

The Sun Certified Associate for the Java Platform, Standard Edition, Exam Version 1.0

The Sun Certified Associate for the Java Platform, Standard Edition, Exam Version 1.0 The following applies to all exams: Once exam vouchers are purchased you have up to one year from the date of purchase to use it. Each voucher is valid for one exam and may only be used at an Authorized

More information

Java SE 8 Programming

Java SE 8 Programming Oracle University Contact Us: 1.800.529.0165 Java SE 8 Programming Duration: 5 Days What you will learn This Java SE 8 Programming training covers the core language features and Application Programming

More information

Using Business Activity Monitoring

Using Business Activity Monitoring bc Using Business Activity Monitoring Workbench July 2008 Adobe LiveCycle ES Update 1 Update 1 Using Business Activity Monitoring Workbench Portions Copyright 2008 Adobe Systems Incorporated. All rights

More information

Customer Bank Account Management System Technical Specification Document

Customer Bank Account Management System Technical Specification Document Customer Bank Account Management System Technical Specification Document Technical Specification Document Page 1 of 15 Table of Contents Contents 1 Introduction 3 2 Design Overview 4 3 Topology Diagram.6

More information

The Different Types of Search and Execution Systems

The Different Types of Search and Execution Systems Query Engine A Pattern for Performing Dynamic Searches in Information Systems Tim Wellhausen kontakt@tim-wellhausen.de http://www.tim-wellhausen.de Jan 24, 2006 Abstract: This paper presents an architecture

More information

Java Interview Questions and Answers

Java Interview Questions and Answers 1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java

More information

CS 111 Classes I 1. Software Organization View to this point:

CS 111 Classes I 1. Software Organization View to this point: CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects

More information

Table of contents. Reverse-engineers a database to Grails domain classes.

Table of contents. Reverse-engineers a database to Grails domain classes. Table of contents Reverse-engineers a database to Grails domain classes. 1 Database Reverse Engineering Plugin - Reference Documentation Authors: Burt Beckwith Version: 0.5.1 Table of Contents 1 Introduction

More information

MS ACCESS DATABASE DATA TYPES

MS ACCESS DATABASE DATA TYPES MS ACCESS DATABASE DATA TYPES Data Type Use For Size Text Memo Number Text or combinations of text and numbers, such as addresses. Also numbers that do not require calculations, such as phone numbers,

More information

PHP Language Binding Guide For The Connection Cloud Web Services

PHP Language Binding Guide For The Connection Cloud Web Services PHP Language Binding Guide For The Connection Cloud Web Services Table Of Contents Overview... 3 Intended Audience... 3 Prerequisites... 3 Term Definitions... 3 Introduction... 4 What s Required... 5 Language

More information

Hibernate Language Binding Guide For The Connection Cloud Using Java Persistence API (JAP)

Hibernate Language Binding Guide For The Connection Cloud Using Java Persistence API (JAP) Hibernate Language Binding Guide For The Connection Cloud Using Java Persistence API (JAP) Table Of Contents Overview... 3 Intended Audience... 3 Prerequisites... 3 Term Definitions... 3 Introduction...

More information

Performance Evaluation of Java Object Relational Mapping Tools

Performance Evaluation of Java Object Relational Mapping Tools Performance Evaluation of Java Object Relational Mapping Tools Jayasree Dasari Student(M.Tech), CSE, Gokul Institue of Technology and Science, Visakhapatnam, India. Abstract: In the modern era of enterprise

More information

www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk

www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 Which of the following is a general purpose container? JFrame Dialog JPanel JApplet Which of the following package needs to be import while handling

More information

Nimsoft Monitor. cmdbgtw Guide. v1.0 series

Nimsoft Monitor. cmdbgtw Guide. v1.0 series Nimsoft Monitor cmdbgtw Guide v1.0 series Legal Notices Copyright 2011, CA. All rights reserved. Warranty The material contained in this document is provided "as is," and is subject to being changed, without

More information

Object Oriented Design with UML and Java. PART XVIII: Database Technology

Object Oriented Design with UML and Java. PART XVIII: Database Technology Object Oriented Design with UML and Java PART XVIII: Database Technology Copyright David Leberknight & Ron LeMaster. Version 2 What is a Database? Computerized record-keeping system. Collection of stored

More information

Java Server Faces (JSF) 1.1 for Java EE5. The reference implementation can be obtained from:

Java Server Faces (JSF) 1.1 for Java EE5. The reference implementation can be obtained from: Dali Object-Relational Mapping Tool Advanced Tutorial Release 1.0.0 June 2007 This tutorial provides information on building and deploying dynamic Web application for an order-entry system using Dali.

More information

Database Migration from MySQL to RDM Server

Database Migration from MySQL to RDM Server MIGRATION GUIDE Database Migration from MySQL to RDM Server A Birdstep Technology, Inc. Raima Embedded Database Division Migration Guide Published: May, 2009 Author: Daigoro F. Toyama Senior Software Engineer

More information

ODBC Client Driver Help. 2015 Kepware, Inc.

ODBC Client Driver Help. 2015 Kepware, Inc. 2015 Kepware, Inc. 2 Table of Contents Table of Contents 2 4 Overview 4 External Dependencies 4 Driver Setup 5 Data Source Settings 5 Data Source Setup 6 Data Source Access Methods 13 Fixed Table 14 Table

More information

SpagoBI exo Tomcat Installation Manual

SpagoBI exo Tomcat Installation Manual SpagoBI exo Tomcat Installation Manual Authors Luca Fiscato Andrea Zoppello Davide Serbetto Review Grazia Cazzin SpagoBI exo Tomcat Installation Manual ver 1.3 May, 18 th 2006 pag. 1 of 8 Index 1 VERSION...3

More information

OUR COURSES 19 November 2015. All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan 32 411 19 Göteborg Sweden

OUR COURSES 19 November 2015. All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan 32 411 19 Göteborg Sweden OUR COURSES 19 November 2015 Solid Beans AB Kungsgatan 32 411 19 Göteborg Sweden Java for beginners JavaEE EJB 3.1 JSF (Java Server Faces) PrimeFaces Spring Core Spring Advanced Maven One day intensive

More information

Oracle Database 10g Express

Oracle Database 10g Express Oracle Database 10g Express This tutorial prepares the Oracle Database 10g Express Edition Developer to perform common development and administrative tasks of Oracle Database 10g Express Edition. Objectives

More information

EDI Process Specification

EDI Process Specification EDI Batch Process CONTENTS 1 Purpose...3 1.1 Use Case EDI service...3 1.2 Use Case EDI Daily Reporting...3 1.3 Use Case EDI Service Monitoring Process...3 2 EDI Process Design High Level...4 2.1 EDI Batch

More information

1. Introduction... 1 1.1. What is Slice?... 1 1.2. Background... 1 1.3. Why Slice?... 1 1.4. Purpose of this Document... 1 1.5. Intended Audience...

1. Introduction... 1 1.1. What is Slice?... 1 1.2. Background... 1 1.3. Why Slice?... 1 1.4. Purpose of this Document... 1 1.5. Intended Audience... Slice Documentation Slice Documentation 1. Introduction... 1 1.1. What is Slice?... 1 1.2. Background... 1 1.3. Why Slice?... 1 1.4. Purpose of this Document... 1 1.5. Intended Audience... 1 2. Features

More information

An Overview of Java. overview-1

An Overview of Java. overview-1 An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2

More information

Version 14.0. Overview. Business value

Version 14.0. Overview. Business value PRODUCT SHEET CA Datacom Server CA Datacom Server Version 14.0 CA Datacom Server provides web applications and other distributed applications with open access to CA Datacom /DB Version 14.0 data by providing

More information

INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3

INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 Often the most compelling way to introduce yourself to a software product is to try deliver value as soon as possible. Simego DS3 is designed to get you

More information

JAVA ENTERPRISE IN A NUTSHELL. Jim Farley and William Crawford. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo.

JAVA ENTERPRISE IN A NUTSHELL. Jim Farley and William Crawford. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo. 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. JAVA ENTERPRISE IN A NUTSHELL Third Edition Jim Farley and William

More information

Performance Comparison of Persistence Frameworks

Performance Comparison of Persistence Frameworks Performance Comparison of Persistence Frameworks Sabu M. Thampi * Asst. Prof., Department of CSE L.B.S College of Engineering Kasaragod-671542 Kerala, India smtlbs@yahoo.co.in Ashwin A.K S8, Department

More information

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner 1 vk» Java 7 Recipes (,\['«** - < g!p#«josh Juneau Carl Dea Freddy Guime John O'Conner Contents J Contents at a Glance About the Authors About the Technical Reviewers Acknowledgments Introduction iv xvi

More information

Mercury Users Guide Version 1.3 February 14, 2006

Mercury Users Guide Version 1.3 February 14, 2006 Mercury Users Guide Version 1.3 February 14, 2006 1 Introduction Introducing Mercury Your corporate shipping has just become easier! The satisfaction of your customers depends on the accuracy of your shipments,

More information

Guide to Upsizing from Access to SQL Server

Guide to Upsizing from Access to SQL Server Guide to Upsizing from Access to SQL Server An introduction to the issues involved in upsizing an application from Microsoft Access to SQL Server January 2003 Aztec Computing 1 Why Should I Consider Upsizing

More information

SQL. Short introduction

SQL. Short introduction SQL Short introduction 1 Overview SQL, which stands for Structured Query Language, is used to communicate with a database. Through SQL one can create, manipulate, query and delete tables and contents.

More information

Oracle WebLogic Server

Oracle WebLogic Server Oracle WebLogic Server Monitoring and Managing with the Java EE Management APIs 10g Release 3 (10.3) July 2008 Oracle WebLogic Server Monitoring and Managing with the Java EE Management APIs, 10g Release

More information

COSC344 Database Theory and Applications. Java and SQL. Lecture 12

COSC344 Database Theory and Applications. Java and SQL. Lecture 12 COSC344 Database Theory and Applications Lecture 12: Java and SQL COSC344 Lecture 12 1 Last Lecture Trigger Overview This Lecture Java & SQL Source: Lecture notes, Textbook: Chapter 12 JDBC documentation

More information

OTN Developer Day Enterprise Java. Hands on Lab Manual JPA 2.0 and Object Relational Mapping Basics

OTN Developer Day Enterprise Java. Hands on Lab Manual JPA 2.0 and Object Relational Mapping Basics OTN Developer Day Enterprise Java Hands on Lab Manual JPA 2.0 and Object Relational Mapping Basics I want to improve the performance of my application... Can I copy Java code to an HTML Extension? I coded

More information

The release notes provide details of enhancements and features in Cloudera ODBC Driver for Impala 2.5.30, as well as the version history.

The release notes provide details of enhancements and features in Cloudera ODBC Driver for Impala 2.5.30, as well as the version history. Cloudera ODBC Driver for Impala 2.5.30 The release notes provide details of enhancements and features in Cloudera ODBC Driver for Impala 2.5.30, as well as the version history. The following are highlights

More information

No no-argument constructor. No default constructor found

No no-argument constructor. No default constructor found Every software developer deals with bugs. The really tough bugs aren t detected by the compiler. Nasty bugs manifest themselves only when executed at runtime. Here is a list of the top ten difficult and

More information

Facebook Twitter YouTube Google Plus Website Email

Facebook Twitter YouTube Google Plus Website Email PHP MySQL COURSE WITH OOP COURSE COVERS: PHP MySQL OBJECT ORIENTED PROGRAMMING WITH PHP SYLLABUS PHP 1. Writing PHP scripts- Writing PHP scripts, learn about PHP code structure, how to write and execute

More information

FileMaker 14. ODBC and JDBC Guide

FileMaker 14. ODBC and JDBC Guide FileMaker 14 ODBC and JDBC Guide 2004 2015 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker and FileMaker Go are trademarks of FileMaker,

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. AVRO Tutorial

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. AVRO Tutorial i About the Tutorial Apache Avro is a language-neutral data serialization system, developed by Doug Cutting, the father of Hadoop. This is a brief tutorial that provides an overview of how to set up Avro

More information

sqlite driver manual

sqlite driver manual sqlite driver manual A libdbi driver using the SQLite embedded database engine Markus Hoenicka mhoenicka@users.sourceforge.net sqlite driver manual: A libdbi driver using the SQLite embedded database engine

More information

SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package 7 2015-11-24. Data Federation Administration Tool Guide

SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package 7 2015-11-24. Data Federation Administration Tool Guide SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package 7 2015-11-24 Data Federation Administration Tool Guide Content 1 What's new in the.... 5 2 Introduction to administration

More information

Java Application Developer Certificate Program Competencies

Java Application Developer Certificate Program Competencies Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle

More information

COSC 6397 Big Data Analytics. 2 nd homework assignment Pig and Hive. Edgar Gabriel Spring 2015

COSC 6397 Big Data Analytics. 2 nd homework assignment Pig and Hive. Edgar Gabriel Spring 2015 COSC 6397 Big Data Analytics 2 nd homework assignment Pig and Hive Edgar Gabriel Spring 2015 2 nd Homework Rules Each student should deliver Source code (.java files) Documentation (.pdf,.doc,.tex or.txt

More information

Research Article. ISSN 2347-9523 (Print) *Corresponding author Lili Wang Email: lily@nepu.edu.cn

Research Article. ISSN 2347-9523 (Print) *Corresponding author Lili Wang Email: lily@nepu.edu.cn Scholars Journal of Engineering and Technology (SJET) Sch. J. Eng. Tech., 2015; 3(4B):424-428 Scholars Academic and Scientific Publisher (An International Publisher for Academic and Scientific Resources)

More information

Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007

Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007 Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007 The Java Type System By now, you have seen a fair amount of Java. Time to study in more depth the foundations of the language,

More information

Japan Communication India Skill Development Center

Japan Communication India Skill Development Center Japan Communication India Skill Development Center Java Application System Developer Course Detail Track 3 Java Application Software Developer: Phase1 SQL Overview 70 Querying & Updating Data (Review)

More information

Implementing the Shop with EJB

Implementing the Shop with EJB Exercise 2 Implementing the Shop with EJB 2.1 Overview This exercise is a hands-on exercise in Enterprise JavaBeans (EJB). The exercise is as similar as possible to the other exercises (in other technologies).

More information

CA IDMS Server r17. Product Overview. Business Value. Delivery Approach

CA IDMS Server r17. Product Overview. Business Value. Delivery Approach PRODUCT sheet: CA IDMS SERVER r17 CA IDMS Server r17 CA IDMS Server helps enable secure, open access to CA IDMS mainframe data and applications from the Web, Web services, PCs and other distributed platforms.

More information

CSC 443 Data Base Management Systems. Basic SQL

CSC 443 Data Base Management Systems. Basic SQL CSC 443 Data Base Management Systems Lecture 6 SQL As A Data Definition Language Basic SQL SQL language Considered one of the major reasons for the commercial success of relational databases SQL Structured

More information

Tutorial for Spring DAO with JDBC

Tutorial for Spring DAO with JDBC Overview Tutorial for Spring DAO with JDBC Prepared by: Nigusse Duguma This tutorial demonstrates how to work with data access objects in the spring framework. It implements the Spring Data Access Object

More information

More SQL: Assertions, Views, and Programming Techniques

More SQL: Assertions, Views, and Programming Techniques 9 More SQL: Assertions, Views, and Programming Techniques In the previous chapter, we described several aspects of the SQL language, the standard for relational databases. We described the SQL statements

More information

How To Use The Jobscheduler On A Linux Box 2.5.2.2 (Jid) On A Pcode (Jio) Or Macbook 2.2 On A Microsoft Powerbook 2 (For A Freebie

How To Use The Jobscheduler On A Linux Box 2.5.2.2 (Jid) On A Pcode (Jio) Or Macbook 2.2 On A Microsoft Powerbook 2 (For A Freebie JobScheduler - Job Execution and Scheduling System JobScheduler Information Dashboard Work Plan and History March 2015 March 2015 JobScheduler page: 1 JobScheduler - Contact Information Contact Information

More information

Clustering a Grails Application for Scalability and Availability

Clustering a Grails Application for Scalability and Availability Clustering a Grails Application for Scalability and Availability Groovy & Grails exchange 9th December 2009 Burt Beckwith My Background Java Developer for over 10 years Background in Spring, Hibernate,

More information

CS346: Database Programming. http://warwick.ac.uk/cs346

CS346: Database Programming. http://warwick.ac.uk/cs346 CS346: Database Programming http://warwick.ac.uk/cs346 1 Database programming Issue: inclusionofdatabasestatementsinaprogram combination host language (general-purpose programming language, e.g. Java)

More information

FileMaker 11. ODBC and JDBC Guide

FileMaker 11. ODBC and JDBC Guide FileMaker 11 ODBC and JDBC Guide 2004 2010 FileMaker, Inc. All Rights Reserved. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker is a trademark of FileMaker, Inc. registered

More information

12 File and Database Concepts 13 File and Database Concepts A many-to-many relationship means that one record in a particular record type can be relat

12 File and Database Concepts 13 File and Database Concepts A many-to-many relationship means that one record in a particular record type can be relat 1 Databases 2 File and Database Concepts A database is a collection of information Databases are typically stored as computer files A structured file is similar to a card file or Rolodex because it uses

More information

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code. Content Introduction... 2 Data Access Server Control Panel... 2 Running the Sample Client Applications... 4 Sample Applications Code... 7 Server Side Objects... 8 Sample Usage of Server Side Objects...

More information

Spring,2015. Apache Hive BY NATIA MAMAIASHVILI, LASHA AMASHUKELI & ALEKO CHAKHVASHVILI SUPERVAIZOR: PROF. NODAR MOMTSELIDZE

Spring,2015. Apache Hive BY NATIA MAMAIASHVILI, LASHA AMASHUKELI & ALEKO CHAKHVASHVILI SUPERVAIZOR: PROF. NODAR MOMTSELIDZE Spring,2015 Apache Hive BY NATIA MAMAIASHVILI, LASHA AMASHUKELI & ALEKO CHAKHVASHVILI SUPERVAIZOR: PROF. NODAR MOMTSELIDZE Contents: Briefly About Big Data Management What is hive? Hive Architecture Working

More information

Java and RDBMS. Married with issues. Database constraints

Java and RDBMS. Married with issues. Database constraints Java and RDBMS Married with issues Database constraints Speaker Jeroen van Schagen Situation Java Application store retrieve JDBC Relational Database JDBC Java Database Connectivity Data Access API ( java.sql,

More information

EJB & J2EE. Component Technology with thanks to Jim Dowling. Components. Problems with Previous Paradigms. What EJB Accomplishes

EJB & J2EE. Component Technology with thanks to Jim Dowling. Components. Problems with Previous Paradigms. What EJB Accomplishes University of Dublin Trinity College EJB & J2EE Component Technology with thanks to Jim Dowling The Need for Component-Based Technologies The following distributed computing development paradigms have

More information

Java EE Web Development Course Program

Java EE Web Development Course Program Java EE Web Development Course Program Part I Introduction to Programming 1. Introduction to programming. Compilers, interpreters, virtual machines. Primitive types, variables, basic operators, expressions,

More information

bbc Developing Service Providers Adobe Flash Media Rights Management Server November 2008 Version 1.5

bbc Developing Service Providers Adobe Flash Media Rights Management Server November 2008 Version 1.5 bbc Developing Service Providers Adobe Flash Media Rights Management Server November 2008 Version 1.5 2008 Adobe Systems Incorporated. All rights reserved. Adobe Flash Media Rights Management Server 1.5

More information

Complex Data and Object-Oriented. Databases

Complex Data and Object-Oriented. Databases Complex Data and Object-Oriented Topics Databases The object-oriented database model (JDO) The object-relational model Implementation challenges Learning objectives Explain what an object-oriented data

More information

Hadoop Integration Guide

Hadoop Integration Guide HP Vertica Analytic Database Software Version: 7.0.x Document Release Date: 2/20/2015 Legal Notices Warranty The only warranties for HP products and services are set forth in the express warranty statements

More information

MySQL for Beginners Ed 3

MySQL for Beginners Ed 3 Oracle University Contact Us: 1.800.529.0165 MySQL for Beginners Ed 3 Duration: 4 Days What you will learn The MySQL for Beginners course helps you learn about the world's most popular open source database.

More information

Advanced Java Client API

Advanced Java Client API 2012 coreservlets.com and Dima May Advanced Java Client API Advanced Topics Originals of slides and source code for examples: http://www.coreservlets.com/hadoop-tutorial/ Also see the customized Hadoop

More information

Getting Started with the Internet Communications Engine

Getting Started with the Internet Communications Engine Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2

More information

CS 377 Database Systems SQL Programming. Li Xiong Department of Mathematics and Computer Science Emory University

CS 377 Database Systems SQL Programming. Li Xiong Department of Mathematics and Computer Science Emory University CS 377 Database Systems SQL Programming Li Xiong Department of Mathematics and Computer Science Emory University 1 A SQL Query Joke A SQL query walks into a bar and sees two tables. He walks up to them

More information

SnapLogic Salesforce Snap Reference

SnapLogic Salesforce Snap Reference SnapLogic Salesforce Snap Reference Document Release: October 2012 SnapLogic, Inc. 71 East Third Avenue San Mateo, California 94401 U.S.A. www.snaplogic.com Copyright Information 2012 SnapLogic, Inc. All

More information

Getting Started with Telerik Data Access. Contents

Getting Started with Telerik Data Access. Contents Contents Overview... 3 Product Installation... 3 Building a Domain Model... 5 Database-First (Reverse) Mapping... 5 Creating the Project... 6 Creating Entities From the Database Schema... 7 Model-First

More information

The end. Carl Nettelblad 2015-06-04

The end. Carl Nettelblad 2015-06-04 The end Carl Nettelblad 2015-06-04 The exam and end of the course Don t forget the course evaluation! Closing tomorrow, Friday Project upload deadline tonight Book presentation appointments with Kalyan

More information

Performance Optimization of Teaching Web Application based SSH Framework

Performance Optimization of Teaching Web Application based SSH Framework Performance Optimization of Teaching Web Application based SSH Framework Jianchuan Meng 1 & Changdi Shi 1 & Liming Luo 1 1. Capital Normal University, Beijing, China ABSTRACT: Because Web applications

More information

Developing an EJB3 Application. on WebSphere 6.1. using RAD 7.5

Developing an EJB3 Application. on WebSphere 6.1. using RAD 7.5 Developing an EJB3 Application on WebSphere 6.1 using RAD 7.5 Introduction This tutorial introduces how to create a simple EJB 3 application using Rational Application Developver 7.5( RAD7.5 for short

More information

Object Relational Database Mapping. Alex Boughton Spring 2011

Object Relational Database Mapping. Alex Boughton Spring 2011 + Object Relational Database Mapping Alex Boughton Spring 2011 + Presentation Overview Overview of database management systems What is ORDM Comparison of ORDM with other DBMSs Motivation for ORDM Quick

More information

Linas Virbalas Continuent, Inc.

Linas Virbalas Continuent, Inc. Linas Virbalas Continuent, Inc. Heterogeneous Replication Replication between different types of DBMS / Introductions / What is Tungsten (the whole stack)? / A Word About MySQL Replication / Tungsten Replicator:

More information

WebObjects Web Applications Programming Guide. (Legacy)

WebObjects Web Applications Programming Guide. (Legacy) WebObjects Web Applications Programming Guide (Legacy) Contents Introduction to WebObjects Web Applications Programming Guide 6 Who Should Read This Document? 6 Organization of This Document 6 See Also

More information