实验五HibernateSpring及SSH集成汇编.docx

上传人:b****8 文档编号:30090160 上传时间:2023-08-04 格式:DOCX 页数:29 大小:454.78KB
下载 相关 举报
实验五HibernateSpring及SSH集成汇编.docx_第1页
第1页 / 共29页
实验五HibernateSpring及SSH集成汇编.docx_第2页
第2页 / 共29页
实验五HibernateSpring及SSH集成汇编.docx_第3页
第3页 / 共29页
实验五HibernateSpring及SSH集成汇编.docx_第4页
第4页 / 共29页
实验五HibernateSpring及SSH集成汇编.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

实验五HibernateSpring及SSH集成汇编.docx

《实验五HibernateSpring及SSH集成汇编.docx》由会员分享,可在线阅读,更多相关《实验五HibernateSpring及SSH集成汇编.docx(29页珍藏版)》请在冰豆网上搜索。

实验五HibernateSpring及SSH集成汇编.docx

实验五HibernateSpring及SSH集成汇编

实验五Hibernate、Spring及SSH集成

实验内容

学习Hibernate、Spring应用的基本开发,及SSH的简单集成

实验目的

了解Hibernate、Spring框架的机制

掌握Hibernate、Spring应用的配置

掌握Spring中Bean注解扫描装配

掌握Hibernate基本编程

掌握SSH的简单集成

环境要求

服务器:

Tomcat6.0或更高,jboss6或更高

集成开发环境:

MyEclipse8.6或更高

实验指导

1.Hibernate简单使用

1)创建表

在MySQL数据库服务器上的test中创建student表,字段如下:

字段名

类型

说明

id

Integer

自增,主键

xh

varchar(10)

name

varchar(10)

sex

varchar

(2)

className

varchar(16)

2)创建数据库连接

通过菜单“window”->“showview”打开“DBBrowser”窗口,在该窗口中点击右键,在弹出菜单总选择“New”,打开如下窗口。

在“Drivertemplate”中选择“MySQL”,“Drivername”中输入一个名称(mysql),修改“ConnectionURL”为:

jdbc:

mysql:

//localhost:

3306/test?

characterEncoding=UTF-8,输入数据库的用户名和口令,点击“AddJARS”按钮添加Mysql的驱动Jar包,点击“Finish”按钮完成创建。

3)创建工程及添加Hiberbate支持

创建一个Java工程,名称为hh。

在左侧“packageexplore”窗口的“hh”工程名上点击右键,在弹出的菜单中选择“MyEclipse”->“AddHibernateCapapilities...”,弹出如下对话框:

在本对话框中选择我们需要的Hibernate的Jar包,使用默认选择即可,点击“Next”按钮,弹出如下窗口:

在本对话框中用于指定Hibernate的配置文件的位置及名称,使用默认即可。

点击“Next”按钮弹出如下窗口:

本窗口用于选择设置在Hibernate中使用数据库的信息,在“DBDriver”中选择我们在第二步创建的数据库连接,点击“Next”按钮,弹出如下对话框:

本对话框用于设置是否通过向导来产生Hibernate的会话工厂,取消“CreateSessionFactoryclass”的选择,点击“Finish”按钮即可完成工程对Hibernate的支持。

4)编写代码

①实体——student.java

packageentity;

importjavax.persistence.Entity;

importjavax.persistence.GeneratedValue;

importjavax.persistence.GenerationType;

importjavax.persistence.Id;

@Entity

publicclassStudent{

@Id

@GeneratedValue(strategy=GenerationType.IDENTITY)

privateintid;

privateStringxh;

privateStringname;

privateStringclassName;

privateStringsex;

publicintgetId(){

returnid;

}

publicvoidsetId(intid){

this.id=id;

}

publicStringgetXh(){

returnxh;

}

publicvoidsetXh(Stringxh){

this.xh=xh;

}

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicStringgetClassName(){

returnclassName;

}

publicvoidsetClassName(StringclassName){

this.className=className;

}

publicStringgetSex(){

returnsex;

}

publicvoidsetSex(Stringsex){

this.sex=sex;

}

@Override

publicStringtoString(){

return"学号:

"+xh+"\t"

+"姓名:

"+name+"\t"

+"性别:

"+sex+"\t"

+"班级:

"+className+"\t";

}

}

②Hibernate配置文件——hibernate.cfg.xml

xmlversion='1.0'encoding='UTF-8'?

>

DOCTYPEhibernate-configurationPUBLIC

"-//Hibernate/HibernateConfigurationDTD3.0//EN""

--配置数据库-->

org.hibernate.dialect.MySQLDialect

jdbc:

mysql:

//localhost:

3306/test?

characterEncoding=UTF-8

root

com.mysql.jdbc.Driver

mysql

--注册实体-->

③测试代码:

importjava.io.UnsupportedEncodingException;

importjava.util.List;

importjava.util.Scanner;

importorg.hibernate.Query;

importorg.hibernate.SessionFactory;

importorg.hibernate.cfg.AnnotationConfiguration;

importorg.hibernate.classic.Session;

importentity.Student;

publicclassHa{

/**

*@paramargs

*@throwsUnsupportedEncodingException

*/

publicstaticvoidmain(String[]args)throwsUnsupportedEncodingException{

Hah=newHa();

Scannersc=newScanner(System.in);

while(true){

switch(h.menu(sc)){

case1:

h.list();

break;

case2:

Studentstu=newStudent();

stu.setXh(sc.next());

stu.setName(sc.next());

byte[]b=stu.getName().getBytes("utf-8");

stu.setName(newString(b,"utf-8"));

stu.setSex(sc.next());

stu.setClassName(sc.next());

h.add(stu);

h.list();

break;

case3:

h.edit(sc.nextInt(),sc);

break;

case4:

intid=sc.nextInt();

h.deleteByKey(id);

h.list();

break;

case5:

System.exit(0);

break;

default:

break;

}

}

}

privateSessionFactorysf;

publicHa(){

AnnotationConfigurationconfig=newAnnotationConfiguration().configure("/hibernate.cfg.xml");

sf=config.buildSessionFactory();

}

privateintmenu(Scannersc){

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");

returnsc.nextInt();

}

/**

*学生信息列表

*/

privatevoidlist(){

Sessionsession=sf.openSession();

Queryqry=session.createQuery("fromStudent");

Liststus=qry.list();

for(Studentstu:

stus){

System.out.println(stu);

}

session.close();

}

/**

*添加学生信息

*@paramstu

*/

privatevoidadd(Studentstu){

Sessionsession=sf.openSession();

session.beginTransaction();

session.save(stu);

session.getTransaction().commit();

session.close();

}

privatevoidedit(intid,Scannersc){

Sessionsession=sf.openSession();

Studentstu=(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();

}

/**

*按主键删除

*@paramid

*/

privatevoiddeleteByKey(intid){

Sessionsession=sf.openSession();

Studentstu=(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”->“AddStrutscapabilities...”,弹出的对话框中选择如下图:

点击“Next”按钮,在对话框中的列表中选择如下内:

点击“finish”按钮。

(3)Spring集成

再在工程名上点击右键,在弹出对话框中选择“MyEclipse”->“AddSpringcapabilities...”,在弹出对话框中选择如下:

在下一个对话框中,设置如下(使用默认值即可):

点击“Finish”按钮。

打开web.xml在标记之前添加如下内容,使Spring生效。

contextConfigLocation

classpath:

applicationContext.xml

--对Spring容器进行实例化-->

org.springframework.web.context.ContextLoaderListener

(4)Hibernate集成

再在工程名上点击右键,在弹出对话框中选择“MyEclipse”->“AddHibernatecapabilities...”,在弹出对话框中选择如下:

在下一个窗口中选择如下;

在下一个窗口中选择如下:

在下一窗口中选择自己的数据库,如图:

在下一窗口中,取消“CreateSessionFactoryclass?

”的选择,点击“Finish”按钮,如图:

最终自动生成的Spring的配置文件——applicationContext.xml,内容为:

xmlns="http:

//www.springframework.org/schema/beans"

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xmlns:

p="http:

//www.springframework.org/schema/p"

xsi:

schemaLocation="http:

//www.springframework.org/schema/beanshttp:

//www.springframework.org/schema/beans/spring-beans-3.0.xsd">

--数据库设置-->

class="mons.dbcp.BasicDataSource">

value="com.mysql.jdbc.Driver">

mysql:

//localhost:

3306/test">

--管理Hibernate的会话工厂(基于注解)-->

class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

org.hibernate.dialect.MySQLDialect

(5)创建包:

com.entity:

实体包,存放Hibernate的实体类;

com.model.action:

Action包,存放Struts的Action

com.model.dao:

Dao包,存放持久化类(数据库操作);

com.model.service:

服务包,存放service类,此包中的类一般都是将相关的业务处理封装到一个类中,供action调用,该类中再调用Dao类完成具体的操作。

(6)修改Spring配置,让Spring对指定对象进行管理。

最后的配置文件内容如下:

xmlns="http:

//www.springframework.org/schema/beans"

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xmlns:

p="http:

//www.springframework.org/schema/p"

xmlns:

context="http:

//www.springframework.org/schema/context"

xsi:

schemaLocation="

http:

//www.springframework.org/schema/context

http:

//www.springframework.org/schema/context/spring-context-3.1.xsd

http:

//www.springframework.org/schema/beanshttp:

//www.springframework.org/schema/beans/spring-beans-3.1.xsd">

--开启Spring自动扫描,对指定包中的类进行自动装配-->

component-scanbase-package="com.model"/>

class="mons.dbcp.BasicDataSource">

mysql:

//localhost:

3306/test?

characterEncoding=UTF-8"/>

class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

org.hibernate.dialect.MySQLDialect

true

--开启Hibernate实体类扫描-->

com.entity

(7)相关代码:

Student.java

packagecom.entity;

@Entity//实体注解

publicclassStudent{

@Id//主键注解

@GeneratedValue(strategy=GenerationType.IDENTITY)//主键生成策略

privateintid;

privateStringxh;

privateStringname;

privateStringclassName;

privateStringsex;

publicintgetId(){

returnid;

}

publicvoidsetId(intid){

this.id=id;

}

publicStringgetXh(){

returnxh;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1