Проблемы при сохранении данных в базе данных с помощью Hibernate - PullRequest
2 голосов
/ 17 марта 2010

Я пытаюсь сохранить данные в базу данных с помощью Hibernate, на Java. Но когда я запускаю коды, у меня было много проблем. Кто-нибудь может мне помочь с этим? Спасибо ...

Мой код:

package org.ultimania.model;

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

public class Test {

 public static void main(String[] args) {
  Session session = null;
  SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
  session = sessionFactory.openSession();
  Transaction transaction = session.getTransaction();

  BusinessCard card = new BusinessCard();
  card.setId(1);
  card.setName("Özgür");
  card.setDescription("Acıklama");

  try{
  transaction.begin();
  session.save(card);
  transaction.commit();
  } catch(Exception e){
   e.printStackTrace();
  }
  finally{
   session.close();
  }
 }
}

Проблемы:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

Exception in thread "main" java.lang.NoClassDefFoundError:
org/slf4j/impl/StaticLoggerBinder
 at org.slf4j.LoggerFactory.getSingleton(LoggerFactory.java:223)
 at org.slf4j.LoggerFactory.bind(LoggerFactory.java:120)
 at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
 at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:269)
 at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:242)
 at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:255)
 at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:152)
 at org.ultimania.model.Test.main(Test.java:14)
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
 at java.net.URLClassLoader$1.run(Unknown Source)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 ... 8 more

Ответы [ 2 ]

5 голосов
/ 17 марта 2010

Hibernate теперь использует Simple Logging Facade для Java (SLF4J), который, как указывает его название, является фасадом для различных реализаций каркаса ведения журналов (например, java.util.logging, log4j, logback). И поскольку использование одного или другого зависит от пользователя, пользователь должен установить jar для каркаса ведения журнала и для SLF4J " binding " (jar, который "связывает" SLF4J с реализацией) на путь класса. Если привязка slf4j отсутствует, SLF4J выдает следующее предупреждающее сообщение

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

Приятно то, что в сообщении об ошибке указана понятная ссылка. Итак, См. http://www.slf4j.org/codes.html#StaticLoggerBinder для более подробной информации ? Я вставляю это ниже для отчета:

Не удалось загрузить класс org.slf4j.impl.StaticLoggerBinder

Эта ошибка сообщается, когда org.slf4j.impl.StaticLoggerBinder класс не может быть загружен в память. Это происходит, когда нет подходящего SLF4J связывание может быть найдено на классе дорожка. Размещение одного (и только одного) из slf4j-nop.jar , slf4j-simple.jar , slf4j-log4j12.jar , slf4j-jdk14.jar или logback-classic.jar на пути к классам должен решить проблему.

Вы можете скачать привязки SLF4J с проект страница загрузки .

Сообщение довольно ясно: вам нужно добавить привязку SLF4J . На данный момент я предлагаю использовать slf4j-simple.jar (который выводит все события в System.err). Получите банку по приведенной выше ссылке и добавьте ее в путь классов вашего приложения. Измените это позже, если вы хотите сделать более сложное ведение журнала.

4 голосов
/ 17 марта 2010

У вас есть недостающая библиотека, зайдите сюда и загрузите баночки slf4j, затем поместите баночки в свой путь.
Если я не ошибаюсь, slf4j-api распространяется вместе с hibernate, просто добавьте его и slf4j-simple в путь к классам вашего приложения.

...