首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Struts2+Spring2.5+Ibatis2.3图书治理

2012-10-26 
Struts2+Spring2.5+Ibatis2.3图书管理看了Ibatis也有好长时间啦,一直也没有和Struts2+Spring2.5进行整合,

Struts2+Spring2.5+Ibatis2.3图书管理
   看了Ibatis也有好长时间啦,一直也没有和Struts2+Spring2.5进行整合,今天也没有什么任务,写一个简单的例子和大家一起分享下。
   首先建立一下简单的数据库表:sbook

drop table if exists sbook;create table if not exists sbook(id int primary key auto_increment,title varchar(50),author varchar(20),total int,price float,isbn varchar(20),publisher varchar(50));

   在MyEclipse建立Web工程springibatis,然后把工程所要使用的Jar文件导入:
antlr-2.7.2.jaraspectjweaver.jarcommons-collections.jarcommons-dbcp.jarcommons-logging-1.0.4.jarcommons-pool.jar//Ibatis整体Jar文件ibatis-2.3.0.677.jar//Mysql JDBC驱动mysql-connector.jar//Spring整体包spring.jar            //struts2必须               freemarker-2.3.8.jar   //struts2必须ognl-2.6.11.jar       //struts2核心包struts2-core-2.0.11.2.jar//struts2整合Spring插件  struts2-spring-plugin-2.0.11.2.jar //struts2必须xwork-2.0.5.jar 

以上就是工程中所用到的全部Jar文件。
    现在在Web.xml文件里面为Spring和Struts2做必要的配置:
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" 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_2_5.xsd"><!-- 配置Spring --><context-param><param-name>contextConfigLocation</param-name><param-value>WEB-INF/classes/com/us/jack/config/applicationContext.xmlWEB-INF/classes/com/us/jack/config/applicationContext-services.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 配置Struts2 --><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>

    好了现在Web.xml文件已经配置完成啦。
    现在转入真正要写代码的地方啦。
   首先为sbook表建立必要发POJO类:
package com.us.jack.pojo;/** * 图书类 * @author jack * */public class SBook {private int id;private String title;private String author;private int total;private float price;private String isbn;private String publisher;         //下面是Getter和Setter方法         ……}

这里的属性和数据库sbook表的字段是一一对应的,当然你也可以改成自己想要的字段,在控制此POJO类的XMl文件里做到数据库字段的映射即可。
   
现在请注意啦,到Spring和Ibatis集成配置的关键地方啦:
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"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><bean id="dataSource"value="com.mysql.jdbc.Driver" /><property name="url"value="jdbc:mysql://localhost:3306/ibatisstudy" /><property name="username" value="root" /><property name="password" value="jack" /></bean><!-- SqlMap setup for iBATIS Database Layer --><bean id="sqlMapClient"/><property name="dataSource" ref="dataSource" /></bean><!-- 注入BookDAO层 --><bean id="sbookDAO" ref="sqlMapClient" /></bean></beans>

其中sqlMapConfig.xml文件配置Ibatis操作:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"    "http://www.ibatis.com/dtd/sql-map-config-2.dtd"><sqlMapConfig><sqlMap resource="com/us/jack/dao/impl/maps/SBook.xml"/></sqlMapConfig>

此处仅用到了SBook.xml文件,所以只需要导入此文件即可,下面来看一下真正处理数据库操作的SBook.xml文件的信息:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sqlMap          PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"          "http://ibatis.apache.org/dtd/sql-map-2.dtd"><sqlMap><typeAlias alias="sbook" type="com.us.jack.pojo.SBook" /><!-- 添加一本新书 --><insert id="saveBook" parameterresultparameterparameterparameterresultparameterparameterresultname="code"><?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:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"><bean id="sbookServices" ref="sbookDAO"/></bean><!-- 将BookAction交给Spring控制 --><bean id="sbookAction" ref="sbookServices"/></bean><!-- Transaction manager for a single JDBC DataSource --><bean id="transactionManager"ref="dataSource" /></bean><aop:config><!-- 管理事务操作 --><aop:pointcut id="servicesPointcut"expression="execution(* com.us.jack.services.*.*(..))" /><aop:advisor advice-ref="txAdvice"pointcut-ref="servicesPointcut" /></aop:config><!-- 事务控制 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="save*" propagation="REQUIRED" /><tx:method name="update*" propagation="REQUIRED" /><tx:method name="remove*" propagation="REQUIRED" /><tx:method name="get*" read-only="true" /></tx:attributes></tx:advice></beans>

上面是对Spring事务和业务层的控制配置。
剩下的就是对DAO层和Services层以及Action层啦,这里就不在对此部分内容进行详细描述啦,如果感兴趣的朋友,请下载源代码查看。 1 楼 jy02411368 2008-09-29   以后不断的推出好的 例子 另外JACK我想建议一下 尽量把代码写规范 例如你在开发项目的时候一个登陆 需要坐许多 例如会话跟踪之类的 希望能写全一点 这样看起来更实用 谢谢你的无私奉献!!! 2 楼 largelove 2008-10-01   看上楼上说会话跟踪,我突然有个问题,一直不太明白。请问session的保存需要多少内存? 还有这个内存是占用服务器本身的内存还是占用jvm的内存?

如果是占用jvm内存,如果我有1000个人甚至10000个,那jvm内存不是很快就用完了? 3 楼 largelove 2008-10-01   weblogic jvm内存设置好像是2.2G左右。tomcat,jboss不知道多少。我这里有一个应用,一群程序员把数据取出来生成excel,然后3个人同时访问jvm就高达1G,应用没办法跑,后来限制weblogic queue,就是那个页面只能跑一个queue,其他人是进不来的。 4 楼 coolstar648 2008-10-08   楼主的例子很好啊。 5 楼 caipanjin 2008-10-09   楼主既然用Spring 2.5,为什么不用一下Annotation方式的IoC呢 6 楼 pobaby 2008-10-30   caipanjin 写道楼主既然用Spring 2.5,为什么不用一下Annotation方式的IoC呢

楼主的jar包是2.0 不是spring2.5,2.5的新特性估计还不是太多人使用。
7 楼 InnocentBoy 2008-10-30   学习中...... 8 楼 javajdbc 2009-04-20   2.0 和 2.5 有什么区别没 ?
9 楼 walle1027 2009-04-21   caipanjin 写道楼主既然用Spring 2.5,为什么不用一下Annotation方式的IoC呢
annotation虽然好用,但是也要改代碼。
10 楼 mikeandmore 2009-04-21   话说这个应该算不上企业应用吧。。。

PS。听说图书馆的管理系统是COBOL派一直控制着。。。嗯嗯。 11 楼 aquleo 2009-04-21   不错的例子...学习了... 12 楼 InnocentBoy 2009-04-30   支持楼主,确实是不错的,至少可以帮助很多学习者! 13 楼 haishou520 2009-05-31   也学习一下吧。 14 楼 wuhongyu 2009-06-15   不错的小例子,正在学这个,听说我们的下个项目是struts2+spring+ibatis,这里感谢了先 15 楼 wx_hello 2011-12-15   哈哈。。谢啦。。 16 楼 xuyoubin1987 2012-06-11   谢了  支持楼主

热点排行