<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>&nbsp;";
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)

解决方案 »

  1.   

    org.hibernate.HibernateException: Hibernate Dialect must be explicitly setorg.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文件格式,你可以采用这两种配置文件中的任意一种,但是要注意的是在编写代码时是有区别的
      

  2.   

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

  3.   

    楼主忘记设置HIBERNATE方言 修改配置文件
      

  4.   

    <mapping resource="group/a/entity/Filminfo.hbm.xml" />
    <mapping resource="group/a/entity/Filmtype.hbm.xml" />这两个文件里面可能配置错误,看你上面的数据库配置没错