org.hibernate.exception.GenericJDBCException: could not prepare statement

hpf112867284 hpf112867284 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

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服务就可以了,具体为什么我也不太清楚

wangjie_123456

mysql插入数据中文报错问题,最全解决方式

mysql插入数据中文报错问题,最全解决方式。 mysql 插入数据报错

gt.ao

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

600Dreams

最新2026黑龙江省村界村级行政区划矢量shp数据下载

最新2026黑龙江省村界村级行政区划矢量shp数据,几千个面,属性包含村、社区乡、街道镇、市多级属性,非常准确

gis收藏家

政府科技管理者在推动科技成果转化过程中,如何精准匹配供需双方并提高对接效率?.docx

政府科技管理者在推动科技成果转化过程中,如何精准匹配供需双方并提高对接效率?

BIZKEEN
评论 2
收藏 已收藏
分享
返回顶部
hpf112867284
Java EE 67,535 成员 225,843 内容