Как перевести записи данных в спящий режим в MySQL из Java EE?

#java #mysql #spring #hibernate #jpa

Вопрос:

  1. Привет, ребята, пожалуйста, помогите мне с этой ошибкой в 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
 
  1. Вот код, который я написал:

  1. Во-первых, это 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();    
    }
}
 
  1. Во-вторых, это 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>
 
  1. 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   "]";
    }
}
 
  1. Четвертое-это 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 в свой путь к классу. Как вы запускаете свое приложение?