以前没有怎么用过Oracle,oralce的包也导入了啊,真是想不通啊。。希望大家能帮我看看啊,谢谢啊java代码:
package com.xiaotong.taobao.bean;public class Teacher { private int id;
private String teachername; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getTeachername() {
return teachername;
} public void setTeachername(String teachername) {
this.teachername = teachername;
}
}
映射文件:***********************************************
<hibernate-mapping package="com.xiaotong.taobao.bean">
<class name="Teacher">
<id name="id">
<generator class="sequence">
<param name="sequence">Teacher_id_seq</param>
</generator>
</id>
<property name="teachername" column="teacher_name"/>
</class>
</hibernate-mapping>测试类代码:***********************************
package com.xiaotong.taobao.test;import org.hibernate.Session;
import org.hibernate.Transaction;import com.xiaotong.taobao.bean.Teacher;
import com.xiaotong.taobao.util.HibernateUtil;public class Test { /**
* @param args
*/
public static void main(String[] args) {
add();
} public static void add(){
Teacher t = new Teacher();
t.setTeachername("xiaoqiang");
Session s = null;
Transaction trans = null;
try{
s = HibernateUtil.getSession();
trans = s.beginTransaction();
s.save(t);
trans.commit();
}catch(Exception e){
trans.rollback();
e.printStackTrace();
}
finally{
if (s != null) s.close();
}
}
}报的错:*************************************
Hibernate:
select
Teacher_id_seq.nextval
from
dual
Hibernate:
insert
into
Teacher
(teacher_name, id)
values
(?, ?)
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.xiaotong.taobao.test.Test.add(Test.java:27)
at com.xiaotong.taobao.test.Test.main(Test.java:15)
Caused by: java.sql.BatchUpdateException: ORA-00942: 表或视图不存在 at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:342)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10720)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
... 9 more
其中sequence已经建好了:***********************************
SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER
------------------------------ ---------- ---------- ------------ - - ---------- -----------
TEACHER_ID_SEQ 1 1.0000E+17 1 N N 20 21
package com.xiaotong.taobao.bean;public class Teacher { private int id;
private String teachername; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getTeachername() {
return teachername;
} public void setTeachername(String teachername) {
this.teachername = teachername;
}
}
映射文件:***********************************************
<hibernate-mapping package="com.xiaotong.taobao.bean">
<class name="Teacher">
<id name="id">
<generator class="sequence">
<param name="sequence">Teacher_id_seq</param>
</generator>
</id>
<property name="teachername" column="teacher_name"/>
</class>
</hibernate-mapping>测试类代码:***********************************
package com.xiaotong.taobao.test;import org.hibernate.Session;
import org.hibernate.Transaction;import com.xiaotong.taobao.bean.Teacher;
import com.xiaotong.taobao.util.HibernateUtil;public class Test { /**
* @param args
*/
public static void main(String[] args) {
add();
} public static void add(){
Teacher t = new Teacher();
t.setTeachername("xiaoqiang");
Session s = null;
Transaction trans = null;
try{
s = HibernateUtil.getSession();
trans = s.beginTransaction();
s.save(t);
trans.commit();
}catch(Exception e){
trans.rollback();
e.printStackTrace();
}
finally{
if (s != null) s.close();
}
}
}报的错:*************************************
Hibernate:
select
Teacher_id_seq.nextval
from
dual
Hibernate:
insert
into
Teacher
(teacher_name, id)
values
(?, ?)
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.xiaotong.taobao.test.Test.add(Test.java:27)
at com.xiaotong.taobao.test.Test.main(Test.java:15)
Caused by: java.sql.BatchUpdateException: ORA-00942: 表或视图不存在 at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:342)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10720)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
... 9 more
其中sequence已经建好了:***********************************
SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER
------------------------------ ---------- ---------- ------------ - - ---------- -----------
TEACHER_ID_SEQ 1 1.0000E+17 1 N N 20 21
解决方案 »
- 基础查询问题
- sys.source$ sys.link$ wrh$_sql_summary wrh$_sql_summary 这4个表存储的是啥东西啊?
- 终于做完了oracle10g for win32的简装版(共50M)
- oracle 字段自动更新
- 如何删除本用户下的DEF$_AQCALL、DEF$_AQERROR
- ssh架构,spring声明式事物(oracle数据库)不回滚
- 如何在oracle中评估用不同模型建立的数据库的效率
- 求一sql
- 不知道错在哪儿 帮忙!!
- 使用oracle12c创建数据库时,出现了GRANT失败,显示口令文件缺失或禁用 有大神知道么
- 一个PL/SQL问题
- MSSQL如何转为ORACLE
2.如果是其他用户下的表加上Schema.并且在用户下grant权限给当前用户
很明显示的一个问题哦。
使用你的用户/密码,在pl/sql中操作一下。看能不能操作。
一般是权限,owner问题
哇塞,真的是因为没有表啊
这下可以了啊,谢谢啊。
不过我在hibernate中配置文件配置了:
<property name="hbm2ddl.auto">crate</property>
不是应该由hibernate自动创建表的吗,在使用mysql就是这样的啊(试过很多次都是hibernate自己创建的啊)。
为什么到Oracle就不自己创建了啊??????????????????????
不懂hibernate,只听说它能映射数据结构。再说,建表完全没必要用hibernate,对数据库也不好。
不过这次又犯了低级错误,把配置<property name="hbm2ddl.auto">create</property>
中的create写错了,不过也不报错,写的太快了,害的大家浪费时间了啊