如何解决使用 HIBERNATE 将数据插入到 MYSQL 后,IOConsole 更新程序断言错误
在使用 hibernate 将数据插入 mysql 后,我在 Eclipse 上遇到 IOConsole Updater assetion failed 错误,这种情况导致程序跳过一些代码并继续以错误的方式工作。 当我取消将值保存到数据库的插入方法时,一切正常。
here you can see the error image
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;
}
}
TradeStats.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 + "]";
}
}
TradeStatsDao.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) {}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。