已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五 Hibernate、Spring及SSH集成实验内容学习Hibernate、Spring应用的基本开发,及SSH的简单集成实验目的了解Hibernate、Spring框架的机制掌握Hibernate、Spring应用的配置掌握Spring中Bean注解扫描装配掌握Hibernate基本编程掌握SSH的简单集成环境要求服务器:Tomcat6.0或更高,jboss6或更高集成开发环境:MyEclipse 8.6 或更高实验指导1. Hibernate简单使用1) 创建表在MySQL数据库服务器上的test中创建student表,字段如下:字段名类型说明idInteger自增,主键xhvarchar(10)namevarchar(10)sexvarchar(2)classNamevarchar(16)2) 创建数据库连接通过菜单“window”-“show view”打开“DB Browser”窗口,在该窗口中点击右键,在弹出菜单总选择“New”,打开如下窗口。在“Driver template”中选择“MySQL”,“Driver name”中输入一个名称(mysql),修改“Connection URL”为:jdbc:mysql:/localhost:3306/test?characterEncoding=UTF-8,输入数据库的用户名和口令,点击“Add JARS”按钮添加Mysql的驱动Jar包,点击“Finish”按钮完成创建。3) 创建工程及添加Hiberbate支持创建一个Java工程,名称为hh。在左侧“package explore”窗口的“hh”工程名上点击右键,在弹出的菜单中选择“MyEclipse”-“Add Hibernate Capapilities.”,弹出如下对话框:在本对话框中选择我们需要的Hibernate的Jar包,使用默认选择即可,点击“Next”按钮,弹出如下窗口:在本对话框中用于指定Hibernate的配置文件的位置及名称,使用默认即可。点击“Next”按钮弹出如下窗口:本窗口用于选择设置在Hibernate中使用数据库的信息,在“DB Driver”中选择我们在第二步创建的数据库连接,点击“Next”按钮,弹出如下对话框:本对话框用于设置是否通过向导来产生Hibernate的会话工厂,取消“Create SessionFactory class”的选择,点击“Finish”按钮即可完成工程对Hibernate的支持。4) 编写代码实体student.javapackage entity;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;Entitypublic class Student IdGeneratedValue(strategy=GenerationType.IDENTITY)private int id;private String xh;private String name;private String className;private String sex;public int getId() return id;public void setId(int id) this.id = id;public String getXh() return xh;public void setXh(String xh) this.xh = xh;public String getName() return name;public void setName(String name) = name;public String getClassName() return className;public void setClassName(String className) this.className = className;public String getSex() return sex;public void setSex(String sex) this.sex = sex;Overridepublic String toString() return 学号: + xh + t+ 姓名: + name + t+ 性别: + sex + t+ 班级: + className + t;Hibernate配置文件hibernate.cfg.xml org.hibernate.dialect.MySQLDialect jdbc:mysql:/localhost:3306/test?characterEncoding=UTF-8 root com.mysql.jdbc.Driver mysql 测试代码:import java.io.UnsupportedEncodingException;import java.util.List;import java.util.Scanner;import org.hibernate.Query;import org.hibernate.SessionFactory;import org.hibernate.cfg.AnnotationConfiguration;import org.hibernate.classic.Session;import entity.Student;public class Ha /* * param args * throws UnsupportedEncodingException */public static void main(String args) throws UnsupportedEncodingException Ha h = new Ha();Scanner sc = new Scanner(System.in);while(true)switch (h.menu(sc) case 1:h.list();break;case 2:Student stu = new Student();stu.setXh(sc.next();stu.setName(sc.next();byte b = stu.getName().getBytes(utf-8);stu.setName(new String(b,utf-8);stu.setSex(sc.next();stu.setClassName(sc.next();h.add(stu);h.list();break;case 3:h.edit(sc.nextInt(), sc);break;case 4:int id = sc.nextInt();h.deleteByKey(id);h.list();break;case 5:System.exit(0);break;default:break;private SessionFactory sf;public Ha()AnnotationConfiguration config = new AnnotationConfiguration().configure(/hibernate.cfg.xml);sf = config.buildSessionFactory();private int menu(Scanner sc)System.out.println(1.list);System.out.println(2.add);System.out.println(3.edit);System.out.println(4.delete);System.out.println(5.exit);return sc.nextInt();/* * 学生信息列表 */private void list()Session session = sf.openSession();Query qry = session.createQuery(from Student);List stus = qry.list();for(Student stu:stus)System.out.println(stu);session.close();/* * 添加学生信息 * param stu */private void add(Student stu)Session session = sf.openSession();session.beginTransaction();session.save(stu);session.getTransaction().commit();session.close();private void edit(int id,Scanner sc)Session session = sf.openSession();Student stu = (Student) session.get(Student.class, id);System.out.println(stu);stu.setXh(sc.next();stu.setName(sc.next();stu.setSex(sc.next();stu.setClassName(sc.next();session.beginTransaction();session.update(stu);session.getTransaction().commit();session.close();/* * 按主键删除 * param id */private void deleteByKey(int id)Session session = sf.openSession();Student stu = (Student) session.get(Student.class, id);session.beginTransaction();session.delete(stu);session.getTransaction().commit();session.close();2. SSH集成实例功能:学生信息管理系统表同第1题。(1) 创建一个Web工程struts1。(2) Struts集成在工程名上点击右键,在弹出菜单中选择“MyEclipse”-“Add Struts capabilities.”,弹出的对话框中选择如下图:点击“Next”按钮,在对话框中的列表中选择如下内:点击“finish”按钮。(3) Spring集成再在工程名上点击右键,在弹出对话框中选择“MyEclipse”-“Add Spring capabilities.”,在弹出对话框中选择如下:在下一个对话框中,设置如下(使用默认值即可):点击“Finish”按钮。打开web.xml在标记之前添加如下内容,使Spring生效。 contextConfigLocation classpath:applicationContext.xml org.springframework.web.context.ContextLoaderListener (4) Hibernate集成再在工程名上点击右键,在弹出对话框中选择“MyEclipse”-“Add Hibernate capabilities.”,在弹出对话框中选择如下:在下一个窗口中选择如下;在下一个窗口中选择如下:在下一窗口中选择自己的数据库,如图:在下一窗口中,取消“Create SessionFactory class?”的选择,点击“Finish”按钮,如图:最终自动生成的Spring的配置文件applicationContext.xml,内容为:org.hibernate.dialect.MySQLDialect(5) 创建包:com.entity:实体包,存放Hibernate的实体类;com.model.action:Action包,存放Struts的Actioncom.model.dao:Dao包,存放持久化类(数据库操作);com.model.service:服务包,存放service类,此包中的类一般都是将相关的业务处理封装到一个类中,供action调用,该类中再调用Dao类完成具体的操作。(6) 修改Spring配置,让Spring对指定对象进行管理。最后的配置文件内容如下:org.hibernate.dialect.MySQLDialecttruecom.entity(7) 相关代码:Student.javapackage com.entity;Entity /实体注解public class Student Id/主键注解GeneratedValue(strategy=GenerationType.IDENTITY)/主键生成策略private int id;private String xh;private String name;private String className;private String sex;public int getId() return id;public void setId(int id) this.id = id;public String getXh() return xh;public void setXh(String xh) this.xh = xh;public String getName() return name;public void setName(String name) = name;public String getClassName() return className;public void setClassName(String className) this.className = className;public String getSex() return sex;public void setSex(String sex) this.sex = sex;StudentDao.javapackage com.model.dao; Repository /Dao注解public class StudentDao Resource /注入会话工厂private SessionFactory sf;/* * 学生列表 * return */public List studentList()Session session = sf.openSession();Query query = session.createQuery(from Student);List list = query.list();session.close();return list;/* * 保存添加/修改 * param stu */public void saveStudent(Student stu)Session session = sf.openSession();session.beginTransaction();if(stu.getId() = 0)session.save(stu);elsesession.update(stu);session.getTransaction().commit();session.close();/* * 根据ID得到一个学生信息 * param id * return */public Student getOneById(int id)Session session = sf.openSession();Student stu = (Student) session.get(Student.class, id);session.close();return stu;/* * 删除 * param id */public void deleteById(int id)Session session = sf.openSession();Student stu = (Student) session.get(Student.class, id);if(stu = null)return;session.beginTransaction();session.delete(stu);session.getTransaction().commit();session.close();StudentService.javapackage com.model.service;Service /注解为Servicepublic class StudentService Resource /注入daoprivate StudentDao stuDao;public List list()return stuDao.studentList();public Student getOneById(int id)return stuDao.getOneById(id);public void save(Student stu)stuDao.saveStudent(stu);public void delete(int id)stuDao.deleteById(id);StudentAction.javapackage com.m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026事业单位工程岗面试历年真题试卷及解析
- 关于供应商评价报告的提交截止日期通知5篇范文
- 事业单位人事岗面试易错题专业面试试卷及答案
- 飞天畅想活动课件
- 餐饮服务员客诉处理能力评估表
- 法庭案件介绍课件
- 活动策划运营经理绩效考核表
- 汽车制造厂车间工艺优化工程师绩效考核表
- 儿童教育中心教师工作成效评价表
- 翻绳游戏课件
- 2026届高三语文理解性默写60篇(教师版)
- 2025-2026学年九年级数学上学期期中模拟卷(安徽专用沪科版)考试版
- 雨课堂学堂在线学堂云《运动损伤的康复治疗(湖北医药学院)》单元测试考核答案
- 核心素养导向下小学六年级数学“百分数的意义”跨学科项目式教学设计
- 项目管理人员安全培训课件
- 规培学员出科考核制度
- 余额宝相关课件
- T-TFZX 59-2025 医疗机构医德医风考评指标体系指南
- 《普通高中英语课程标准(2025年版)》带星号词汇详解表清单-高三英语一轮复习专项
- 非标自动化项目管理
- 专题全等三角形压轴题(30题)(原卷版+解析)
评论
0/150
提交评论