我想用hibernate执行mysql插入查询,我有这个:
String q1="INSERT INTO sample (DatasetStatusID,Message,ProcessTime) VALUES('?','?','?') ";
Query query=session.createSQLQuery(q1);
query.setParameter(0, 5);
query.setParameter(1, "TESTING");
query.setParameter(2, new Date());
int result=query.executeUpdate();
tx.commit();
我发生了以下异常,
线程中的异常" main" org.hibernate.QueryParameterException: 位置超出声明的序数参数的数量。记住这一点 序数参数是基于1的!位置:1
这里有什么问题?
答案 0 :(得分:1)
如果您使用HIBERNATE
推荐的方式保存数据save()
。 HIBERNATE
包含数据库操作的所有方法。但是有些原因可以使用native sql
query.Saving with hibernate
如下所示:
Session sess = factory.openSession();
Transaction tx;
try {
tx = sess.beginTransaction();
sess.save(YourPojo);
tx.commit();
}
catch (Exception e) {
if (tx!=null) tx.rollback();
throw e;
}
finally {
sess.close();
}
推荐的Hibernate教程:
Hibernate Reference Documentation
Hibernate Tutorial
答案 1 :(得分:0)
尝试删除查询中参数占位符(问号)周围的引号。