org.hibernate.exception.GenericJDBCException: could not prepare statement
public interface BaseEntity<ID extends Serializable> extends Serializable {
/**
* @return
*/
public abstract ID getId();
/**
* @param id
*/
public abstract void setId(ID id);
}
@Entity
@Table(name = "t_character_build")
public class CharacterBuild implements BaseEntity<Integer> {
/**
*
*/
private static final long serialVersionUID = -4265343379276247352L;
private Integer id;
private int charId;
private String stateInfo;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Override
public Integer getId() {
return id;
}
@Override
public void setId(Integer id) {
this.id = id;
}
@Column(name = "stateInfo")
public String getStateInfo() {
return stateInfo;
}
public void setStateInfo(String stateInfo) {
this.stateInfo = stateInfo;
}
@Column(name = "charId")
public int getCharId() {
return charId;
}
public void setCharId(int charId) {
this.charId = charId;
}
}
public class HibernateDBServcieImpl implements DBService {
private final SessionFactory sessionFactory;
private final HibernamteTemplate transTemplate = new TranHibernateTemplate();
private static final String DB_CHECK_SQL = "select 1";
@Override
public void update(final BaseEntity entity) throws DataAccessException {
transTemplate.doCall(new HibernateCallback<Object>() { //这里报错
@Override
public Object doCall(Session session) {
session.update(entity);
return null;
}
});
}
private interface HibernamteTemplate {
public <T> T doCall(HibernateCallback<T> callback);
}
private final class TranHibernateTemplate implements HibernamteTemplate {
@Override
public <T> T doCall(HibernateCallback<T> callback) {
Session _session = null;
Transaction _tr = null;
T _result = null;
try {
_session = sessionFactory.openSession();
_tr = _session.beginTransaction();
_result = callback.doCall(_session);
_tr.commit();
} catch (Exception e) {
if (_tr != null) {
_tr.rollback();
}
throw new DataAccessException(e); // 这里捕获到异常,有时没问题,有时就报错
} finally {
if (_session != null) {
_session.close();
}
}
return _result;
}
}
}
hibernate.cfg.xml文件.
<session-factory>
<property name="hibernate.dialect">
org.hibernate.dialect.MySQL5InnoDBDialect
</property>
<property name="hibernate.connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="hibernate.transaction.factory_class">
org.hibernate.transaction.JDBCTransactionFactory
</property>
<property name="hibernate.cache.provider_class">
org.hibernate.cache.NoCacheProvider
</property>
<property name="hibernate.cache.use_query_cache">
false
</property>
<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.format_sql">false</property>
<property name="hibernate.hbm2ddl.auto">none</property>
<property name="hibernate.jdbc.batch_size">50</property>
<property name="hibernate.c3p0.maxIdleTime">180</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">1000</property>
<property name="hibernate.c3p0.max_statements">20</property>
........
</session-factory>
相关推荐
错误:使用MyEclipse Database Exp
错误: Problem Occurred Generating Artifacts(Time of error : November 8,2009 6:54:39 PM GMT+08:00) Reason: Could not get list of suggested identity strategies from database. Probably a JDBC driver problem. 过程: 使用MyEclipse Database Exp 解决方法 1、你的eclipse上有可能安装了jboss公司的hibernate tools plugin for eclipse,这些插件与myEclipse发生冲突,解决方法是删除这些插件。 2、你在没有卸载以前myEclipse版本的情况下安装了新的myEclipse版本,解决方法是把myEclipse卸载后重新安装,重装myEclipse后问题解决了。 3、你得数据库JDBC驱动可能需要更新,你可以到.metadata\.log看看日志,它会有org.hibernate.exception.GenericJDBCException: Could not get list of tables from database. Probably a JDBC driver problem. 的错误提示。解决方法去找一个比较新的你所使用的数据库JDBC驱动如mysql-connector-java-5.1.15-bin.jar 就OK。 4:http://ajava.org/exep/myeclipse/16939.html 5:如果上面的都做的正确就和我的一样,我自己认为可能是第二种情况所说的,但是我又不想卸载, 我研究了一下,在反转的时候重启一下mysql服务就可以了,具体为什么我也不太清楚
mysql插入数据中文报错问题,最全解决方式
mysql插入数据中文报错问题,最全解决方式。 mysql 插入数据报错
h2-lob-issue:H2 1.4“找不到Lob”问题的可重现单元测试
H2 1.4 "Lob not found" 问题 - 在 1.4.183 中修复! 针对重现失败单元测试。 如何 先决条件: Java 8 在 Linux 上: # ./gradlew --info build 在 Windows 上: # gradlew --info build 堆栈跟踪 由于 H2 中的Lob not found异常, H2LobIssueTest.testConcurrentLobModification失败。 在特拉维斯: Caused by: org.hibernate.exception.GenericJDBCException: could not load an entity: [de.bwaldvogel.LobEntity#1] at org.hibernate.exception.SQLStateConverter.handl
最新2026黑龙江省村界村级行政区划矢量shp数据下载
最新2026黑龙江省村界村级行政区划矢量shp数据,几千个面,属性包含村、社区乡、街道镇、市多级属性,非常准确
政府科技管理者在推动科技成果转化过程中,如何精准匹配供需双方并提高对接效率?.docx
政府科技管理者在推动科技成果转化过程中,如何精准匹配供需双方并提高对接效率?


