struts2+ibatis+spring整合开发
Struts2+ibatis+spring整合开发 1. 工程结构图
2. 配置文件 web.xml xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> index.jsp org.springframework.web.context.ContextLoaderListener contextConfigLocation /WEB-INF/applicationContext.xml
struts2
org.apache.struts2.dispatcher.FilterDispatcherter-class> struts2 /*
actionContextcleanup过滤器来清除属性,不让action自己清除。-
struts-cleanup
org.apache.struts2.dispatcher.ActionContextCleanUpter-class> struts-cleanup /*
如图: Struts.xml "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> /> /success.jsp /login.jsp type="redirect-action">show.action /error.jsp update.jsp type="redirect-action">show.action /error.jsp type="redirect-action">show.action /error.jsp /list.jsp /error.jsp
如图:
Struts.properties #struts.url.http.port=8080 struts.devMode=true struts.configuration.xml.reload=true struts.locale=zh_CN struts.i18n.encoding=UTF-8 struts.objectFactory=spring
如图:
sql-map-config.xml PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
如图:
applicationContext.xml xmlns="http://www.springframework.org/schema/beans" 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-2.0.xsd"> class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> /> />
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> classpath:sql-map-config.xml
class="cn.hsw.dao.UserDAO">
class="cn.hsw.service.UserService">
如图:
Struts2+Spring集成实例
Struts2+Spring集成实例1. ⼯程结构下⾯的图是本教程的项⽬⽂件夹结构。
2. Spring监听器配置Spring监听器 “org.springframework.web.context.ContextLoaderListener” 到 web.xml ⽂件中。
web.xml<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""/dtd/web-app_2_3.dtd" ><web-app><display-name>Struts 2 Web Application</display-name><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><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener></web-app>3. 注册Spring Bean注册所有的Spring Beans 配置在 applicationContext.xml ⽂件中, Spring监听器会⾃动找到这个 XML ⽂件。
Struts2 json jquery spring hibernate整合开发例子
Struts2+json+jquery+spring+hibernate整合开发例子准备工作:1、OperaMasksStudio-7.1.1,一个中文的Eclipse IDE,下载地址:/downloads/index.faces2、jquery的UI使用的是金蝶公司的OperaMasks-UI下载地址:/website/download.html3、mysql表CREATE TABLE `ip` (`id` int(11) NOT NULL AUTO_INCREMENT,`city` varchar(255) DEFAULT NULL,`address` varchar(255) DEFAULT NULL,`start` varchar(255) DEFAULT NULL,`end` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=gbk;一、新建Apusic工程完成二、在src下新建三个包,分别是action、model、service三、生成实体类对象class右键选择model包,选择Apusic Tools 打开模型视图右键选择”数据库至代码同步”选择数据库表点击“映射”,修改主键生成类别,在IP类加入下面红色两行代码。
@Column(name = "id", nullable = false)@Id@GeneratedValue(generator = "paymentableGenerator")@GenericGenerator(name = "paymentableGenerator", strategy = "native")private ng.Integer id;四、生成业务实现右键→增强功能→生成业务实现选择第一个”spring service”,下一步输出包选择service至此spring整合hibernater已完成。
ssi整合详细步骤
1、新建Dynamic Web Project项目2、修改编译路径,右键项目—build Path,红色标注部分修改为SSI_MODE/WebContent/WEB-INF/classes;SSI_MODE为项目名称3、添加struts2、spring、ibatis的架包,这里只需要加入基本的架包就行了,这里面包涵了ssi框架所用的基本架包,还有dbcp(控制数据库连接池的框架)框架所需要的三个架包,如果实在不知道要导入哪些,那你就把所有的架包都放进去,这里主要针对struts,另外在加入ibatis的架包时,建议使用你下载的spring自带的ibatis 架包,作者开始时是自己从网上下载的mybatis-3.0.2的架包,但是在启动的时候会报一个类找不到的错误。
作者使用的环境是eclipse3.7+jdk1.6+tomcat6.0,准备工作做好,下面开始ssi框架整合的工作。
4、刷新工程,项目结构图如下:配置文件放在src目录下,通过第二步配置的路径,在工程构建时,会把配置文件编译到WebContent/WEB-INF/classes 下。
5、新建三个jsp页面,一个用来发送请求,两个返回页面,内容随意,只要可以识别就行了。
我建的请求页面如下:6、将必要的配置文件先建立好。
在src/config下建立如下文件applicationContext.xml(spring配置文件),ibatis-default.xml(ibatis配置),jdbc.properties(数据库配置),struts.xml(struts 配置)。
7、下面是web.xml的配置(图略下,可拷贝放大看),从这里可以看到,web.xml在加载时会加载到struts的配置文件和spring的applicationContext配置文件。
8、接下来配置struts全局的配置文件,这个配置文件包括整体的配置(这里并未添加)和在工程子模块中的struts配置文件,由web.xml统一加载。
Struts2、Spring和Hibernate应用实例
Struts2、Spring和Hibernate应用实例Struts作为MVC 2的Web框架,自推出以来不断受到开发者的追捧,得到广泛的应用。
作为最成功的Web框架,Struts自然拥有众多的优点:MVC 2模型的使用、功能齐全的标志库(Tag Library)、开放源代码。
而Spring的出现,在某些方面极大的方面了Struts的开发。
同时,Hibernate作为对象持久化的框架,能显示的提高软件开发的效率与生产力。
这三种流行框架的整合应用,可以发挥它们各自的优势,使软件开发更加的快速与便捷。
struts2发布已经很久了,但关于如何使用它的教程及实例并不多。
特别是与Spring 及Hibernate等流行框架的集成,并不多见。
现在就将笔者使用Myeclipse工具应用struts2 + spring2 + hibernate3 实现CRUD操作的步骤一一纪录下来,为初学者少走弯路略尽绵薄之力!在本文中,笔者将Struts2.0.6、Spring2.0.6和Hibernate3.1进行整合,希望通过这样的整合示例,让读者了解这些框架各自的特点,以便于在自己的项目中,根据实际情况,尽快的过渡到Struts2的时代。
本文的内容基于Struts2.0.6。
一、准备工作spring2与 1.x区别不大,可以平滑的过度,笔者也是把spring1.28换成了spring2.0.6,算是升级到spring 2.0了。
struts2基本就是webwork2.2,与以前的struts1.x可以说没任何关系了。
因为是第一次用struts2,也是第一次用webwork,所以有很多不完善,不规范的地方,还望大家来拍砖。
开发环境:MyEclipse5.0+Eclipse3.2+JDK5.0+Tomcat5.5+struts2+Spring2.0.6+Hibernate3.1。
本示例通过对一个图书进行管理的系统,提供基本的增加、删除、修改、查询等功能。
Spring+Ibatis集成开发实例
Spring+Ibatis集成开发实例⾸先简历数据库demo(本⽂选mysql)数据库脚本:CREATE TABLE `ibatis` (`id` varchar(20) NOT NULL,`name` varchar(20) default NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=gb2312;insert into ibatis values("1","1");insert into ibatis values("2","2");DAO接⼝:package ch10.SpringAndIbatis;import java.util.List;public interface IDAO {public List getList();public Ibatis getByName(String name);public Ibatis getById(String id);public void save(Ibatis ibatis);public void delete(String id);public void update(Ibatis ibatis);}Ibatis配置⽂件:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapConfigPUBLIC "-////DTD SQL Map Config 2.0//EN""/dtd/sql-map-config-2.dtd"><sqlMapConfig><sqlMap resource="ch10/SpringAndIbatis/Ibatis.xml"/></sqlMapConfig>ibatis sql map⽂件ibatis.xml:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMap PUBLIC "-////DTD SQL Map 2.0//EN" "/dtd/sql-map-2.dtd" > <sqlMap ><typeAlias type="ch10.SpringAndIbatis.Ibatis" alias="user"/><resultMap id="ibatisTest" class="user"><result column="id" property="id" jdbcType="VARCHAR"/><result column="name" property="name" jdbcType="VARCHAR"/></resultMap><!-- 获得全查询列表 --><select id="getAllUsers" resultMap="ibatisTest">select * from Ibatis</select><!-- 依据username获得⽤户对象 --><select id="getUsersByName" resultMap="ibatisTest">select * from Ibatis where name=#value#</select><!-- 依据id获得⽤户对象 --><select id="getUsersById" resultMap="ibatisTest">select * from Ibatis where id=#value#</select><!-- 新增⽤户对象 --><insert id="insertUsers" parameterClass="user">insert into ibatis (id,name) values (#id#,#name#)</insert><!-- 删除⽤户对象 --><delete id="deleteUsers">delete from ibatis where id=#value#</delete><!-- 更新⽤户对象 --><delete id="updateUsers" parameterClass="user">update ibatis set name=#name# where id=#id#</delete></sqlMap>spring配置⽂件<?xml version="1.0" encoding="UTF-8"?><beansxmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans /schema/beans/spring-bean s-2.0.xsd"><bean id="dataSource" class="mons.dbcp.BasicDataSource"><property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property><property name="username"><value>root</value></property><property name="password"><value>1234</value></property><property name="url"><value>jdbc:mysql://localhost:3306/spring</value></property></bean><bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"><!-- 此处应注⼊ibatis配置⽂件,⽽⾮sqlMap⽂件,否则会出现“there is no statement.....异常” --><property name="configLocation"><value>ch10/SpringAndIbatis/sqlMapConfig.xml</value></property></bean><bean id="testDAO" class="ch10.SpringAndIbatis.TestDAO"><property name="dataSource"><ref bean="dataSource"/></property><property name="sqlMapClient"><ref bean="sqlMapClient"/></property></bean></beans>DAO实现类:package ch10.SpringAndIbatis;import java.util.List;import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;public class TestDAO extends SqlMapClientDaoSupport implements IDAO {public void delete(String id) {getSqlMapClientTemplate().delete("deleteUsers", id);}public Ibatis getById(String id) {return (Ibatis)getSqlMapClientTemplate().queryForObject("getUsersById",id);}public Ibatis getByName(String name) {return (Ibatis)getSqlMapClientTemplate().queryForObject("getUsersByName",name); }public List getList() {return getSqlMapClientTemplate().queryForList("getAllUsers",null);}public void save(Ibatis ibatis) {getSqlMapClientTemplate().insert("insertUsers",ibatis);}public void update(Ibatis ibatis) {getSqlMapClientTemplate().update("updateUsers", ibatis);}}domain对象package ch10.SpringAndIbatis;public class Ibatis {private String id;private String name;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public Ibatis(){}public Ibatis(String id, String name) {super();this.id = id; = name;}}測试代码:package ch10.SpringAndIbatis;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test {/*** @param args*/public static void main(String[] args) {ApplicationContext context=new ClassPathXmlApplicationContext("ch10/SpringAndIbatis/applicationContext.xml"); TestDAO testDAOImpl=(TestDAO)context.getBean("testDAO");//获得全查询列表System.out.println("获得全查询列表");List result=new ArrayList();result=testDAOImpl.getList();for (Iterator iter = result.iterator(); iter.hasNext();) {Ibatis element = (Ibatis) iter.next();System.out.println(element.getName());}//依据username获得⽤户对象System.out.println("依据username获得⽤户对象");Ibatis ibatis=testDAOImpl.getByName("1");System.out.println(ibatis.getName());//依据id获得⽤户对象System.out.println("依据id获得⽤户对象");Ibatis ibatis1=testDAOImpl.getById("1");System.out.println(ibatis.getName());//新增⽤户对象System.out.println("-----------------");System.out.println("新增⽤户对象前");List result1=new ArrayList();result1=testDAOImpl.getList();for (Iterator iter = result1.iterator(); iter.hasNext();) {Ibatis element = (Ibatis) iter.next();System.out.println(element.getName());}testDAOImpl.save(new Ibatis("3","3")); //新增⽤户System.out.println("新增⽤户对象后");List result2=new ArrayList();result2=testDAOImpl.getList();for (Iterator iter = result2.iterator(); iter.hasNext();) {Ibatis element = (Ibatis) iter.next();System.out.println(element.getName());}System.out.println("-----------------");//删除⽤户对象System.out.println("-----------------");System.out.println("删除⽤户对象前");List result3=new ArrayList();result3=testDAOImpl.getList();for (Iterator iter = result3.iterator(); iter.hasNext();) {Ibatis element = (Ibatis) iter.next();System.out.println(element.getName());}testDAOImpl.delete("3"); //删除⽤户System.out.println("删除⽤户对象后");List result4=new ArrayList();result4=testDAOImpl.getList();for (Iterator iter = result4.iterator(); iter.hasNext();) {Ibatis element = (Ibatis) iter.next();System.out.println(element.getName());}System.out.println("-----------------");//更新⽤户对象System.out.println("-----------------");System.out.println("更新⽤户对象前");List result5=new ArrayList();result5=testDAOImpl.getList();for (Iterator iter = result5.iterator(); iter.hasNext();) { Ibatis element = (Ibatis) iter.next();System.out.println(element.getName());}Ibatis ibatis3=testDAOImpl.getById("1");ibatis3.setName("new1");testDAOImpl.update(ibatis3);//更新⽤户对象System.out.println("更新⽤户对象后");List result6=new ArrayList();result6=testDAOImpl.getList();for (Iterator iter = result6.iterator(); iter.hasNext();) { Ibatis element = (Ibatis) iter.next();System.out.println(element.getName());}System.out.println("-----------------");}}測试结果:获得全查询列表12依据username获得⽤户对象1依据id获得⽤户对象1-----------------新增⽤户对象前12新增⽤户对象后123----------------------------------删除⽤户对象前123删除⽤户对象后12----------------------------------更新⽤户对象前12更新⽤户对象后new12-----------------。
Struts2+Spring3+Hibernate3 集成方法
Struts2+Spring3+Hibernate3 集成 目 录 1.Struts2集成 ..................................................... 11.1. 把Struts提供的jar包拷贝到/WEB-INF/lib/目录下 (1)1.2. 在web.xml中配置Struts的过滤器 (2)2.Struts2开发 ..................................................... 22.1 编写Struts Action程序,需要继承ActionSupport (2)2.2 创建struts.xml的Action映射文件 (3)3.Struts2+Spring集成 .............................................. 33.1 按第1步“Struts2集成”方法集成Struts2 (3)3.2 再把Struts的Spring插件把拷贝到/WEB-INF/lib/目录下 (3)3.3 把Spring提供的jar拷贝到/WEB-INF/lib/目录下 (3)3.4 web.xml配置Spring的过滤器 (3)3.5 创建applicationContext.xml配置文件 (4)4.Struts2+Spring+Hibernate集成 ..................................... 54.1 先按照“Struts2+Spring集成”方法执行 (5)4.2 导入Apache Commons几个jar包 (5)4.3 导入Hibernate几个jar包 (5)4.4 数据库的JDBC驱动 (5)4.5 在applicationContext.xml中加入如下的配置 (5)4.6 创建hibernate.cfg.xml文件 (6)5.Struts2+Spring+Hibernate开发 ..................................... 65.1 编写Model类 (6)5.2 编写Model类的HBM映射文件 (7)5.3 在applicationContext.xml中指定HBM映射文件路径 (8)5.4 编写DAO接口和实现类程序,并继承HibernateDaoSupport (8)5.5 在applicationContext.xml中配置DAO Bean (10)6.注意事项 ....................................................... 101. Struts2集成1.1.把Struts提供的jar包拷贝到/WEB-INF/lib/目录下Struts需要如下几个包:解压:struts-2.2.3.1-lib.zip需要:struts2-core-2.2.3.1.jarxwork-core-2.2.3.1.jarognl-3.0.1.jarfreemarker-2.3.16.jarjavassist-3.11.0.GA.jar和所有以“commons-”开头的包。
struts2+spring+hibernate整合步骤
引用struts2、hibernate、spring所需jar包struts-core-2.x.x.jar ----struts核心包xwork-core-2.x.x.jar -----身体ruts在其撒很难过构建ognl-2.6.x.jar ----对象导航语言freemarker-2.3.x.jar ------struts2的ui标签的模板使用commons-fileupload-1.2.x.jar ----文件上传组件 2.1.6版本后需加入此文件struts-spring-plugin-2.x.x.jar ---用于struts2继承spring的插件hibernate核心安装包下的(下载路径:/ ,点击Hibernate Core 右边的download)hibernate2.jarlib\bytecode\hibernate-cglib-repack-2.1_3.jarlib\required\*.jarhibernate安装包下的(下载路径:/;点击Hibernate Annotations 右边的下载)hibernate-annotations.jarlib\ejb3-persistence.jar、hibernate-commons-annotations.jar hibernate针对JPA的实现包(下载路径:/ ,点击Hibernate Entitymanager右边下载)hibernate-entitymanager.jarlib\test\log4j.jar、 slf4j-log4j12.jarspring安装包下的dist\spring.jarlib\c3p0\c3p0-0.9.1.2.jarlib\aspecti\aspectjweaver.jaraspectjrt.jarlib\colib\cglib-nodep-2.1_3.jarlib\j2ee\common-annotations.jarvlib\log4j\log4j-1.2.15.jarlib\jakarta-commons\commons_loggin.jar数据库驱动包引用创建mysql数据库ssh 设置编码为utf-8 语句:create database ssh character set 'utf8' collate 'utf8_general_ci'引用1.先整合spring和hibernate*将spring和hibernate的jar包放入lib下;*创建spring的beans.xml配置文件Java代码1.<?xml version="1.0" encoding="UTF-8"?>2.<beans xmlns="/schema/beans"3. xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"4. xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"5. xsi:schemaLocation="/schema/beans6./schema/beans/spring-beans-2.5.xsd7. /schema/context8./schema/context/spring-context-2.5.xsd 9. /schema/aop/schema/aop/spring-aop-2.5.xsd10. /schema/tx/schema/tx/spring-tx-2.5.xsd">11.12. <!-- 将bean交由spring管理可以用<bean></bean>和扫描加注 -->13. <!--14. 扫描该包及该包下的子包15. -->16. <context:component-scanbase-package="com.yss"></context:component-scan>17.18.19. <!-- 集成hibernate sessionFactory单例模式线程安全创建耗内存-->20. <!-- 将hibernate的事务也交由spring管理 -->21. <bean id="dataSource"class="boPooledDataSource"22. destroy-method="close">23. <property name="driverClass"value="org.gjt.mm.mysql.Driver" />24. <property name="jdbcUrl"25.value="jdbc:mysql://localhost:3306/ssh?useUnicode=true&characterE ncoding=UTF-8" />26. <property name="user" value="root" />27. <property name="password" value="root" />28. <!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize 之间。
Ibatis,Spring整合(注解方式注入)
Ibatis,Spring整合(注解⽅式注⼊)${原来姹紫嫣红开遍,似这般都付与扣钉⼋哥}<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance" xmlns:p="/schema/p"xmlns:context="/schema/context"xmlns:aop="/schema/aop" xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-2.5.xsd/schema/tx/schema/tx/spring-tx-2.5.xsd/schema/aop/schema/aop/spring-aop-2.5.xsd/schema/context/schema/context/spring-context-2.5.xsd"><!-- ⾃动扫描Bean --><context:component-scan base-package="com.tq365"/><!-- 强制使⽤CGLIB代理 --><aop:aspectj-autoproxy proxy-target-class="true"/><!-- DataSource数据源 --><bean id="dataSource" class="mons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property><property name="url"><value>jdbc:mysql://localhost:3306/ibatisorm</value></property><property name="username"><value>root</value></property><property name="password"><value>root</value></property></bean><!-- Spring iBatis SqlMapClient --><bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"><property name="configLocation" value="WEB-INF/sqlmap-config.xml"/><property name="dataSource" ref="dataSource"/></bean><!--事务管理DataSourceTransactionManager--><bean id="txManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!--启动spring注解功能--><tx:annotation-driven transaction-manager="txManager" /> <aop:config> <aop:pointcut id="baseServiceMethods" expression="execution(* com.tq365.samples.ibatis.dao.*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="baseServiceMethods" /> </aop:config><aop:aspectj-autoproxy /> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="select*" read-only="true" propagation="REQUIRED" /> <tx:method name="find*" read-only="true" propagation="REQUIRED" /> <tx:methodname="save*" propagation="REQUIRED" isolation="REPEATABLE_READ" /> <tx:method name="update*" propagation="REQUIRED" isolation="REPEATABLE_READ" /> <!-- <tx:method name="add*" propagation="REQUIRED" isolation="REPEATABLE_READ" /> --> <tx:method name="delete*" propagation="REQUIRED" isolation="REPEATABLE_READ" /> </tx:attributes> </tx:advice></beans><?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMapConfig PUBLIC "-////DTD SQL Map Config 2.0//EN" "/dtd/sql-map-config-2.dtd"><sqlMapConfig><sqlMap resource="com/tq365/sqlMap/User.xml"/></sqlMapConfig>User.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMap PUBLIC "-////DTD SQL Map 2.0//EN" "/dtd/sql-map-2.dtd"> <sqlMap namespace="User"><typeAlias alias="User" type="er"/><resultMap id="UserResult" class="User"><result property="id" column="id"/><result property="username" column="username"/><result property="address" column="address"/><result property="userpwd" column="userpwd"/></resultMap><insert id="addUser">insert user(username,userpwd,address)values(#username#,#userpwd#,#address#)</insert><select id="findUser" resultMap="UserResult">select * from user WHERE username=#username# and userpwd=#userpwd#</select><select id="findUserById" resultMap="UserResult">select * from user WHERE id=#id#</select><!-- User表内记录总条数 --><select id="getTotalCount" resultClass="int">select count(*) from user</select><select id="findAllPageUser" resultMap="UserResult">select * from user limit #start#,5</select></sqlMap>UserDAO.java接⼝package com.tq365.samples.ibatis.dao;import org.springframework.stereotype.Repository;import er;import com.tq365.sqmples.util.Pages;/*** UserDAO 接⼝*/@Repositorypublic interface UserDAO {/*** 通过ID查询* @param id* @return*/public User findUserById(int id);/*** 通过ID删除* @param id*/public void deleteUserById(int id);public void addUser(User user);/*** 查询指定的User对象* @param user* @return*/public User findUser(User user);/*** 通过⽤户名分页查询* @param username* @return*/public Pages<User> findUsersByUsername(String username,int pageNo);/*** 所有User对象分页* @param pageNo* @return*/public Pages<User> findAllPageUser(int pageNo);}BaseDao.javapackage com.tq365.samples.ibatis.dao;import javax.annotation.PostConstruct;import javax.annotation.Resource;import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;import com.ibatis.sqlmap.client.SqlMapClient;/*** BaseDao,Dao需继承此Dao* @author archie2010* since 2011-3-3 下午02:52:36*/public class BaseDao extends SqlMapClientDaoSupport{@Resource(name = "sqlMapClient")private SqlMapClient sqlMapClient;@PostConstructpublic void initSqlMapClient(){super.setSqlMapClient(sqlMapClient);}}@PostConstruct注解在⽅法上加上注解@PostConstruct,这个⽅法就会在Bean初始化之后被Spring容器执⾏(注:Bean初始化包括,实例化Bean,并装配Bean的属性(依赖注⼊))。
基于Struts+Spring+iBATIS的轻量级Web应用框架研究
S nQ a g S nL n qn QuX abn u i u o gig n i i i o
( ol efI om tna dEetcl nier g,hn gi l rlU i r t B  ̄n 00 3, hn ) C lg n rai n l r a E gnei C iaA r ut a n esy,ei 1 0 8 C i e o f o ci n c u v i ig a
1 1 表示 层框 架 .
表 现 层 框 架 主 要 有 Srt t s和 T psy Srt 框 架 在 创 建 u aet 。 t s r u We 用 时层 , 是 在 JP Moe b应 它 S dl 2
孙 强 孙龙清 邱小彬
( 国农 业 大 学 信 息 与 电 气 工 程 学 院 中
( 国农 业 大 学 网 络 中 心 中
北 京 10 8 ) 0 0 3
北 京 10 8 ) 00 3
摘 要
在 分析 基 于 J E 的重 量 级 We 用 系 统开 发 面 临 的 一 系 列 问题 的 基 础 上 , 当前 流 行 的 We 用 框 架 进 行 比较 , 出 2E b应 对 b应 给
基于 Srt,p n iA I t sS r g和 B TS的轻量级开发策略 , u i 简称 “ S” S i 。通过 对三种框架技术特点 的分析 , 设计 出集成 三种框 架技术 的 We b应 用框架, 并通过一个 成功案例 , 对开发过程 中几个 关键 点的实现进 行阐述 , 为采用 此集成框 架进 行 We b应用 系统 的设 计与开发提供
同, 就是根据项 目特点 , 在表示 层 、 务层和 持久层分别选 取合 业
0 引 言
JE 2 E完整地定义 了一 个标 准的应 用开 发体 系结构 和部 署
原创Struts+Spring+hibernate框架整合步骤(多图)
Struts框架应用步骤第1步:向web应用程序添加struts框架的功能注意:必须要选中项目的根节点第2步:创建一个普通的类,一般都归放在web层的包中。
第3步:在类中定义前台页用户输入的数据项,并为这些数据项提供get/set方法第4步:再定义一个处理业务请求的方法,该方法返回String类型第5步:将这个定义了数据项和业务处理方法的类,在struts.xml中注册第6步:编写前台JSP页面,并导入Struts标签库,并且把form的action属性填写上面配置的action的name值Spring框架应用步骤第1步:选中根节点,选spring框架,如下图第2步:在web.xml文件中加上以下代码<listener><listener-class>org.springframework.web.context.ContextLoaderL istener</listener-class></listener>第3步:在spring的配置文件applicationContext.xml中注册各层的对象注意:每层的对象注册时,如果该对象还有属性依赖别的对象,应该为这个属性生成get/set 方法第4步:在struts配置文件加上以下代码,用以交出对象的控制权<constant name="struts.objectFactory"v alue="spring"></constant><include file="struts-default.xml"></include>第5步:修改struts的action的class属性,使之与spring中的对象id属性值对应第6步:将applicationContext.xml复制到WEB-INF目录下,就可以部署启动了。
