Рубрики
Без рубрики

Maven 2 + Гибернация 3.2 + Пример MySQL (сопоставление XML)

– Maven 2 + Гибернация 3.2 + Пример MySQL (сопоставление XML)

В этом кратком руководстве показано, как использовать Maven для создания простого проекта Java, и используется режим гибернации для вставки записи в базу данных MySQL.

Инструменты и технологии, используемые в этой статье:

  1. Maven 2.2.1
  2. JDK 1.6.0_13 JDK 1.6.0_13
  3. Впадать в спячку 3.2.3.GA
  4. MySQL 5.0

1. Создание таблицы

Скрипт MySQL для создания таблицы “запасы”.

DROP TABLE IF EXISTS `stock`;
CREATE TABLE `stock` (
  `STOCK_ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `STOCK_CODE` VARCHAR(10) NOT NULL,
  `STOCK_NAME` VARCHAR(20) NOT NULL,
  PRIMARY KEY (`STOCK_ID`) USING BTREE,
  UNIQUE KEY `UNI_STOCK_NAME` (`STOCK_NAME`),
  UNIQUE KEY `UNI_STOCK_ID` (`STOCK_CODE`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2. Создайте структуру проекта с помощью Maven

В командной строке введите ” архетип mvn: сгенерировать “, выберите проект №15, чтобы создать быстрый запуск java-проекта Maven, затем введите информацию о своем проекте – идентификатор группы, идентификатор артефакта и пакет.

E:\workspace>mvn archetype:generate
[INFO] Scanning for projects...
...
Choose a number:  
(1/2/3....) 15: : 15
...
Define value for groupId: : com.mkyong.common
Define value for artifactId: : HibernateExample
Define value for version:  1.0-SNAPSHOT: :
Define value for package:  com.mkyong.common: : com.mkyong.common
[INFO] OldArchetype created in dir: E:\workspace\HibernateExample
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------

3. Преобразовать в проект Eclipse

Проблема ” mvn eclipse: eclipse ” для преобразования вновь созданного проекта в проект стиля Eclipse

4. Импорт преобразованного проекта в среду разработки Eclipse

В Eclipse IDE выберите Файл –> Импорт –> Общая папка, Существующие проекты в рабочую область –>Выберите расположение папки проекта. Сделано

5. Создайте папку ресурсов

Создайте папку ресурсов в папке ” src/main “, ” /src/main/ресурсы “, позже все xml-файлы Hibernate будут помещены сюда. Maven будет обрабатывать все файлы в этой папке как файлы ресурсов и автоматически копировать их в выходные классы.

6. Обзор структуры проекта

Убедитесь, что структура папок выглядит следующим образом

Maven создаст для вас всю стандартную структуру папок Java (помимо папки ресурсов, архетип быстрого запуска #15 не содержит папки ресурсов)

7. Добавьте зависимость от гибернации и MySQL

Измените параметры Maven pom.xml файл, добавьте поддержку Hibernate и MySQL. Hibernate требуется dom4j, commons-ведение журнала, commons-коллекции и cglib в качестве библиотеки зависимостей, добавьте ее.

Файл: pom.xml


4.0.0
  com.mkyong.common
  HibernateExample
  jar
  1.0-SNAPSHOT
  HibernateExample
  http://maven.apache.org
  
    
    
      junit
      junit
      3.8.1
      test
    
    
        
	
		mysql
		mysql-connector-java
		5.1.9
	
	
	
	
		hibernate
		hibernate3
		3.2.3.GA
	
	
	
	
	
		dom4j
		dom4j
		1.6.1
	
	
	
		commons-logging
		commons-logging
		1.1.1
	
	
	
		commons-collections
		commons-collections
		3.2.1
	
	
	
		cglib
		cglib
		2.2
	
	
	
	
		javax.transaction
		jta
		1.1
	
	
  

Введите ” mvn eclipse: eclipse “, Maven автоматически загрузит все библиотеки Hibernate и MySQL и поместит их в локальное хранилище Maven. В то же время Maven добавит загруженные библиотеки в Eclipse ” .путь к классу “для целей зависимости. Нравится снова 🙂 , не нужно искать библиотеку и копировать ее самому.

8. Создать файл отображения гибернации + Класс модели

В обязательном требовании создается таблица с именем “запас”, теперь вам нужно будет создать файл отображения XML в режиме гибернации и класс модели для него.

Создайте Stock.hbm.xml файл и поместите его в ” src/main/resources/com/mkyong/common/Stock.hbm.xml “. Создайте папку “ресурсы/com/mkyong/общие/”, если она не существует.

Файл: Stock.hbm.xml






    
        
            
            
        
        
            
        
        
            
        
    

Создайте Stock.java файл и поместите его в ” src/main/java/com/mkyong/common/Stock.java

Файл: Stock.java

package com.mkyong.common;

/**
 * Model class for Stock
 */
public class Stock implements java.io.Serializable {

	private static final long serialVersionUID = 1L;

	private Integer stockId;
	private String stockCode;
	private String stockName;

	public Stock() {
	}

	public Stock(String stockCode, String stockName) {
		this.stockCode = stockCode;
		this.stockName = stockName;
	}

	public Integer getStockId() {
		return this.stockId;
	}

	public void setStockId(Integer stockId) {
		this.stockId = stockId;
	}

	public String getStockCode() {
		return this.stockCode;
	}

	public void setStockCode(String stockCode) {
		this.stockCode = stockCode;
	}

	public String getStockName() {
		return this.stockName;
	}

	public void setStockName(String stockName) {
		this.stockName = stockName;
	}

}

9. Создать файл конфигурации гибернации

Создайте файл конфигурации гибернации и поместите его в корневую папку ресурсов”/| src/main/resources/hibernate.cfg.xml “. Заполните ваши настройки MySQL соответствующим образом.

Файл: hibernate.cfg.xml





    
        false
        com.mysql.jdbc.Driver
        password
        jdbc:mysql://localhost:3306/mkyong
        root
        org.hibernate.dialect.MySQLDialect
        true
        
    

Установите для свойства “show_sql” значение true, чтобы вывести инструкцию SQL Hibernate. Диалект гибернации указывает вашему приложению гибернации, какой SQL он должен сгенерировать, чтобы общаться с вашей базой данных. Пожалуйста, обратитесь к этой статье для других диалектов базы данных – Коллекция диалектов гибернации .

10. Создать служебный класс гибернации

Создайте HibernateUtil.java класс, чтобы позаботиться о запуске гибернации и легко восстановить сеанс. Создайте папку сохранения и поместите в нее этот файл”/| src/main/java/com/mkyong/persistence/HibernateUtil.java

Файл: HibernateUtil.java

package com.mkyong.persistence;

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

public class HibernateUtil {

    private static final SessionFactory sessionFactory = buildSessionFactory();

    private static SessionFactory buildSessionFactory() {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            return new Configuration().configure().buildSessionFactory();
        }
        catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
    
    public static void shutdown() {
    	// Close caches and connection pools
    	getSessionFactory().close();
    }

}

11. Еще раз просмотрите структуру проекта

Звучит так, как будто вы создаете много новых файлов и папок, просматриваете их и убедитесь, что структура папок выглядит следующим образом

12. Закодируйте его, чтобы сохранить запись

Измените значение по умолчанию App.java класс следующим образом:

Файл: App.java

package com.mkyong.common;

import org.hibernate.Session;
import com.mkyong.persistence.HibernateUtil;

public class App 
{
    public static void main( String[] args )
    {
        System.out.println("Maven + Hibernate + MySQL");
        Session session = HibernateUtil.getSessionFactory().openSession();
        
        session.beginTransaction();
        Stock stock = new Stock();
        
        stock.setStockCode("4715");
        stock.setStockName("GENM");
        
        session.save(stock);
        session.getTransaction().commit();
    }
}

13. Запустите его и посмотрите результат

Запустите свой App.java , он вставит новую запись в таблицу “Запасы”.

Maven + Hibernate + MySQL
...
Dec 17, 2009 5:05:26 PM org.hibernate.impl.SessionFactoryObjectFactory addInstance
INFO: Not binding factory to JNDI, no JNDI name configured
Hibernate: insert into mkyong.stock (STOCK_CODE, STOCK_NAME) values (?, ?)

Сделано.

Ссылка

  1. Ссылка

Оригинал: “https://mkyong.com/hibernate/quick-start-maven-hibernate-mysql-example/”