ssh2框架搭建及代码

1、建立web工程

创建数据库

导入向对应的jar包

2、 持久层:

(1)在cn.itcast.elec.domain中创建持久化类ElecText

@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;

}

}

(2)在cn.itcast.elec.domain中创建ElecText.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">

<hibernate-mapping>

<class name="cn.itcast.elec.domain.ElecText" table="Elec_Text">

<id name="textID" type="string">

<column name="textID" sql-type="VARCHAR(50)"></column>

<generator class="uuid"></generator>

</id>

<property name="textName" type="string">

<column name="textName" sql-type="VARCHAR(50)"></column>

</property>

<property name="textDate" type="date">

<column name="textDate" length="50"></column>

</property>

<property name="textRemark" type="string">

<column name="textRemark" sql-type="VARCHAR(500)"></column>

</property>

</class>

</hibernate-mapping>

(3)在src的目录下,创建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">

<hibernate-configuration>

<session-factory>

<!-- 基本信息 -->

<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/itcast0906elec?useUnicode=true&amp;characterEncoding=utf8</property>

<property name="hibernate.connection.username">root</property>

<property name="hibernate.connection.password">root</property>

<!-- 使事务自动提交 -->

<!--<property name="hibernate.connection.autocommit">true</property>-->

<!-- 配置 -->

<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>

<property name="hibernate.hbm2ddl.auto">update</property>

<property name="hibernate.show_sql">true</property>

<!-- 添加映射的hbm.xml -->

<mapping resource="cn/itcast/elec/domain/ElecText.hbm.xml"/>

</session-factory>

</hibernate-configuration>

(4)测试在junit包下TestHibernate

public class TestHibernate {

@Test

public void testSave(){

Configuration configuration = new Configuration();

//加载类路径的hibernate.cfg.xml

configuration.configure();

//调用sessionFactory

SessionFactory sf = configuration.buildSessionFactory();

//打开session

Session s = sf.openSession();

//开启事务

Transaction tr = s.beginTransaction();

//保存ElecText

ElecText elecText = new ElecText();

elecText.setTextName("测试Hibernate名称");

elecText.setTextDate(new Date());

elecText.setTextRemark("测试Hibernate备注");

s.save(elecText);

//事务提交

tr.commit();

//关闭session

s.close();

}

}

3、DAO层

(1)在cn.itcast.elec.dao中创建对应的业务接口 IElecTextDao

public interface IElecTextDao extends ICommonDao<ElecText> {

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

}

(2)在cn.itcast.elec.dao.impl中创建对应业务接口的实现类ElecTextDaoImpl

@Repository(IElecTextDao.SERVICE_NAME)

public class ElecTextDaoImpl extends CommonDaoImpl<ElecText> implements IElecTextDao {

}

(3)在cn.itcast.elec.dao中创建对应的公用接口 ICommonDao

public interface ICommonDao<T> {

void save(T entity);

}

(4)在cn.itcast.elec.dao.impl中创建对应公用接口的实现类CommonDaoImpl,并注入sessionFactory给hibernateTemplate

public class CommonDaoImpl<T> extends HibernateDaoSupport implements ICommonDao<T> {

/**

*  <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">

<property name="sessionFactory" ref="sessionFactory"></property>

</bean>

*/

@Resource(name="sessionFactory")

public final void setSessionFactoryDi(SessionFactory sessionFactory) {

super.setSessionFactory(sessionFactory);

}

public void save(T entity) {

this.getHibernateTemplate().save(entity);

}

}

(5)在src的目录下创建beans.xml(spring容器)

<?xml version="1.0" encoding="UTF-8"?>

<beans  xmlns="http://www.springframework.org/schema/beans"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.0.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

<!-- 1、注解的自动扫描,表示组件(如:@controler,@Service,@Repository,@Resource等)的扫描 -->

<context:component-scan base-package="cn.itcast.elec"></context:component-scan>

<!-- 2、? -->

<!-- 3、创建由spring提供的sessionFactory,这是spring整合hibernate的核心 -->

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<property name="configLocation">

<value>

classpath:hibernate.cfg.xml

</value>

</property>

</bean>

<!--4、创建事务管理器,由spring负责创建  -->

<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<property name="sessionFactory" ref="sessionFactory"></property>

</bean>

<!-- 5、使用注解的形式管理事务 -->

<tx:annotation-driven transaction-manager="txManager"/>

</beans>

(6)测试在junit包下

public class TestDao {

@Test

public void testSaveElecText(){

//加载类路径下的beans.xml

ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");

//获取spring容器中的bean的id节点

IElecTextDao elecTextDao = (IElecTextDao) ac.getBean(IElecTextDao.SERVICE_NAME);

//保存

ElecText elecText = new ElecText();

elecText.setTextName("测试DAO名称");

elecText.setTextDate(new Date());

elecText.setTextRemark("测试DAO备注");

elecTextDao.save(elecText);

}

}

4、业务层

(1)在cn.itcast.elec.service中创建接口 IElecTextService

public interface IElecTextService {

public static final String SERVICE_NAME = "cn.itcast.elec.service.impl.ElecTextServiceImpl";

void saveElecText(ElecText elecText);

}

(2)在cn.itcast.elec.service.impl中创建实现类ElecTextServiceImpl,在业务层要写入事务控制

@Service(IElecTextService.SERVICE_NAME)

@Transactional(readOnly=true)

public class ElecTextServiceImpl implements IElecTextService {

@Resource(name=IElecTextDao.SERVICE_NAME)

private IElecTextDao elecTextDao;

@Transactional(isolation=Isolation.DEFAULT,propagation=Propagation.REQUIRED,readOnly=false)

public void saveElecText(ElecText elecText) {

elecTextDao.save(elecText);

}

}

(3)测试,在junit包下TextService测试

public class TestService {

@Test

public void testSaveElecText(){

//加载类路径下的beans.xml

ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");

//获取spring容器中的bean的id节点

IElecTextService elecTextService = (IElecTextService) ac.getBean(IElecTextService.SERVICE_NAME);

//保存

ElecText elecText = new ElecText();

elecText.setTextName("测试Service名称");

elecText.setTextDate(new Date());

elecText.setTextRemark("测试Service备注");

elecTextService.saveElecText(elecText);

}

}

5、控制层

(1)在cn.itcast.elec.web.action中创建ElecTextAction,使用模型驱动

@Controller("elecTextAction")

@Scope(value="prototype")

@SuppressWarnings("serial")

public class ElecTextAction extends BaseAction implements ModelDriven<ElecText> {

private ElecText elecText = new ElecText();

@Resource(name=IElecTextService.SERVICE_NAME)

private IElecTextService elecTextService;

public ElecText getModel() {

return elecText;

}

public String save(){

elecTextService.saveElecText(elecText);

System.out.println(request.getParameter("textDate"));

return "success";

}

}

(2)在cn.itcast.elec.web.action中创建BaseAction,用于获取request和response

@SuppressWarnings("serial")

public class BaseAction extends ActionSupport implements ServletRequestAware,ServletResponseAware {

protected HttpServletRequest request = null;

protected HttpServletResponse response = null;

public void setServletRequest(HttpServletRequest req) {

this.request = req;

}

public void setServletResponse(HttpServletResponse res) {

this.response = res;

}

}

(3)在src的目录下,创建struts.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"

"http://struts.apache.org/dtds/struts-2.1.7.dtd">

<struts>

<!-- 修改访问链接的后缀名 -->

<constant name="struts.action.extension" value="do"></constant>

<!-- 设置开发模式,开发时输出更多的错误信息 -->

<constant name="struts.devMode" value="true"></constant>

<!-- 修改ui主题为简单主题 -->

<constant name="struts.ui.theme" value="simple"></constant>

<package name="system" namespace="/system" extends="struts-default">

<action name="elecTextAction_*" class="elecTextAction" method="{1}">

<result name="success">/system/textAdd.jsp</result>

</action>

</package>

</struts>

(4)在web.xml中配置:添加:

<!-- 使用struts整合spring,web服务器启动时,需要加载beans.xml -->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>

classpath:beans.xml

</param-value>

</context-param>

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<filter>

<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

(5)导入对应css,script,images,jsp页面

(6)整体测试

ssh2框架搭建及代码

时间: 2024-11-03 22:33:16

ssh2框架搭建及代码的相关文章

SSH2框架搭建 和 配置文件详解

-----------补充说明----------- 文章中所列出的struts2的2.2jar包已经不是最新的了,这个版本有严重漏洞, 现在最新版本为2.3.15,所以.你懂的http://struts.apache.org/download.cgi#struts23151 感谢网友提醒,现在不做ssh2的开发了,所以也忘了更新这篇文章,误导大家了,抱歉! SSH框架,当今最为流行的项目开发框架组合,那么掌握他的第一步是学习如何配置环境,java Web开发的无论哪种框架都离不开各种xml配置

SSH2框架搭建

SSH框架,当今最为流行的项目开发框架,那么掌握他的第一步自然是学习如何配置环境,java Web开发的无论哪种框架都离不开各种xml配置,虽然说配置在网上到处都有,但是要成为高手,必须要明白配置中每一部分的意义,分析它的规律,因此走好这第一步至关重要. SSH分为SSH1和SSH2,区别主要在于Struts的版本,即Struts1和Struts2,Struts1与Struts2在配置上有所差别,但每一步配置的意义区别不大.对于Struts1框架的搭建我已经在之前的文章介绍过了:http://b

SSH2框架搭建和配置文件详解

SSH框架,当今最为流行的项目开发框架组合,那么掌握他的第一步是学习如何配置环境,java Web开发的无论哪种框架都离不开各种xml配置,虽然说配置在网上到处都有,但是要成为合格的程序猿,必须要明白配置中每一部分的意义,分析它的规律,因此这一步至关重要. SSH分为SSH1和SSH2,区别主要在于Struts的版本,即Struts1和Struts2,Struts1与Struts2在配置上有所差别, 这回主要为大家介绍的是基于Struts2的SSH2框架搭建. 我们在搭建框架之前,首先一定要注意

关于SSH2框架搭建过程中出现的问题的总结

以前接触过SSH框架,但是一直都没有用过,然后这段时间又重新回顾了一下,当然,期间也碰到了不少问题,然后就在网上查相关资料,折腾了一番,也学到了不少东西,所以决定整理下来.使用的IDE工具是Myeclipse10.1,碰到的问题大致有下面几个: 1.问题1--控制台报加载Struts配置文件失败的异常. 异常原因:主要是缺少struts2-spring-plugin-2.X.X.X这个插件jar包. 解决方法:将这个jar包导入到项目中即可. a.可以直接下载所需要的版本如:struts2-sp

搭建App主流框架_纯代码搭建(OC)

转载自:http://my.oschina.net/hejunbinlan/blog/529778?fromerr=EmSuX7PR 搭建主流框架界面 源码地址在文章末尾 达成效果 效果图 注:本文部分图标及效果图来自[IT江湖] https://github.com/itjhDev/itjh 导读 我们玩iPhone应用的时候,有没发现大部分的应用都是上图差不多的结构,下面的TabBar控制器可以切换子控制器,上面又有Navigation导航条 我们本文主要是讨论主体框架的搭建,数据暂时没有添

ssh框架搭建Struts2.06+spring2.5+hibernate3.2整合实例代码教程步骤

原创整理不易,转载请注明出处:ssh框架搭建Struts2.06+spring2.5+hibernate3.2整合实例代码教程步骤 代码下载地址:http://www.zuidaima.com/share/1760074977233920.htm 最近闲来无事可做,于是开始学习struts2.Struts2和struts1.webwork2有什么区别我也不说了,网上有很多这方面的资料.以前在项目中从未使用过struts,一直使用spring+hibernate,现在既然学习了Struts,也不能

十分钟搭建App主流框架_纯代码搭建(OC),你不知道的框架

十分钟搭建App主流框架_纯代码搭建(OC),你不知道的框架java学习爱好者 2019-06-11 14:28搭建主流框架界面 需要源码的可以私信我达成效果 效果图ps :需要源码的可以加群,668041364导读 我们玩iPhone应用的时候,有没发现大部分的应用都是上图差不多的结构,下面的TabBar控制器可以切换子控制器,上面又有Navigation导航条我们本文主要是讨论主体框架的搭建,数据暂时没有添加分析做项目的基本流程 1.搭建项目主框架(1)先搭建tabBarController

SSH框架搭建 详细图文教程

转载请标明原文地址 一.什么是SSH? SSH是JavaEE中三种框架(Struts+Spring+Hibernate)的集成框架,是目前比较流行的一种Java Web开源框架. SSH主要用于Java Web的开发.现在SSH有SSH1和SSH2两种,区别在于Struts的版本是struts1.x还是2.x.本文介绍的是SSH1. 二.Struts Spring Hibernate各起什么作用? Struts:控制逻辑关系. Spring:解耦. Hibernate:操作数据库. 三.学习SS

Spring MVC 框架搭建及详解

一.Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0) 1. jar包引入 Spring 2.5.6:spring.jar.spring-webmvc.jar.commons-logging.jar.cglib-nodep-2.1_3.jar Hibernate 3.6.8:hibernate3.jar.hibernate-jpa-2.0-api-1.0.1.Final.jar.antlr-2.7.6.jar.commons-collections-3