В этом кратком руководстве показано, как использовать Maven для создания простого проекта Java, и используется режим гибернации для вставки записи в базу данных MySQL.
Инструменты и технологии, используемые в этой статье:
- Maven 2.2.1
- JDK 1.6.0_13 JDK 1.6.0_13
- Впадать в спячку 3.2.3.GA
- 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 (?, ?)
Сделано.
Ссылка
Оригинал: “https://mkyong.com/hibernate/quick-start-maven-hibernate-mysql-example/”