Hibernate

From OasisSoftTech.com - Knowledge Base/Java/Springframework/Microservices/Cloud-AWS/AI
Revision as of 12:48, 21 June 2018 by Rasimsen (talk | contribs)
Jump to: navigation, search

Springframework - Hibernate - MySQL - Maven Project

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.oasissofttech.springmvc</groupId>
	<artifactId>SpringFramework-MVC-Tutorial-4-Hibernate</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>SpringFramework-MVC-Tutorial-4-Hibernate Maven Webapp</name>
	<url>http://maven.apache.org</url>
	<dependencies>

		<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>5.3.1.Final</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>5.0.7.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>5.0.7.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.39</version>
		</dependency>


	</dependencies>
	<build>
		<finalName>SpringFramework-MVC-Tutorial-4-Hibernate</finalName>
	</build>
</project>

hibernate.cfg.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>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://testmysql.oasissofttech.com:3306/oasis_test_db</property>
        <property name="hibernate.connection.username">oasisdbtestuser</property>
        <property name="hibernate.connection.password">test97531</property>
    </session-factory>
</hibernate-configuration>

POJO class

package com.oasissofttech.springmvc;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Alien {
	@Id
	private int aid;
	private String aname;
	private String acolor;

	public Alien() {
	}

	public Alien(int aid, String aname, String acolor) {
		super();
		this.aid = aid;
		this.aname = aname;
		this.acolor = acolor;
	}

	public int getAid() {
		return aid;
	}

	public void setAid(int aid) {
		this.aid = aid;
	}

	public String getAname() {
		return aname;
	}

	public void setAname(String aname) {
		this.aname = aname;
	}

	public String getAcolor() {
		return acolor;
	}

	public void setAcolor(String acolor) {
		this.acolor = acolor;
	}

}

Application main class

package com.oasissofttech.springmvc;

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

public class App {

	public static void main(String[] args) {
		Alien alien = new Alien();
		alien.setAid(1);
		alien.setAname("rasim");
		alien.setAcolor("green");

		Configuration con = new Configuration().configure().addAnnotatedClass(Alien.class);
		SessionFactory buildSessionFactory = con.buildSessionFactory();
		Session session = buildSessionFactory.openSession();
		Transaction transaction = session.beginTransaction();
		session.save(alien);
		transaction.commit();

	}

}



JBOSS - Hibernate Tools

JBoss Tools eClipse plugin is very powerfull tool to manage your hibernate objects and queries.

Hibernate Tools provides easy generation, testing and prototyping of your Hibernate or JPA mapped projects. Use it to Run queries, browse mappings and generate code for your data projects.

Hibernate Code Generation Launch

Generate artifacts based on Hibernate model

Hibernate Tools provide a code generation launch configuration which can take the configured Hibernate model and use for various code generation tasks.

Since it is a launch configuration it is easy to run it repeatedly while developing via the Launch Configuration menu.

features-hibernate-launchconfig-reveng.png


Reverse Engineering

Exporters

Hibernate Console

Browse your model & database

Mapping Diagram

Mapping Diagram controls

HQL Editor

Prototype your queries In the HQL editor you can prototype your HQL queries and see the result in the Hibernate Query Result viewer.

Dynamic SQL Preview

features-hibernate-dynamic-sql-preview.png

Criteria Editor

hbm.xml XML Editor

features-hibernate-hbmxml-editor.png

Reverse Engineering Strategy Editor

Hibernate eclipse plugin - JBOSS : https://tools.jboss.org/features/hibernate.html