1、实验五HibernateSpring及SSH集成汇编实验五 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表,字段如下:
2、字段名类型说明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,输入数
3、据库的用户名和口令,点击“Add JARS”按钮添加Mysql的驱动Jar包,点击“Finish”按钮完成创建。3) 创建工程及添加Hiberbate支持创建一个Java工程,名称为hh。在左侧“package explore”窗口的“hh”工程名上点击右键,在弹出的菜单中选择“MyEclipse”-“Add Hibernate Capapilities.”,弹出如下对话框:在本对话框中选择我们需要的Hibernate的Jar包,使用默认选择即可,点击“Next”按钮,弹出如下窗口:在本对话框中用于指定Hibernate的配置文件的位置及名称,使用默认即可。点击“Next”按钮弹出如下窗口:本
4、窗口用于选择设置在Hibernate中使用数据库的信息,在“DB Driver”中选择我们在第二步创建的数据库连接,点击“Next”按钮,弹出如下对话框:本对话框用于设置是否通过向导来产生Hibernate的会话工厂,取消“Create SessionFactory class”的选择,点击“Finish”按钮即可完成工程对Hibernate的支持。4) 编写代码实体student.javapackage entity;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.per
5、sistence.GenerationType;import javax.persistence.Id;Entitypublic 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 = i
6、d; public String getXh() return xh; public void setXh(String xh) this.xh = xh; public String getName() return name; public void setName(String name) this.name = name; public String getClassName() return className; public void setClassName(String className) this.className = className; public String g
7、etSex() return sex; public void setSex(String sex) this.sex = sex; Override public String toString() return 学号: + xh + t + 姓名: + name + t + 性别: + sex + t + 班级: + className + t; Hibernate配置文件hibernate.cfg.xml!DOCTYPE hibernate-configuration PUBLIC -/Hibernate/Hibernate Configuration DTD 3.0/EN org.hi
8、bernate.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.cf
9、g.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) swi
10、tch (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(
11、), 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(); pri
12、vate 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 Stud
13、ent); 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 e
14、dit(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.getTransa
15、ction().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集成实例功能:学
16、生信息管理系统表同第1题。(1)创建一个Web工程struts1。(2)Struts集成在工程名上点击右键,在弹出菜单中选择“MyEclipse”-“Add Struts capabilities.”,弹出的对话框中选择如下图:点击“Next”按钮,在对话框中的列表中选择如下内:点击“finish”按钮。(3)Spring集成再在工程名上点击右键,在弹出对话框中选择“MyEclipse”-“Add Spring capabilities.”,在弹出对话框中选择如下:在下一个对话框中,设置如下(使用默认值即可):点击“Finish”按钮。打开web.xml在标记之前添加如下内容,使Spring生
17、效。 contextConfigLocation classpath:applicationContext.xml org.springframework.web.context.ContextLoaderListener (4)Hibernate集成再在工程名上点击右键,在弹出对话框中选择“MyEclipse”-“Add Hibernate capabilities.”,在弹出对话框中选择如下:在下一个窗口中选择如下;在下一个窗口中选择如下:在下一窗口中选择自己的数据库,如图:在下一窗口中,取消“Create SessionFactory class?”的选择,点击“Finish”按钮,如图
18、:最终自动生成的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
19、对指定对象进行管理。最后的配置文件内容如下: org.hibernate.dialect.MySQLDialect true com.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;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1