首页 > 解决方案 > 使用 HIBERNATE 将数据插入 MYSQL 后 IOConsole 更新程序断言错误

问题描述

使用休眠将数据插入 mysql 后,我在 Eclipse 上收到 IOConsole 更新程序资产失败错误,这种情况导致程序跳过一些代码并继续以错误的方式工作。当我取消将值保存到数据库的插入方法时,一切正常。

在这里你可以看到错误图片

j2n-hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>

    <!-- SQL Dialect -->
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/tutorialdb</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">*******</property>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
    <!-- it was false , i make true -->
    <property name="show_sql">true</property>
    
    <!-- Specifying Session Context -->
    <property name="hibernate.current_session_context_class">org.hibernate.context.internal.ThreadLocalSessionContext</property>
    
    <!-- Mapping With Model Class Containing Annotations -->
    <mapping class="com.binance.api.examples.TradeStats" />
    
</session-factory>
</hibernate-configuration>

HibernateUtil.java:

package com.binance.api.examples;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

public class HibernateUtil {
private static SessionFactory sessionFactory = null;

static {
    try{
        loadSessionFactory();
    }catch(Exception e){
        System.err.println("Exception while initializing hibernate util.. ");
        e.printStackTrace();
    }
}

public static void loadSessionFactory(){

    Configuration configuration = new Configuration();
    configuration.configure("/j2n-hibernate.cfg.xml");
    configuration.addAnnotatedClass(TradeStats.class);
    ServiceRegistry srvcReg = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
    sessionFactory = configuration.buildSessionFactory(srvcReg);
}

public static Session getSession() throws HibernateException {

    Session retSession=null;
        try {
            retSession=sessionFactory.openSession();
        }catch(Throwable t){
        System.err.println("Exception while getting session.. ");
        t.printStackTrace();
        }
        if(retSession == null) {
            System.err.println("session is discovered null");
        }

        return retSession;
}
}

贸易统计.java

package com.binance.api.examples;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="tradestats")
public class TradeStats implements Serializable {

/**
 * 
 */
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="TRADE_ID")
private Long tradeId;

@Column(name="COIN_NAME")
private String coinName;

@Column(name="COIN_BOUGHT_LAST_PRICE")
private double coinBoughtLastPrice;

@Column(name="COIN_SOLD_LAST_PRICE")
private double coinSoldLastPrice;

@Column(name="STOP_VALUE")
private double stopValue;

@Column(name="PROFIT_VALUE")
private double profitValue;

@Column(name="GAIN")
private double gain;

@Column(name="LOSS")
private double loss;

@Column(name="PREDICTION_PRICE")
private double predictionPrice;

@Column(name="PRICE_AVERAGE")
private double priceAverage;

@Column(name="TOTAL_GAIN")
private double totalGain;

@Column(name="TOTAL_LOSS")
private double totalLoss;

@Column(name="DURATION")
private int duration;

public Long getTradeId() {
    return tradeId;
}

public void setTradeId(Long tradeId) {
    this.tradeId = tradeId;
}

public String getCoinName() {
    return coinName;
}

public void setCoinName(String coinName) {
    this.coinName = coinName;
}

public double getCoinBoughtLastPrice() {
    return coinBoughtLastPrice;
}

public void setCoinBoughtLastPrice(double coinBoughtLastPrice) {
    this.coinBoughtLastPrice = coinBoughtLastPrice;
}

public double getCoinSoldLastPrice() {
    return coinSoldLastPrice;
}

public void setCoinSoldLastPrice(double coinSoldLastPrice) {
    this.coinSoldLastPrice = coinSoldLastPrice;
}

public double getStopValue() {
    return stopValue;
}

public void setStopValue(double stopValue) {
    this.stopValue = stopValue;
}

public double getProfitValue() {
    return profitValue;
}

public void setProfitValue(double profitValue) {
    this.profitValue = profitValue;
}

public double getGain() {
    return gain;
}

public void setGain(double gain) {
    this.gain = gain;
}

public double getLoss() {
    return loss;
}

public void setLoss(double loss) {
    this.loss = loss;
}

public double getPredictionPrice() {
    return predictionPrice;
}

public void setPredictionPrice(double predictionPrice) {
    this.predictionPrice = predictionPrice;
}

public double getPriceAverage() {
    return priceAverage;
}

public void setPriceAverage(double priceAverage) {
    this.priceAverage = priceAverage;
}

public double getTotalGain() {
    return totalGain;
}

public void setTotalGain(double totalGain) {
    this.totalGain = totalGain;
}

public double getTotalLoss() {
    return totalLoss;
}

public void setTotalLoss(double totalLoss) {
    this.totalLoss = totalLoss;
}

public double getDuration() {
    return duration;
}

public void setDuration(int duration) {
    this.duration = duration;
}

@Override
public String toString() {
    return "TradeStats [tradeId=" + tradeId + ", coinName=" + coinName + ", coinBoughtLastPrice="
            + coinBoughtLastPrice + ", coinSoldLastPrice=" + coinSoldLastPrice + ", stopValue=" + stopValue
            + ", profitValue=" + profitValue + ", gain=" + gain + ", loss=" + loss + ", predictionPrice="
            + predictionPrice + ", priceAverage=" + priceAverage + ", totalGain=" + totalGain + ", totalLoss="
            + totalLoss + ", duration=" + duration + "]";
}


}

贸易统计道.java:

package com.binance.api.examples;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
@SuppressWarnings("deprecation")
public class TradeStatsDao {

 @SuppressWarnings("unchecked")
    public List<TradeStats> getTradeStatsList(){
 
        Session session = null;
        List<TradeStats> tradeList = null;
        try {
            session = HibernateUtil.getSession();
            String queryStr = "Select trade from TradeStats";
            @SuppressWarnings("rawtypes")
            Query query = session.createQuery(queryStr);
            tradeList = query.list();
        } catch(Exception ex) {
            ex.printStackTrace();
            // handle exception here
        } finally {
            try {if(session != null) session.close();} catch(Exception ex) {}
        }
        return tradeList;
    }
 
 public TradeStats getTradeStatsById(Long tradeId){
     
        Session session = null;
        TradeStats trd = null;
        try {
            session = HibernateUtil.getSession();
            trd = session.get(TradeStats.class,tradeId);
 
        } catch(Exception ex) {
            ex.printStackTrace();
            // handle exception here
        } finally {
            try {if(session != null) session.close();} catch(Exception ex) {}
        }
        return trd;
    }
 
 public void insertTradeStats(TradeStats trd) {
     
        Session session = null;
        Transaction transaction = null;
        try {
            session = HibernateUtil.getSession();
            transaction = session.beginTransaction();
            session.save(trd);
            System.out.println();
            System.out.println("inserted tradestats : "+trd.getCoinName());
            transaction.commit();
        } catch(Exception ex) {
            ex.printStackTrace();
            // handle exception here
            if(transaction != null) transaction.rollback();
        } finally {
            try {if(session != null) session.close();} catch(Exception ex) {}
        }
    }
 
 public void deleteTradeStats(TradeStats trd) {
     
        Session session = null;
        Transaction transaction = null;
        try {
            session = HibernateUtil.getSession();
            transaction = session.beginTransaction();
            session.delete(trd);
            transaction.commit();
            System.out.println();
            System.out.println("deleted employee: "+trd.getCoinName());
        } catch(Exception ex) {
            ex.printStackTrace();
            // handle exception here
            if(transaction != null) transaction.rollback();
        } finally {
            try {if(session != null) session.close();} catch(Exception ex) {}
        }
    }
 

}

标签: javamysqlhibernateconsoleassertion

解决方案


推荐阅读