Retrieving records from Database in Hibernate

In my previous post I have used example for the insertion of data in Hibernate. Here is another example for selecting the records from the database using hibernate. In the same project (from previous post), I have added this new class named UsersList.java and ShowUser.java without making any other changed.

package ps.com;
//UsersList.java
import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import org.hibernate.criterion.ProjectionList;
import org.hibernate.criterion.Projections;

import java.util.Iterator;
import java.util.List;

public class UsersList {
	public static void main(String[] args) {
		Session sess = null;
		try {
			SessionFactory sfact = new Configuration().configure().buildSessionFactory();
			sess = sfact.openSession();
			Criteria crit = sess.createCriteria(User.class);
			ProjectionList proList = Projections.projectionList();

			proList.add(Projections.property("u_name"));
			proList.add(Projections.property("u_password"));
			crit.setProjection(proList);
			List list = crit.list();
			Iterator it = list.iterator();
			if (!it.hasNext()) {
				System.out.println("Data does not exist");
			} else {
				System.out.println("User Name\t\tPassword");
				System.out.println("----------------------------------");
				while (it.hasNext()) {
					Object[] row = (Object[]) it.next();
					for (int i = 0; i < row.length; i++) {
						System.out.print(row[i] +"\t\t\t");

					}
					System.out.println();
				}
			}
			sess.close();
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println("Error :" + e.getMessage());
		}
	}
}

Output :

Most of the time we need to select single row with condition, which can be achieved from this piece of code.

package ps.com;
//ShowUser.java
import java.util.Iterator;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import org.hibernate.criterion.Example;
import org.hibernate.criterion.ProjectionList;
import org.hibernate.criterion.Projections;

public class ShowUser {
	public static void main(String[] args) {
		Session sess = null;
		try {
			SessionFactory sfact = new Configuration().configure()
					.buildSessionFactory();
			sess = sfact.openSession();

			User user = new User();
			user.setU_name("sharma");
			Example example = Example.create(user);
			Criteria crit = sess.createCriteria(User.class).add(example);

			ProjectionList proList = Projections.projectionList();
			proList.add(Projections.property("u_name"));
			proList.add(Projections.property("u_password"));
			crit.setProjection(proList);
			List list = crit.list();
			Iterator it = list.iterator();

			System.out.println("User Name\t\tPassword");
			System.out.println("----------------------------------");

			Object[] row = (Object[]) it.next();
			for (int i = 0; i < row.length; i++) {
				System.out.print(row[i] + "\t\t\t");

			}

			sess.close();
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println("Error :" + e.getMessage());
		}
	}
}

Output

Note: In this code, Example class that is used to add criteria is defined in imported package org.hibernate.criterion.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: