整合SSH(Spring+Struts+Hibernate)实例(一)

前言:

JDK:Java 1.7.0

IDE:Eclipse , Version=Kepler 4.3.0 ;

服务器:Tomcat7.0;

数据库:Mysql5.5

那是一个国度电力系统的案例,本来是要先描述系统规划的,不过此间强调开发实操进程,也就简单了。

那章须求贯彻的是:从jsp页面接收表单数据,再存到数据库里面(前边有源码下载)

一、java、eclipse、tomcat、mysql的下载安装搭建

网上都有学科,需求验证的是tomcat的装置,新手最好下载exe安装包,省心;junit插件自己解决

点此下载汤姆cat7.0

Java1.7下载

(要求注册账号)

Eclipse
64位下载

(最新版的)

Mysql5.5精简版

二、新建一个动态网站项目

亚洲城误乐城ca88网站 1

起了名字,然后点击完结就行了(有趣味可以设置一下WebContent)

三、数据库的陈设性

提出采取cmd指令建库,多熟识mysql操作;假如图便宜也可以下载数据库图视化工具操作(比如navicat)

1、打开cmd,输入mysql -u*(此处*为你的用户名)
-p*(此处*为数据库密码)

登陆成功后

亚洲城误乐城ca88网站 2

创办数据库

CREATE DATABASE elec CHARACTER SET utf8 COLLATE utf8_general_ci;

改用elec数据库

use elec;

创建表

CREATE TABLE Elec_Text(

textID varchar(50) not null,

textName varchar(50),

textDate datetime,

textRemark varchar(500),

primary key(textID)

亚洲城误乐城ca88网站,);

如图:

亚洲城误乐城ca88网站 3

可以运用desc elec_text;查看表结构

亚洲城误乐城ca88网站 4

四、引入hibernate

1、导入用到的hibernate 主旨Jar包(这里把mysql的一连包也加进去了)

点此下载hibernate5.5.5要旨jar包

2、在src文件夹根目录下新建hibernate.cfg.xml文件,该公文在src根目录下会被电动加载

里头<mapping resource=””/>是炫耀后面写到的xml文件

亚洲城误乐城ca88网站 5

五、新建一个包,并新建PO持久层对象,用于映射数据表elec_text,ElecText.Java(类名词开端都大写)

package cn.itcast.elec.domain;

import java.util.Date;

/**

* PO持久层对象,对应数据库表Elec_Text

*

*/

@SuppressWarnings(“serial”)

public class ElecText implements java.io.Serializable {

private String textID;

private String textName;

private Date textDate;

private String textRemark;

public String getTextID() {

return textID;

}

public void setTextID(String textID) {

this.textID = textID;

}

public String getTextName() {

return textName;

}

public void setTextName(String textName) {

this.textName = textName;

}

public Date getTextDate() {

return textDate;

}

public void setTextDate(Date textDate) {

this.textDate = textDate;

}

public String getTextRemark() {

return textRemark;

}

public void setTextRemark(String textRemark) {

this.textRemark = textRemark;

}

}

六、新建下边PO类的hibernate映射配置文件,ElecText.hbm.xml

亚洲城误乐城ca88网站 6

七、编写junit测试类,测试映射、连接等等是还是不是有误

1、新建一个junit包,新建TestHibernate.java文件

public class TestHibernate {

@Test

public void testElecText(){

Configuration config = new Configuration();

config.configure();

//创建sessionFactory对象

SessionFactory sf = config.buildSessionFactory();

//打开session,操作数据库

Session session = sf.openSession();

//开启事务

Transaction tr = session.beginTransaction();

//实例化ElecText对象,添加多少,执行保存操作

ElecText elecText = new ElecText();

elecText.setTextName(“测试Hibernate名称”);

elecText.setTextDate(new Date());

elecText.setTextRemark(“测试Hibernate备注”);

//保存

session.save(elecText);

//提交业务

tr.commit();

session.close();

}

}

2、右键–》debug看是还是不是有难点(有问题的话自己解决呢。。)

八、引入spring

1、spring要旨jar包的下载

点击下载spring4.3.6

2、在src根目录下新建beans.xml(之所以在根目录下是因为加载的时候一贯写文件名就行,方便)

亚洲城误乐城ca88网站 7

个中3是为hibernate注入sessionFactory工厂,第四步是开创工作管理器,有其一管理器,spring会自动提交、回滚等等业务

九、新建cn.itcast.elec.dao包,再新建一个公共DAO接口ICommonDao.java,规范数据访问类

package cn.itcast.elec.dao;

public interface ICommonDao{

public void save(T entity);

}

十、新建一个impl包,完毕地点的接口CommonDaoImpl.java

亚洲城误乐城ca88网站 8

此类继承了HibernateDaoSuppport类,里面提供了增删改查的法门,@Resource(name=”sessionFactory”)的意趣是将bean.xml配置中id为sessionFactory的bean(里面内部已经生活了sessionFactory类)注入给setSessionFactoryDi方法

十一、在本来的dao包下,新建一个elecTextDao.java,用于规范elecText的走访

package cn.itcast.elec.dao;

import cn.itcast.elec.domain.ElecText;

public interface IElecTextDao extends ICommonDao{

public final static String SERVICE_NAME =
“cn.itcast.elec.dao.impl.ElecTextDaoImpl”;

}

十二、在原先的impl包下,新建一个ElecTextDaoImpl,用来贯彻elecTextDao接口

package cn.itcast.elec.dao.impl;

import org.springframework.stereotype.Repository;

import cn.itcast.elec.dao.IElecTextDao;import
cn.itcast.elec.domain.ElecText;

@Repository(IElecTextDao.SERVICE_NAME)

public class ElecTextDaoImpl extends CommonDaoImplimplements
IElecTextDao {

}

其中@Repository(IElecTextDao.SERVICE_NAME)是将名为IElecTextDao.SERVICE_NAME的类注入到spring容器当中

十三、新建一个service接口包,并在其下部新建一个service接口,规范业务

亚洲城误乐城ca88网站 9

十四、新建一个service完结包,并新建一个兑现类

亚洲城误乐城ca88网站 10

十五、struts的引用

1、struts2 jar包引入

点此下载struts2
jar包

2、写一个有所Action都要两次三番的类,这一个类重假使为了得到到HttpServletRequest和HttpServletResponse对象,而这多少个对象用于客服端和服务端的音讯传送。

亚洲城误乐城ca88网站 11

其实,如若不继续ServletRequest和ServletResponse也可以,不过要经过ServletActionContext或者ActionContext来获得,更重视的是,这三种不是IOC方式,须求自己注入,多了部分步骤

3、接下去就是要继续这几个BaseAction类了,然而在此此前还亟需写一个从Spring
IOC容器加载Bean的类,因为那一个加载是公共代码,而且也很费时间,所以把这一部分代码抽出来,作为一个服务类,加载三回就好。

首先,建一个ApplicationContext的JavaBean

亚洲城误乐城ca88网站 12

再拔取加载了bean配置的类,进行bean的加载

亚洲城误乐城ca88网站 13

之所以把把加载配置文件和加载bean分开五个类是因为还足以采取配置文件干一些其他的事体

4、这么些时候想起一下我们所要达成的事体,没错就是要将jsp的表单数据存到数据库里面,那里就须求一个载体承担jsp页面和action之间的音信传送。回顾一下下边的PO类,负责达成java和数据库的映射。其实大家也可以用卓殊PO类完结那里的新闻传递,然则这么做糟糕。因为数据库的多少不完全会是页面所反映或者使用的,造成资源浪费等。所以好的做法是再写一个Model类,用于承担起表现的职能

亚洲城误乐城ca88网站 14

5、再在action包下,写一个储存从jsp页面传过来的action

亚洲城误乐城ca88网站 15

个中落实ModelDriven的益处,大家自行百度

6、在web.xml(WebContent/WEB-INF目录下)配置struts相关拦截器

亚洲城误乐城ca88网站 16

7、配置完拦截器后,改拦截器会自动加载src根目录下的命名为struts.xml的文本

亚洲城误乐城ca88网站 17

最终的jsp,就是一个表单的交由,我们能够友善写,也得以看代码

点击下载源代码(提取码为oimt)

或者须求将WebContent改为WebRoot,假诺运行指示resources
不可用,那么可以对着项目右键–>Properties–>Project
Facets。废除再勾选Dynamic Web
Module,点击”Apply“应用,然后上面会现出一个“Further Configuration
Avaliable…”,再点进入,修改WebContent为WebRoot

亚洲城误乐城ca88网站 18

归根结底写完了,感觉要吐血了。。(有哪些错误的地点,还指望大家指出并指正)

PS:转发分享请标明出处,谢谢