添加支持


我先介绍的是MyEclipse9的自带框架支持搭建过程:(完全的步骤  傻瓜式的学习。。~)

首先我们来搭建一个Web项目:

一、Hibernate(数据层)的搭建:

相关描述

Ⅰ.服务器与数据库之间的交互

Ⅱ. Hibernate封装了一系列的JDBC代码,提供相应的方法我们使用,使我们的开发变得简单快捷,效率大大提高

实现流程

二、Struts2(MVC)的搭建:

相关描述

Ⅰ.本质上相当于一个Servlet

Ⅱ.不需要手动获取传递参数 (只需要定义声明属性名和设置get、set的方法)、也不需要手动跳转(只需要struts.xml配置相关的路径)

Ⅲ.对项目的分包(例如:dao、service、entity等等),实现MVC模式的开发

Ⅳ.MVC: Action属于Model,而JSP是View页面的展示,其中过滤器起到了Controller的作用

实现流程

这里注意一点问题:

  Struts2与Hibernate在一起搭建,antlr包,有冲突。MyEclipse9中有这样问题。朋友的MyEclipse10中没有这个问题。

  我选择把Struts中antlr包去掉。

三、Spring(注入实例)的使用:

相关描述

Ⅰ.每一层的代码之间的耦合改为模块(分离/解耦),代码之间互不影响

Ⅱ.不再关注具体的实现类的实例

Ⅲ.更换不同的技术(模块),不需要改动代码,只需要修改applicationContext.xml的相关配置信息

Ⅳ.主要功能IOC(控制反转)松耦合、AOP (面向切面)内聚性

实现流程

 


 编辑web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><display-name></display-name><!-- 这是一只拦路虎 --><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- 读取applicationContext.xml文件 不写默认Spring需要读取 WebContent\WEB-INF\applicationContext.xml --><context-param><param-name>contextConfigLocation</param-name><!-- 改变默认读取路径为src目录下的 applicationContext.xml 在改变的路径下还是没找到,便自动到默认路径查找 --><param-value>classpath:applicationContext.xml</param-value></context-param><!-- 定义Spring监听器 class: spring 3.0 Web Libraries 下可以找到。 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- Struts2过滤器 --><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>
</web-app>

DB Browser中反转实体类:

数据访问层dao接口

package com.dao;import com.entity.Users;/*** 用户接口* @author asus**/
public interface UsersDao {/** 登陆验证 */Users loginCheck(Users user);
}

数据访问层dao.impl实现类

  1)继承HibernateDaoSupport类实现增删改查

package com.dao.impl;import java.util.List;import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.dao.UsersDao;
import com.entity.Users;
/*** 用户接口实现类* @author asus*HibernateTemplate、HibernateDaoSupport两种方法实现增删改查*一种方法:Dao实现类继承HibernateDaoSupport类,该类是抽象类,该类中有一个HibernateTemplate的属性,通过this.getHibernateTemplate()可获得一个HibernateTemplate类的模板对象。*/
public class UsersDaoImpl extends HibernateDaoSupport implements UsersDao {@Overridepublic Users loginCheck(Users user) {//得到此类提供的模板实现增删改查HibernateTemplate ht = this.getHibernateTemplate();//得到一个集合List<Users> list = ht.find("from Users where name=? and password=? ",user.getName(),user.getPassword());//使用三元运算符,防止list.get(0)时报空指针。return (Users) (list.size()>0?list.get(0):null);}}  

 2)定义HibernateTemplate模板对象属性
package com.dao.impl;import java.util.List;import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.dao.UsersDao;
import com.entity.Users;
/*** 用户接口实现类* @author asus*HibernateTemplate、HibernateDaoSupport两种方法实现增删改查*第二种方法:在dao类中定义一个HibernateTemplate类的对象,用该对象调用HibernateTemplate模板封装好的方法,如下:*/
public class UsersDaoImpl implements UsersDao {//定义一个模板对象
    HibernateTemplate hibernateTemplate;@Overridepublic Users loginCheck(Users user) {//得到一个集合List<Users> list = hibernateTemplate.find("from Users where name=? and password=? ",user.getName(),user.getPassword());//使用三元运算符,防止list.get(0)时报空指针。return (Users) (list.size()>0?list.get(0):null);}//生成Get'Set方法public HibernateTemplate getHibernateTemplate() {return hibernateTemplate;}public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {this.hibernateTemplate = hibernateTemplate;}
}

业务逻辑层接口service

package com.service;import com.entity.Users;/*** 用户业务逻辑层* @author asus**/
public interface UsersService {/** 登陆验证 */Users loginCheck(Users user);
}

业务逻辑层接口实现类service.impl

package com.service.impl;import com.dao.UsersDao;
import com.entity.Users;
import com.service.UsersService;
/*** 用户业务逻辑层实现类* @author asus**/
public class UsersServiceImpl implements UsersService {//这里以前是new的,现在不需要了,交给Spring来实例private UsersDao udd;@Overridepublic Users loginCheck(Users user) {return udd.loginCheck(user);}//生成Get'Setpublic UsersDao getUdd() {return udd;}public void setUdd(UsersDao udd) {this.udd = udd;}}

控制器类Action

package com.action;import com.entity.Users;
import com.opensymphony.xwork2.ActionSupport;
import com.service.UsersService;
/*** 用户控制器类* @author asus**/
public class UsersAction extends ActionSupport {//接收页面的值private Users user;//一样交给Spring实例private UsersService uss;public String execute(){return SUCCESS;}/** 判断用户输入的账号密码 */public String login(){if(user!=null){Users checkResult = uss.loginCheck(user);if(checkResult!=null){return SUCCESS;}}return LOGIN;}//生成Get'Setpublic Users getUser() {return user;}public void setUser(Users user) {this.user = user;}public UsersService getUss() {return uss;}public void setUss(UsersService uss) {this.uss = uss;}
}

登陆页面

  <body><form action="loginUser.action" method="post" >用户名:<input type="text" name="user.name" />密码:   <input type="password" name="user.password" /><input type="submit" value="登录按钮" ></form></body>

成功页面

  <body>登录成功!</body>

 配置applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans 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/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="configLocation" value="classpath:hibernate.cfg.xml"></property></bean><!-- UsersBean配置 --><!-- 第一种方法:Dao实现类继承HibernateDaoSupport类的配置 --><bean id="userDaoImpl" class="com.dao.impl.UsersDaoImpl"><property name="sessionFactory" ref="sessionFactory"></property></bean><!-- 第二种方法:在dao类中定义一个模板对象<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate" ><property name="sessionFactory" ref="sessionFactory" ></property></bean><bean id="userDaoImpl" class="com.dao.impl.UsersDaoImpl"><property name="hibernateTemplate" ref="hibernateTemplate"></property></bean> --><bean id="userServiceImpl" class="com.service.impl.UsersServiceImpl"><property name="udd" ref="userDaoImpl" /></bean><bean id="userSturts" class="com.action.UsersAction"><property name="uss" ref="userServiceImpl" /></bean></beans>

配置Struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts><package name="struts2" namespace="/" extends="struts-default"><action name="*User" class="userSturts" method="{1}" ><result name="success">/success.jsp</result><result name="login">/login.jsp</result></action></package>
</struts>    

end:基本的登陆现在已经做好,现在我们开始做添加事务。

添加事务


数据访问层dao接口

package com.dao;import com.entity.District;/*** 区域接口* @author asus**/
public interface DistrictDao {/** 添加区域  */int addReg (District district);
}

数据访问层dao.impl实现类

  定义HibernateTemplate模板对象属性

package com.dao.impl;import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.HibernateTemplate;import com.dao.DistrictDao;
import com.entity.District;
/*** 区域接口实现类* @author asus*HibernateTemplate、HibernateDaoSupport两种方法实现增删改查*第二种方法:在dao类中定义一个HibernateTemplate类的对象,用该对象调用HibernateTemplate模板封装好的方法,如下:*/
public class DistrictDaoImpl implements DistrictDao {//定义一个模板对象private HibernateTemplate hibernateTemplate;@Overridepublic int addReg(District district) {try {hibernateTemplate.save(district);return 1;} catch (DataAccessException e) {e.printStackTrace();}return 0;}//生成Get'Set方法public HibernateTemplate getHibernateTemplate() {return hibernateTemplate;}public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {this.hibernateTemplate = hibernateTemplate;}
}

业务逻辑层接口service

package com.service;import com.entity.District;/*** 地区业务逻辑类接口* @author asus**/
public interface DistrictService {/***  配置事务的话注意方法的命名规范以什么开头。* @param district*/int addReg(District district);
}

业务逻辑层接口实现类service.impl

package com.service.impl;import com.dao.DistrictDao;
import com.entity.District;
import com.service.DistrictService;
/*** 区域业务逻辑层接口实现类* * @author asus**/
public class DistrictServiceImpl implements DistrictService {//声明接口由Spring来实例private DistrictDao ddd;@Overridepublic int addReg(District district) {return ddd.addReg(district);}//声明Get'Set方法public DistrictDao getDdd() {return ddd;}public void setDdd(DistrictDao ddd) {this.ddd = ddd;}}

控制器类Action

package com.action;import com.entity.District;
import com.opensymphony.xwork2.ActionSupport;
import com.service.DistrictService;
/*** 控制器类* 作用:添加区域* @author asus**/
public class DistrictAction extends ActionSupport {//属性private District district;private DistrictService dss;//处理添加请求public String add(){int addReg = dss.addReg(district);if(addReg>0){return SUCCESS;}return "index";}//生成Get'Set方法public DistrictService getDss() {return dss;}public void setDss(DistrictService dss) {this.dss = dss;}public District getDistrict() {return district;}public void setDistrict(District district) {this.district = district;}}

 添加页面

  <body><form action="addReg" method="post" ><input type="text" name="district.name" ><input type="submit" value="提交" ></form></body>

成功页面

  <body>登录成功!</body>

配置applicationContext.xml(这里还是比较重要的,其中夹杂前面Users的Bean)

<?xml version="1.0" encoding="UTF-8"?>
<!-- 配置事务第一步:需要导入的命名空间 命名规范: xsi:架构实例 beans:根节点 aop:事务 context:注解 tx:事务管理 xsi:schemaLocation 协议(一个命名规范对应一个协议) 注:若不知道自己使用的框架版本,可以把协议后的版本号去掉,此处已经去掉。 -->
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="configLocation" value="classpath:hibernate.cfg.xml"></property></bean><!-- 配置事务第二步:配置事务管理器,将SessionFactory注入 --><bean id="txManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><!-- 配置事务第三步:事务通知tx:method: 管理事务的方法name:方法的名字是已什么开头的no-rollback-for="true":回滚read-only="true":只读(默认false,是已非事务的方式来操作你的数据,比如查询)propagation:事务是以哪种方式来操作    REQUIRED:必填 (事务解释:比如一个方法中执行添加两张表的信息,第一个添加,没有事务开启一个事务,第二个添加加入第一个事务中,两个方法都成功则成功,一个失败全部回滚)name="*" :不在以上方法名开头之内的,是以非事务的方式来操作--><tx:advice id="txAdvice" transaction-manager="txManager"><tx:attributes><tx:method name="get*" propagation="SUPPORTS" read-only="true" /> <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="del*"  propagation="REQUIRED"/><tx:method name="update*" propagation="REQUIRED"/><tx:method name="*" propagation="SUPPORTS" read-only="true" /></tx:attributes></tx:advice><!-- 配置事务第四步:织入(以面相切面的方式编程) --><aop:config><!-- 切面 expression:表达式\* com.service.impl.*.*(..):(星    空格    包名    点星(代表所有此包下所有的类)    点星(代表类下所有的方法)       括号点点(代表方法中不管带有几个参数,只要符合命名规范都纳入事务管理))--><aop:pointcut id="serviceMethod" expression="execution(* com.service.impl.*.*(..))" /> <!-- 通知者 由切面和事务通知组成的通知者--><aop:advisor pointcut-ref="serviceMethod" advice-ref="txAdvice"/></aop:config><!-- UsersBean配置 --><!-- 第一种方法:Dao实现类继承HibernateDaoSupport类的配置 --><bean id="userDaoImpl" class="com.dao.impl.UsersDaoImpl"><property name="sessionFactory" ref="sessionFactory"></property></bean><!-- 第二种方法:在dao类中定义一个模板对象 <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate" > <property name="sessionFactory" ref="sessionFactory" ></property> </bean> <bean id="userDaoImpl" class="com.dao.impl.UsersDaoImpl"> <property name="hibernateTemplate" ref="hibernateTemplate"></property> </bean> --><bean id="userServiceImpl" class="com.service.impl.UsersServiceImpl"><property name="udd" ref="userDaoImpl" /></bean><bean id="userSturts" class="com.action.UsersAction"><property name="uss" ref="userServiceImpl" /></bean><!-- DistrictBean配置 --><bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory"></property></bean><bean id="DistrictDaoImpl" class="com.dao.impl.DistrictDaoImpl"><property name="hibernateTemplate" ref="hibernateTemplate"></property></bean><bean id="DistrictServiceImpl" class="com.service.impl.DistrictServiceImpl"><property name="ddd" ref="DistrictDaoImpl"></property></bean><bean id="DistrictAction" class="com.action.DistrictAction"><property name="dss" ref="DistrictServiceImpl"></property></bean>
</beans>

优化SessionFacatory,使用Spring创建最原始的JDBC数据源

优化JDBC为C3P0数据源连接池


(注:代码确与上面有重复,我走的是步骤路线虽然代码重复太多,只为更容易理解)

配置applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- 配置事务第一步:需要导入的命名空间 命名规范: xsi:架构实例 beans:根节点 aop:事务 context:注解 tx:事务管理 xsi:schemaLocation 协议(一个命名规范对应一个协议) 注:若不知道自己使用的框架版本,可以把协议后的版本号去掉,此处已经去掉。 -->
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"><!-- 倒数第二步:这个sessionFactory使用的还是最原始的,可以优化,真正实际开发不会去用,测试可用。<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="configLocation" value="classpath:hibernate.cfg.xml"></property></bean>--><!-- 最后一步:优化sessionFactory:hibernate.cfg.xml中数据库连接方式可以由Spring来创建与管理操作步骤:使用Spring创建数据源:右键Spring——>New DataSource and SessionFactory(有图解)(Spring提供的是最原始的JDBC数据源连接池的写法,当然可以再成优化C3P0,DBCP数据源连接池)--><!-- dataSource创建的:JDBC数据源写法(将C3P0数据源连接池写法注释掉就可用此数据源,它的HTML注释太多就先注释此..)<bean id="dataSource"class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName"value="oracle.jdbc.driver.OracleDriver"></property><property name="url"value="jdbc:oracle:thin:@localhost:1521:orcl"></property><property name="username" value="root"></property><property name="password" value="admin"></property></bean> --><!-- C3P0数据源连接池写法 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="oracle.jdbc.driver.OracleDriver"></property>                       <property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:orcl"></property><property name="user" value="root" /><property name="password" value="admin" /><!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 --><property name="initialPoolSize" value="1" /><!--连接池中保留的最小连接数。 --><property name="minPoolSize" value="1" />        <!--连接池中保留的最大连接数。Default: 15 --><property name="maxPoolSize" value="300" /><!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 --><property name="maxIdleTime" value="60" /><!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --><property name="acquireIncrement" value="5" /><!--每60秒检查所有连接池中的空闲连接。Default: 0 --><property name="idleConnectionTestPeriod" value="60" /></bean><!-- session的创建方式 --><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource"><ref bean="dataSource" /></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop><prop key="hibernate.show_sql">true</prop><prop key="hiberenate.format_sql">true</prop></props></property><property name="mappingResources"><list><value>com/entity/District.hbm.xml</value><value>com/entity/House.hbm.xml</value><value>com/entity/Street.hbm.xml</value><value>com/entity/Type2.hbm.xml</value><value>com/entity/Users.hbm.xml</value></list></property></bean><!-- 配置事务第二步:配置事务管理器,将SessionFactory注入 --><bean id="txManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><!-- 配置事务第三步:事务通知tx:method: 管理事务的方法name:方法的名字是已什么开头的no-rollback-for="true":回滚read-only="true":只读(默认false,是已非事务的方式来操作你的数据,比如查询)propagation:事务是以哪种方式来操作    REQUIRED:必填 (事务解释:比如一个方法中执行添加两张表的信息,第一个添加,没有事务开启一个事务,第二个添加加入第一个事务中,两个方法都成功则成功,一个失败全部回滚)name="*" :不在以上方法名开头之内的,是以非事务的方式来操作--><tx:advice id="txAdvice" transaction-manager="txManager"><tx:attributes><tx:method name="get*" propagation="SUPPORTS" read-only="true" /> <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="del*"  propagation="REQUIRED"/><tx:method name="update*" propagation="REQUIRED"/><tx:method name="*" propagation="SUPPORTS" read-only="true" /></tx:attributes></tx:advice><!-- 配置事务第四步:织入(以面相切面的方式编程) --><aop:config><!-- 切面 expression:表达式\* com.service.impl.*.*(..):(星    空格    包名    点星(代表所有此包下所有的类)    点星(代表类下所有的方法)       括号点点(代表方法中不管带有几个参数,只要符合命名规范都纳入事务管理))--><aop:pointcut id="serviceMethod" expression="execution(* com.service.impl.*.*(..))" /> <!-- 通知者 由切面和事务通知组成的通知者--><aop:advisor pointcut-ref="serviceMethod" advice-ref="txAdvice"/></aop:config><!-- UsersBean配置 --><!-- 第一种方法:Dao实现类继承HibernateDaoSupport类的配置 --><bean id="userDaoImpl" class="com.dao.impl.UsersDaoImpl"><property name="sessionFactory" ref="sessionFactory"></property></bean><!-- 第二种方法:在dao类中定义一个模板对象 <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate" > <property name="sessionFactory" ref="sessionFactory" ></property> </bean> <bean id="userDaoImpl" class="com.dao.impl.UsersDaoImpl"> <property name="hibernateTemplate" ref="hibernateTemplate"></property> </bean> --><bean id="userServiceImpl" class="com.service.impl.UsersServiceImpl"><property name="udd" ref="userDaoImpl" /></bean><bean id="userSturts" class="com.action.UsersAction"><property name="uss" ref="userServiceImpl" /></bean><!-- DistrictBean配置 --><bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory"></property></bean><bean id="DistrictDaoImpl" class="com.dao.impl.DistrictDaoImpl"><property name="hibernateTemplate" ref="hibernateTemplate"></property></bean><bean id="DistrictServiceImpl" class="com.service.impl.DistrictServiceImpl"><property name="ddd" ref="DistrictDaoImpl"></property></bean><bean id="DistrictAction" class="com.action.DistrictAction"><property name="dss" ref="DistrictServiceImpl"></property></bean>
</beans>

附Spring创建JDBC数据源图:

转载于:https://www.cnblogs.com/wkrbky/p/5912810.html

SSH(Struts2+Spring+Hibernate)框架搭建流程相关推荐

  1. struts2+spring+hibernate框架整合与项目

    嗯,其实一两周前都写好了,可一直懒得发,今天终于不懒一会,发一下.内容很清楚,主要是搭建框架的过程还有我写项目中遇到的许多问题.鉴于太多了,所以懒惰的我直接发的我参考的那些作者的链接,大家可以看一看. ...

  2. Struts2,Spring,Hibernate框架的优缺点

    开源是3个框架共有的优点 Struts2框架(MVC框架)的优点如下: 1)  实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现: 2)  丰富的标签库,大大提高了开发的效率: 3) S ...

  3. [Spring+Hibernate系列]1.Spring+Hibernate 框架搭建

    1. 示例环境 OS版本: Win 7 , 64位 Java 版本: java version "1.6.0_30" 开发IDE: Eclipse,  Version: Indig ...

  4. Struts2+Spring+Hibernate环境搭建

    为什么80%的码农都做不了架构师?>>>    IDE:MyEclipse8.5 Struts2:struts-2.3.20 Spring:spring-framework-4.1. ...

  5. SSH之IDEA2017整合Struts2+Spring+Hibernate

    摘要 IDEA无疑是Java编程的利器,在下面我们将介绍如何使用IDEA来整合SSH(Struts2 + Spring + Hibernate):介绍將分为三个部分来讲,分别是新建工程,Spring引 ...

  6. 【struts2+spring+hibernate】ssh框架整合开发

    SSH框架整合 1 Struts2+Spring+Hibernate导包 Struts2导入jar包: * struts2/apps/struts2-blank.war/WEB-INF/lib/*.j ...

  7. Struts2+Spring+Hibernate 三大框架的合并集成

    这次来看看Struts2+Spring+Hibernate三大框架的整合应用,主要是Spring和Hibernate框架的整合,因为前边已经将Strtus2+Spring整合过了基本一样. 首先看一下 ...

  8. java 建立ssh隧道_JAVA SSH框架搭建流程

    百度出来的,觉得思路很好: 搭建struts应用 2.1 引入需要的jar包 commons-fileupload-1.2.1.jar文件上传 commons-logging-1.0.4.jar日志包 ...

  9. java高级框架应用开发案例教程_Java高级框架应用开发案例教程:struts2+spring+hibernate PDF...

    资源名称:Java高级框架应用开发案例教程:struts2+spring+hibernate PDF 第1章 struts+spring+hibernate概述 1.1 框架概述 1.2 struts ...

  10. Struts2+Spring+Hibernate搭建全解!

    Struts2+Spring+Hibernate是J2EE的最新流行框架.本篇是我搭建这个框架的经验总结,有很多人搭建这个框架总会遇到 大大小小的问题,网上也没有什么行之有效的方案或成体系的介绍,所以 ...

最新文章

  1. 五个工业风满满的 Look-alike 算法
  2. boost::hana::fold用法的测试程序
  3. CodeForces - 1455E Four Points(数学+几何)
  4. 分布式系统框架Spring+Redis+SSO视频课程
  5. linux中显示进程,linux中怎么显示所有进程
  6. 小红书再度出拳整治医美 首批处置违规笔记27.9万篇
  7. 【MySQL】sql语句中exists和in有何区别?
  8. Pytorch之模型加载/保存
  9. 单片机入门必备知识,c语言基础来了
  10. win7计算机不能设置双屏怎么回事,Win7系统怎么设置才能实现双屏显示?
  11. 标准差 php,PHP 计算Cpk以及标准差
  12. 园区网络IP地址规划
  13. 计算机硬件驱动备份,WinXp系统下该怎样备份电脑硬件驱动?【图文教程】
  14. 模拟电路 二极管伏安特性(一)
  15. Nomad 服务编排
  16. Java中将函数作为参数进行传递
  17. 水到渠成建设路肩等设施路缘石成型机来出力
  18. 67 Pod生命周期
  19. Java基础:Java开发环境下载以及安装【详细】
  20. 计算机一级公式的意思,计算机一级excel公式总结

热门文章

  1. 测试环境下将centos6.8升级到centos7的操作记录(转)
  2. Teradata中的四舍五入问题
  3. Orchard核心机制
  4. 解读TIME_WAIT--你在网上看到的大多数帖子可能都是错误的
  5. 轻松搭建Redis缓存高可用集群
  6. Oracle的去重函数 distinct
  7. 2016.01.18 UILabel
  8. 微软开放技术热烈祝贺开源社成立!
  9. Windows上SVN服务器搭建【转】
  10. 看高手都是运用的灵活自如,打算从今天开始学习他!