• JSP利用Hibernate实现对数据库的CRUD ——开发环境Myeclipse与SQL Server 2008


    一、首先先建立一个Web Project

    二、然后在程序根目录建立文件夹“DataBase”和“Doc”,分别存放数据库文件和保存SQL语句,建完如下所示:

    三、建立数据库“dbHibernate”,保存到文件夹“DataBase”下

    四、书写SQL语句,创建“student”表

    -- 数据库名称  dbHibernate

    -- 版本        SQLServer2008

    --学生表

    create table student(

       ID varchar(10) primary key,

       Name varchar(20) not null,

    )

    --插入数据

    insert into student values('101','张三');

    insert into student values('102','李四');

    insert into student values('103','王五');

    五、打开“DB Browser”后,右击选择“New...”,Driver template选择“Microsoft SQL Server”,Driver name为“Hibernate”,Connection URL为“jdbc:sqlserver://localhost:1433; DatabaseName=dbHibernate”,然后就是数据库的User name以及Password;还要添加“sqljdbc4.jar”驱动包,点击“Test Driver”,可以看到测试成功

    六、然后点击“Next”,选择“Display the selected schemas”,点击“Add”添加数据库“dbHibernate”,最后“Finish”。

    七、右击项目“Hibernate”->Myeclipse->Add Hibernate Capabilities...,然后默认点击“Next

    八、选择“Browse”,添加自己建立的包名,然后“Next”后,选择“DB Driver”下的“Hibernate”,下面的内容将自动调出。然后“Next”,选择“Java package”

    九、建完后,在包“com.langguojie.Hibernate”下添加了“HibernateSessionFactory.java”以及“hibernate.cfg.xml”两个文件

    十、在“DB Browser”下,选择“Hibernate”->“Open connection”->Connected to Hibernate->dbo->TABLE->student,右击选择“Hibernate Reverse Engineering

    十一、选择 Java package:“com.langguojie.Hibernate.orm”,然后选择如下图所示内容,点击“Finish”即可。

    十二、在包“com.langguojie.Hibernate.orm”下添加了“Student.java”和“Student.hbm.xml”两个文件

    十三、在index.jsp中添加如下代码:

    <%@page import="com.langguojie.Hibernate.orm.Student"%>
    <%@page import="org.hibernate.Query"%>
    <%@page import="com.langguojie.Hibernate.HibernateSessionFactory"%>
    <%@page import="org.hibernate.Session"%>
    <center>
              学生管理<br>
              <br>
              <a href="StudentAdd.html">添加</a><br>
              <br>
              <table border="1" cellspacing="0" cellpadding="4">
              <%
    		      Session ss = HibernateSessionFactory.getSession();  //建立Session对象ss		
    		      ss.beginTransaction();                              //打开Transaction
    	
    		      Query query=ss.createQuery("from Student");	      //调用函数Query查询
    				
    	          List<Student>studentList = new ArrayList<Student>();  //将查询的结果放到List表中
                  studentList = query.list();  
    	       	  for(int i = 0 ;i < studentList.size();i++){
    		   %>
    
    		  <tr>
    			<td><%=studentList.get(i).getId()%></td>      <!--  输出ID -->
    			<td><%=studentList.get(i).getName()%></td>    <!--  输出姓名 -->
    			<td><a href='StudentEdit.jsp?ID=<%=studentList.get(i).getId()%>'>修改</a>
    			</td>
    			<td><a href='servlet/StudentDelete.do?ID=<%=studentList.get(i).getId()%>'>删除</a>
    			</td>
    		 </tr> 
    
    		 <%
    	    	}
    	     	ss.close();		  //关闭Transaction
      	     %>
      	     </table>
    </center>
    

    十四、建立添加页面“StudentAdd.html,代码如下:

     <form id="form1" name="form1" method="post"action="servlet/StudentAdd.do">
          <center>添加<br><br>
          学号:<input type="text" id="ID" name="ID"><br><br>
          姓名:<input type="text" id="Name" name="Name" ><br><br>
          <input type="submit" value="确定"></center>
    </form>
    

    十五、建立servletStudentAdd.java,使用函数“doPost()”代码如下:

    request.setCharacterEncoding("UTF-8");
    String strID = "";
    String strName = "";
    		
    strID = request.getParameter("ID");         //获取ID
    strName = request.getParameter("Name");     //获取Name
    		
    Session ss = HibernateSessionFactory.getSession();
    ss.beginTransaction(); Student s = new Student(); s.setId(strID); s.setName(strName); ss.save(s); //保存数据 ss.getTransaction().commit(); //提交数据 ss.close(); response.sendRedirect("../index.jsp");

    十六、建立编辑页面“StudentEdit.jsp”,代码如下:

    <%@page import="com.langguojie.Hibernate.orm.Student"%>
    <%@page import="com.langguojie.Hibernate.HibernateSessionFactory"%>
    <%@page import="org.hibernate.Session"%>
    <%
           request.setCharacterEncoding("UTF-8");
           String strID="";
           
           strID = request.getParameter("ID");
           
           Session ss = HibernateSessionFactory.getSession();
           ss.beginTransaction();
           Student student = (Student)ss.get(Student.class, strID);
                 
           ss.getTransaction().commit();
           ss.close();
         %>
      <center>
    
         <%if(student != null){ %>
    	
      	 <br><br>编辑学生信息<br>
         <form name="f1" id="f1" action="servlet/StudentEdit.do" method="post">
          <table border="0">
            <tr>
              <td>学号:</td>
              <td><input type="text" readonly="readonly" name="ID" id="ID" value="<%=student.getId() %>"> 学号不允许编辑</td>
            </tr>
            
            <tr>
              <td>姓名:</td>
              <td><input type="text" name="Name" id="Name" value="<%=student.getName() %>"></td>
            </tr>
             
            <tr>
              <td colspan="2" align="center"><input type="submit" value=" 确定 " ></td>
            </tr>
            
          </table>
         </form>
         <%} else { %>
         <br><br>编辑学生信息<br><br>
         学号为<%=strID %>的学生数据在数据库中不存在!<br><br>
         <a href="index.jsp">返回</a>
         <%} %>
      </center>
    

    十七、建立servletStudentEdit.java”,使用函数“doPost()”,代码如下:

    request.setCharacterEncoding("utf-8");
    String strID = "";
    String strName = "";
    		
    strID = request.getParameter("ID");
    strName = request.getParameter("Name");
    		
    Session session = HibernateSessionFactory.getSession();
    session.beginTransaction();
    Student student = (Student)session.load(Student.class, strID);
    student.setName(strName);
    		
    session.update(student);
    		
    session.getTransaction().commit();
    session.close();
    		
    response.sendRedirect("../index.jsp");
    

    十八、建立servleStudentDelete.java”,使用函数“doGet()”,代码如下:

    request.setCharacterEncoding("UTF-8");
    String strID="";
        
    strID = request.getParameter("ID");
    
    Session ss = HibernateSessionFactory.getSession();
    ss.beginTransaction();
            
    Student student = (Student)ss.load(Student.class, strID);
    ss.delete(student);
            
    ss.getTransaction().commit();
    ss.close();
            
    response.sendRedirect("../index.jsp");
    

    十九、运行结果截图:

  • 相关阅读:
    Git 最新版本2.20.1 安装及配置
    Python中:ModuleNotFoundError: No module named 'alipay'
    Python调用time模块设置当前时间-指定时间
    python 正则表达式
    pwntools出现的一些问题
    strace监视系统调用
    深入理解Linux内核 学习笔记(8)
    ubuntu 查看版本
    LSTM实现中文文本情感分析
    深入理解Linux内核 学习笔记(5)
  • 原文地址:https://www.cnblogs.com/langgj/p/5402048.html
Copyright © 2020-2023  润新知