• Java_Web三大框架之Hibernate+jsp+selvect+HQL查询数据


    俗话说:"好记性不如烂笔头"。本人学习Hibernate也有一个星期了,对Hibernate也有一个初步的了解。下面对Hibernate显示数据做个笔记,使用租房系统的Hibernate+jsp+selvect。

    第一步:编写房屋实体类

    /*
     * 房屋实体类
     */
    
    public class House {
        private int id;//房屋id
            private String title;//标题
        private String description;//描述
        private String fdate;//日期
        private String price;//价格
        private String contact;//面积
    
           //省略get和set方法
    }

    第二步:配置House.hbm.xml映射

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping
        package="entity">
    
        <class name="House" table="House">
            <id name="id">
                <generator class="increment"/>
            </id>
     
            <property name="title" />
            <property name="description" />
            <property name="fdate" />
            <property name="price" />
            <property name="contact" />
    
            
        </class>
    
    </hibernate-mapping>

    第三步:配置hibernate.cfg.xml数据库映射(别忘了导入hibernate必备的架包)

    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    
    <hibernate-configuration>
        <session-factory name="foo">
            <!-- 数据库方言 -->
            <property name="dialect">
                org.hibernate.dialect.OracleDialect
            </property>
            <!-- 连接数据库Url -->
            <property name="hibernate.connection.url">
                jdbc:oracle:thin:@localhost:1521:orcl
            </property>
            <!-- 连接驱动 -->
            <property name="hibernate.connection.driver_class">
                oracle.jdbc.driver.OracleDriver
            </property>
            <!-- 用户名 -->
            <property name="hibernate.connection.username">epet</property>
            <!-- 密码 -->
            <property name="hibernate.connection.password">123456</property>
    
                    <!-- 在控制台打印sql信息 -->
            <property name="show_sql">true</property>
            <!-- 创建表结构 -->
            <property name="hibernate.hbm2ddl.auto">update</property>
        
            <!-- 配置映射信息 -->
        
            <mapping resource="entity/House.hbm.xml" />
            
            
        </session-factory>
    </hibernate-configuration>

    第四步:编写dao层和daoImpl层

    /*
     * 查询所有房屋
     */
    public interface HouseDao {
        /*
         * 查询所有房屋
         */
        public List<House> selecthouse();
        
    
    }
    public class HouseDaoImpl implements HouseDao{
    
    /*
     * 查询所有房屋
     * 
     * (non-Javadoc)
     * @see Dao.HouseDao#selecthouse()
     */
        public List<House> selecthouse() {
            // TODO Auto-generated method stub
             Session session = HibernateUtil.getSession();
    
                  //查询房屋实体类
             String hql="from House";
             Query q=session.createQuery(hql);
             
              List<House> list = q.list();
    
              return list;
          
        }
    }
    注意:Hibernate查询的实体,而不是数据库表

    第五步:编写Selvect和web.xml配置

    package selvect;
    
    
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import entity.House;
    
    import Biz.HouseBiz;
    import Biz.Impl.HouseBizImpl;
    
    
    
    public class SelectAllServlet extends HttpServlet {
    
        /**
         * Destruction of the servlet. <br>
         */
        public void destroy() {
            System.out.println("销毁select");
        }
    
        /**
         * The doGet method of the servlet. <br>
         *
         * This method is called when a form has its tag value method equals to get.
         * 
         * @param request the request send by the client to the server
         * @param response the response send by the server to the client
         * @throws ServletException if an error occurred
         * @throws IOException if an error occurred
         */
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doPost(request,response);
    //        response.setContentType("text/html");
    //        PrintWriter out = response.getWriter();
    //        out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">");
    //        out.println("<HTML>");
    //        out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
    //        out.println("  <BODY>");
    //        out.print("    This is ");
    //        out.print(this.getClass());
    //        out.println(", using the GET method");
    //        out.println("  </BODY>");
    //        out.println("</HTML>");
    //        out.flush();
    //        out.close();
        }
    
        /**
         * The doPost method of the servlet. <br>
         *
         * This method is called when a form has its tag value method equals to post.
         * 
         * @param request the request send by the client to the server
         * @param response the response send by the server to the client
         * @throws ServletException if an error occurred
         * @throws IOException if an error occurred
         */
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
        
            HouseBiz mb=new HouseBizImpl();
            
            List<House> li=mb.selecthouse();
            request.getSession().setAttribute("li", li);
            response.sendRedirect("list.jsp");
        
            //request.getRequestDispatcher("index.jsp").forward(request, response);
        }
    
        /**
         * Initialization of the servlet. <br>
         *
         * @throws ServletException if an error occurs
         */
        public void init() throws ServletException {
            System.out.println("初始化servlet");
        }
    
    }
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        
    
      
                        <!--查询房屋-->
        <servlet>
        <servlet-name>SelectAllServlet</servlet-name>
        <servlet-class>selvect.SelectAllServlet</servlet-class>
        </servlet>
        
      <!-- 映射servlet -->
      <servlet-mapping>
          <servlet-name>SelectAllServlet</servlet-name>
          <url-pattern>/SelectAllServlet</url-pattern>
      </servlet-mapping>
      
          
    
      
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app>

    在jsp页面显示

            <LI class=bold>房屋信息</LI>    
    <c:forEach var="mind" items="${sessionScope.li}">
      <TR>
        <TD class=house-thumb><span><A href="details.htm" target="_blank"><img src="images/thumb_house.gif" width="100" height="75" alt=""></a></span></TD>
        <TD>
    
      
          <DL>
      <!--标题,价格-->
            <DT><A href="houseid?id=${mind.id}" target="_blank">${mind.title}</A></DT>
             
    
        <TD class=house-price><SPAN>${mind.price}</SPAN>元/月</TD></TR>
         
     
      </c:forEach>
  • 相关阅读:
    go 使用腾讯地图定位ip的location
    使用redis cli 批量执行语句
    windows 2012 2人使用相同用户账号登录
    排序算法
    字串与子序列系列问题
    《活着》一本书写生命意义的书
    Vue3.0的常用API
    工作六年多的一点感悟
    数组的最小不可组成和问题
    根据先序遍历和中序遍历生成后序遍历
  • 原文地址:https://www.cnblogs.com/wlx520/p/4692944.html
Copyright © 2020-2023  润新知