1.创建Web项目HS_test如图所示:
2.创建数据库DBHSTest,在数据库中创建表Teacher,并插入数据
3.在Myeclipse中调出DB Brower视图
右键->New:
连接后如图所示:
4.导入Hibernate
右击项目->myeclipse->Add Hibernate Capabilities:
选择Hibernate3.3 点击Next:
默认设置,在src文件夹下创建hibernate.cfg.xml文件,点击Next:
选择之前新建的DB Driver:DBHSTest,配置自动显示出来,点击Next:
将 HibernateSessionFactory类建立在com.miaomiao.hs.test包下,点击Finish,完成导入。
查看hibernate.cfg.xml文件:
<?xml version= '1.0' encoding= 'UTF-8' ?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" > <!-- Generated by MyEclipse Hibernate Tools. --> <hibernate-configuration> <session-factory> <property name= "dialect" >org.hibernate.dialect.SQLServerDialect</property> <property name= "connection.url" >jdbc:sqlserver: //127.0.0.1:1433;databaseName=dbHSTest</property> <property name= "connection.username" >sa</property> <property name= "connection.password" > 123 </property> <property name= "connection.driver_class" >com.microsoft.sqlserver.jdbc.SQLServerDriver</property> <property name= "myeclipse.connection.profile" >dbHSTest</property> </session-factory> </hibernate-configuration> |
5.创建ORM映射 反向工程
(1)选择DB Brower 下的dbHSTest ->...->dbo->table->Teacher,右键,选择Hibernate ReverseEngineering:
如图选择,点击Next,全部默认设置
创建完成后,生成如图Java文件和xml文件:
Teacher.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" > <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping> < class name= "com.miaoshi.hs.orm.Teacher" table= "Teacher" schema= "dbo" catalog= "dbHSTest" > <id name= "id" type= "java.lang.String" > <column name= "ID" length= "10" /> <generator class = "assigned" /> </id> <property name= "name" type= "java.lang.String" > <column name= "Name" length= "20" not- null = "true" /> </property> </ class > </hibernate-mapping> |
Teacher.java文件内容:
package com.miaoshi.hs.orm; /** * Teacher entity. @author MyEclipse Persistence Tools */ public class Teacher implements java.io.Serializable { // Fields private String id; private String name; // Constructors /** default constructor */ public Teacher() { } /** full constructor */ public Teacher(String id, String name) { this.id = id; this.name = name; } // Property accessors public String getId() { return this.id; } public void setId(String id) { this.id = id; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } }
6.实现对数据库的增删改查
(1)显示教师信息
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="com.miaoshi.hs.orm.Teacher"%> <%@page import="com.miaoshi.hs.HibernateSessionFactory"%> <%@page import="org.hibernate.Session"%> <%@page import="org.hibernate.Query"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'TeacherList.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <% Session ss = HibernateSessionFactory.getSession(); ss.beginTransaction(); Query query = ss.createQuery("from Teacher"); List<Teacher> teachers = query.list(); ss.getTransaction().commit(); ss.close(); %> <center> 教师列表<br><br> <a href="TeacherAdd.html">添加</a> <table border="1" cellspacing="0" cellpadding="4"> <tr> <th>工号</th> <th>姓名</th> <th>操作</th> </tr> <% for(int i = 0;i<teachers.size();i++){ %> <tr> <td><%=teachers.get(i).getId() %></td> <td><%=teachers.get(i).getName() %></td> <td><a href="StudentEdit.jsp?ID=<%=teachers.get(i).getId()%>">编辑</a> <a href="servlet/StudentDelete.do?ID=<%=teachers.get(i).getId()%>">删除</a></td> </tr> <%} %> </table> </center> </body> </html>
(2)增加教师信息
TeacherAdd.html
<!DOCTYPE html> <html> <head> <title>TeacherAdd.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <body> <form id="form1" name="form1" method="post" action="/servlet/TeacherAdd"> <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> </body> </html>
创建TeacherAdd的Servlet
package com.miaoshi.hs; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.hibernate.Session; import com.miaoshi.hs.HibernateSessionFactory; import com.miaoshi.hs.orm.Teacher; public class TeacherAdd extends HttpServlet { /** * 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 { 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 { request.setCharacterEncoding("UTF-8"); String strID = ""; String strName = ""; strID = request.getParameter("ID"); strName = request.getParameter("Name"); Session session = HibernateSessionFactory.getSession(); try{ session.beginTransaction(); Teacher student = new Teacher(); student.setId(strID); student.setName(strName); session.save(student); session.getTransaction().commit(); session.close(); response.sendRedirect("../TeacherList.jsp"); } catch(Exception e){ session.clear(); 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>Add fail</TITLE></HEAD>"); out.println(" <BODY>"); out.print(" add fail! "); out.println(" <a href='../TeacherList.jsp'>return</a>"); out.println(e.getMessage()); //out.print(this.getClass()); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } } }
未完待续。。。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· 为DeepSeek添加本地知识库
· 精选4款基于.NET开源、功能强大的通讯调试工具
· DeepSeek智能编程
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~