mysql - 第一个带有注释的 Hibernate 类

标签 mysql hibernate

Image contains the JARS files which I already have.这是我的 hibernate.cfg.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<!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>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <property name="connecton.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/hibernate_db</property>
        <property name="show_sql">true</property>
    </session-factory>
</hibernate-configuration>

这是我的 DTO 类

package com.app.hibernate;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "paytm_table")

public class PaytmDTO implements Serializable 
{
    @Id
    @Column(name="mob_num")
    private int mobileNumber;

    @Column(name="amount")
    private int amount;

    @Column(name="email_id")
    private String emailId;

    @Column(name="OTP")
    private int OTP;

    public PaytmDTO() {

    }

    public int getMobileNumber() {
        return mobileNumber;
    }

    public void setMobileNumber(int mobileNumber) {
        this.mobileNumber = mobileNumber;
    }

    public int getAmount() {
        return amount;
    }

    public void setAmount(int amount) {
        this.amount = amount;
    }

    public String getEmailId() {
        return emailId;
    }

    public void setEmailId(String emailId) {
        this.emailId = emailId;
    }

    public int getOTP() {
        return OTP;
    }

    public void setOTP(int oTP) {
        OTP = oTP;
    }

}

这是我的 DAO 类

package com.app.hibernate;

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

public class PaytmDAO 
{
    public static void main(String[] args) 
    {
        //Create Object of DTO
        PaytmDTO dto=new PaytmDTO();

        //Set the DTO values using Setter method
        dto.setAmount(239);
        dto.setEmailId("impriyank95@gmail.com");
        dto.setMobileNumber(941478859);
        dto.setOTP(8965);

        //Create Object of Configuration
        Configuration config=new Configuration();
        config.configure();
        config.addAnnotatedClass(PaytmDTO.class);

        //Create object of 2nd Component SessionFactory
        SessionFactory sf=config.buildSessionFactory();

        //Get a Session (3rd Component)
        Session sess=sf.openSession();
        sess.save(dto);

        Transaction tx=sess.beginTransaction();
        tx.commit();

    }

}

我在控制台中收到这些错误

Jan 08, 2017 11:37:33 PM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init>
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:244)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:208)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:189)
    at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:217)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:189)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:692)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724)
    at com.app.hibernate.PaytmDAO.main(PaytmDAO.java:27)
Caused by: org.hibernate.exception.JDBCConnectionException: Error calling DriverManager#getConnection
    at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:115)
    at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:101)
    at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:123)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionCreator.makeConnection(DriverManagerConnectionCreator.java:37)
    at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58)
    at org.hibernate.engine.jdbc.connections.internal.PooledConnections.addConnections(PooledConnections.java:106)
    at org.hibernate.engine.jdbc.connections.internal.PooledConnections.<init>(PooledConnections.java:40)
    at org.hibernate.engine.jdbc.connections.internal.PooledConnections.<init>(PooledConnections.java:19)
    at org.hibernate.engine.jdbc.connections.internal.PooledConnections$Builder.build(PooledConnections.java:138)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:110)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:74)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:217)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:189)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:234)
    ... 14 more
Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/hibernate_db
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionCreator.makeConnection(DriverManagerConnectionCreator.java:34)
    ... 29 more

请解释一下我的不足之处?我的数据库用户名和密码是root。这是我的第一个 Hibernate 程序,我也将所有 jar 粘贴到我的 lib 下,并使用 buildPath 完成。

最佳答案

说的很清楚

Caused by: java.sql.SQLException: No suitable driver found...

您可能缺少 MySQL 连接器库。如果您使用的是maven,请添加

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>6.0.5</version> <!-- or whatever version is suitable -->
    <scope>runtime</scope>
</dependency>

到您的pom.xml。如果没有,您仍然可以从here下载.jar

关于mysql - 第一个带有注释的 Hibernate 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41536285/

相关文章:

MySQL sum with group by 给出错误的结果

java - Hibernate 似乎形成了错误的查询

java - hibernateTemplate如何进行保存操作?

java - 复合键类关系→错误: not mapped to a single property

java - 在 Hibernate 中,两个实体如何与第三个实体具有多对多的单向关系?

java - 如何将 joda 时间的 YearMonth 类型的属性保存到一列中?

php - 检查mysql表中的列中是否存在值

Python scrapy 持久数据库连接 MySQL

mysql - MySql 中的相关子查询 - 如何首先评估外部查询?

MySQL-插入一条主键为空的记录,在一台服务器上工作,而不是另一台服务器