#java #mysql #spring #hibernate #jpa
Вопрос:
- Привет, ребята, пожалуйста, помогите мне с этой ошибкой в Java EE, где я пытался перевести записи из Java EE в MySQL в спящий режим. Когда я запускаю код, я получаю следующую ошибку, в которой говорится:
Exception in thread "main" java.lang.NoClassDefFoundError: java/sql/SQLException
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:466)
at org.jboss.logging@3.4.2.Final/org.jboss.logging.Logger.doGetMessageLogger(Logger.java:2562)
at org.jboss.logging@3.4.2.Final/org.jboss.logging.Logger.getMessageLogger(Logger.java:2530)
at org.jboss.logging@3.4.2.Final/org.jboss.logging.Logger.getMessageLogger(Logger.java:2516)
at org.hibernate.orm.core@5.5.3.Final/org.hibernate.internal.CoreLogging.messageLogger(CoreLogging.java:28)
at org.hibernate.orm.core@5.5.3.Final/org.hibernate.internal.CoreLogging.messageLogger(CoreLogging.java:24)
at org.hibernate.orm.core@5.5.3.Final/org.hibernate.cfg.Configuration.<clinit (Configuration.java:87) at hibernate_Demo/com.control.HibernateMain.main(HibernateMain.java:14)
Caused by: java.lang.ClassNotFoundException: java.sql.SQLException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
... 9 more
- Вот код, который я написал:
- Во-первых, это HibernateMain.java
package com.control;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import com.to.Player;
public class HibernateMain {
public static void main(String[] args) {
Configuration configuration = new Configuration().configure();
configuration.addAnnotatedClass(com.to.Player.class);
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
SessionFactory factory= configuration.buildSessionFactory(builder.build());
Session session=factory.openSession();
Transaction transaction = session.beginTransaction();
Player p1 = new Player(10, "Amit", "India", 30);
session.save(p1);
Player p2 = new Player(20, "Rohit", "India", 35);
session.save(p2);
transaction.commit();
session.close();
}
}
- Во-вторых, это hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?>
<!--
~ Hibernate, Relational Persistence for Idiomatic Java
~
~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
-->
<!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 settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate_demo</property>
<property name="connection.username">root</property>
<property name="connection.password">Harshman@my59l</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create</property>
<!-- Names the annotated entity class -->
<mapping class="com.to.Player"/>
</session-factory>
</hibernate-configuration>
- Third is Player.java
package com.to;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table
public class Player {
@Id
private int playerId;
private String playerName;
private String teamName;
private int age;
public Player() {
}
public Player(int playerId, String playerName, String teamName, int i) {
super();
this.playerId = playerId;
this.playerName = playerName;
this.teamName = teamName;
this.age = I;
}
public int getPlayerId() {
return playerId;
}
public void setPlayerId(int playerId) {
this.playerId = playerId;
}
public String getPlayerName() {
return playerName;
}
public void setPlayerName(String playerName) {
this.playerName = playerName;
}
public String getTeamName() {
return teamName;
}
public void setTeamName(String teamName) {
this.teamName = teamName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Player [playerId=" playerId ", playerName=" playerName ", teamName=" teamName ", age=" age "]";
}
}
- Четвертое-это module-info.java
/**
* @author ACER
*/
module hibernate_Demo {
requires java.persistence;
requires org.hibernate.orm.core;
}
Я загрузил файлы hibernate и MySQL jar и сослался на них.
Пожалуйста, помогите ребятам, в чем проблема?
Комментарии:
1. Просто очистите свой проект и запустите заново , может быть, это поможет
2. Какую версию java вы используете?
3. Вы должны добавить jar с вашим драйвером JDBC SQL в свой путь к классу. Как вы запускаете свое приложение?