Hibernate select query example in java

Step 1: Download the hibernate 3.6 final distribution.
Click to download Hibernate 3.6 final distribution download.

Step 2: Required jar files are,
required library files for hibernate

Step 3: Create a Java project in the eclipse and Create a registration configuration xml file inside src folder (which has the connection information like url, username password etc…)
Create a file named “registration.cfg.xml” and paste the below code,

Note: Filename can be anything but extension must be .cfg.xml.

[xml]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
<!– Database connection configurations –>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/signup</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password"></property>

<!– Making autocommit false –>
<property name="hibernate.connection.autocommit">false</property>

<!– Displaying sql queries when running the program –>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="use_sql_comments">true</property>

<!– For JDBC connections –>
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>

<!– Mapping file –>
<mapping resource="registration.hbm.xml" />

</session-factory>

</hibernate-configuration>
[/xml]

Note: Url, Username Password and dialect informations are available for all the databases in the configuration file which is in “project -> etc (contains all the properties of all databases)”  of hibernate 3.6 distribution final folder (which is downloaded in step 1).

Step 4: Create a table with this attribute in mysql, username(varchar) 20 primary key, email(varchar) 30, password (varchar) 20

Step 5: Create a Pojo class (Registration) for table attributes (username, email and password) and paste the below code,

[java]

public class Registration {
public Registration(){}
private String userName;
private String emailId;
private String password;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getEmailId() {
return emailId;
}
public void setEmailId(String emailId) {
this.emailId = emailId;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

}
[/java]

Step 6: Create a mapping xml file which map the column and the attribute of the above Pojo class (setter and getter).
Create a file named “registration.hbm.xml” and paste the below code,

Note: File name can be anything, but extension must be .hbm.xml

[xml]
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
<class name="Registration" table="Registration">
<id name="userName" column="USERNAME" type="string">
<generator class="assigned"></generator>
</id>
<property name="emailId" column="EMAILID" type="string"></property>
<property name="password" column="PASSWORD" type="string"></property>
</class>

</hibernate-mapping>
[/xml]

Copy the doctype(3rd line) from the file (project -> core ->source ->main ->resources -> org ->hibernate ->(mapping file)) for the above mapping file, it is not a mandatory one, to ensure the things right we can do this.

Step 7: Create a business class named “RegisterDetails” and paste the below code,

[java]
import java.util.Iterator;
import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class RegisterDetails {

/**
* @param args
*/
public static void main(String[] args) {
Configuration cfg = new Configuration();
cfg.configure("registration.cfg.xml");
SessionFactory sf = cfg.buildSessionFactory();
Session s = sf.openSession();
Transaction tx = s.beginTransaction();

List registeredDetails = s.createQuery("FROM Registration").list();
Iterator listIterator = registeredDetails.iterator();
while(listIterator.hasNext()){
Registration rd = (Registration) listIterator.next();
System.out.println("UserId :" +rd.getUserName());
System.out.println("Mail Id :" +rd.getEmailId());
System.out.println("Password :" +rd.getPassword());
}
tx.commit();
s.close();

}

}
[/java]

Run the program and the values are selected from the db and the query will be displayed in the console.

Output: Hibernate:

/* FROM Registration */ select registrati0_.USERNAME as USERNAME0_, registrati0_.EMAILID as EMAILID0_, registrati0_.PASSWORD as PASSWORD0_ from Registration registrati0_
UserId :naveendra
Mail Id :test@ngdeveloper.com
Password :test@123
UserId :naveendra1
Mail Id :test@ngdeveloper.com
Password :test@123

Easy Understand :

  • Hibernate configuraion xml file which is to hold the connection details such as url, username, password, dialect(to generate queries) and driver class details.
  • Pojo class for the required attributes.
  • Hibernate mapping xml file to map the pojo class attributes with the table columns.
  • Business class to write the business code, we have written value selection details here.

Download the Source Code: HibernateSelectQuery

Hibernate Recommended Books:

Leave a Reply