Hibernate链接Oracle 数据库 出错如下

tao_tao 2012-06-18 09:04:26
<hibernate-configuration>

<session-factory>
<property name="dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
<property name="connection.url">
jdbc:oracle:thin:@localhost:1521:LICHUNTAO
</property>
<property name="connection.username">scott</property>
<property name="connection.password">Oracle11g</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="myeclipse.connection.profile">test</property>
<mapping resource="group/a/entity/Filminfo.hbm.xml" />
<mapping resource="group/a/entity/Filmtype.hbm.xml" />

</session-factory>

</hibernate-configuration>


public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();

//执行到这个时候报错
FileTypeDAO typeDao = new FileTypeDAO();
FilmInfoDAO infoDao = new FilmInfoDAO();


Filminfo info = new Filminfo();

//读取操作
request.setAttribute("TypeList", typeDao.findAll());

String sign = request.getParameter("sign");
//添加操作
if(sign==null || sign==""){
System.out.println("sign没有初始化!");
}
else if(sign.equals("load")){
request.getRequestDispatcher("/queryFilm.jsp").forward(request, response);
}
//添加操作
else if(sign.equals("a")){
info.setActor(request.getParameter("author"));
info.setDirector(request.getParameter("director"));
info.setFilmname(request.getParameter("filmName"));
info.setTicketprice(new BigDecimal(Double.parseDouble(request.getParameter("price"))));
info.setFilmtype(typeDao.findById(Integer.parseInt(request.getParameter("id"))));
infoDao.save(info);
out.print("<script language='javascript'>alert('添加成功!');</script>");
request.getRequestDispatcher("/filmList.jsp").forward(request, response);
}



else if(sign.equals("d")){

Map<String,String> map = new HashMap<String,String>();
if(request.getParameter("filmName")!=null && !request.getParameter("filmName").equals("")){
map.put("filmName", request.getParameter("filmName"));
}
if(request.getParameter("filmType") != null && !request.getParameter("filmType").equals("")){
map.put("filmType", request.getParameter("filmType"));
}
if(request.getParameter("author") != null && !request.getParameter("author").equals("")){
map.put("author", request.getParameter("author"));
}
if(request.getParameter("director") != null && !request.getParameter("director").equals("")){
map.put("director", request.getParameter("director"));
}
if(request.getParameter("price") != null && !request.getParameter("price").equals("")){
map.put("put", request.getParameter("price"));
}

request.setAttribute("Result", infoDao.findBySearch(map));
Integer pageIndex = 0;
String index = request.getParameter("pageIndex");
Integer maxPage = (infoDao.findBySearch(map).size()%2==0)?(infoDao.findBySearch(map).size()/2):(infoDao.findBySearch(map).size()/2+1);
if(index != null) pageIndex = Integer.parseInt(index);
if(pageIndex < 1) pageIndex = 1;
if(pageIndex > maxPage) pageIndex = maxPage;
String link = "";
String str = "FilmBiz";
if(pageIndex > 1){
link += "<a href="+str+"?pageIndex=1&sign=d>首页</a> ";
link += "<a href="+str+"?pageIndex="+(pageIndex-1)+"&sign=d>上一页</a>";
}
if(pageIndex < maxPage){
link += "<a href="+str+"?pageIndex="+(pageIndex+1)+"&sign=d>下一页</a>";
link += "<a href="+str+"?pageIndex="+(maxPage)+">末页</a>";
}
request.setAttribute("Link", link);
request.setAttribute("infoList", infoDao.findByPage(2, pageIndex));
request.getRequestDispatcher("/filmList.jsp").forward(request, response);
}
}

/**
* <br>处理post请求
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}


错误信息如下:
Servlet.service() for servlet FilmBiz threw exception
org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
at org.hibernate.dialect.DialectFactory.determineDialect(DialectFactory.java:57)
at org.hibernate.dialect.DialectFactory.buildDialect(DialectFactory.java:39)
at org.hibernate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:426)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:128)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2090)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2086)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1311)
at group.a.dao.BaseHibernateDAO.<clinit>(BaseHibernateDAO.java:20)
at group.a.biz.FilmBiz.doGet(FilmBiz.java:28)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
...全文
198 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
敬敬11 2012-06-20
  • 打赏
  • 举报
回复
<mapping resource="group/a/entity/Filminfo.hbm.xml" />
<mapping resource="group/a/entity/Filmtype.hbm.xml" />

这两个文件里面可能配置错误,看你上面的数据库配置没错
ycj80217 2012-06-20
  • 打赏
  • 举报
回复
楼主忘记设置HIBERNATE方言 修改配置文件
小V小V志 2012-06-18
  • 打赏
  • 举报
回复
org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
五哥 2012-06-18
  • 打赏
  • 举报
回复
org.hibernate.HibernateException: Hibernate Dialect must be explicitly set

org.hibernate.HibernateException: Hibernate Dialect must be explicitly set


正确写法:public void save(Login login) {


Configuration config = new Configuration();
SessionFactory sf=config.configure().buildSessionFactory(); Session s=sf.openSession();
Transaction t =s.beginTransaction();
s.save(login);
t.commit();
s.close();

}
}
错误写法:public void save(Login login) {


Configuration config = new Configuration();
SessionFactory sf=config.buildSessionFactory(); Session s=sf.openSession();
Transaction t =s.beginTransaction();
s.save(login);
t.commit();
s.close();

}
}


关键错误就在于漏掉一个configure()



编程时出现这种错误的原因如下:
1、最明显的原因,在配置文件中没有设置Dialect;
2、第二个原因,和编程时采用哪种配置文件有关系,hibernate有两种配置文件:一种是XML格式的,另一种是*.properties文件格式,你可以采用这两种配置文件中的任意一种,但是要注意的是在编写代码时是有区别的

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧