- 浏览: 185050 次
- 性别:
- 来自: 郑州
文章分类
最新评论
-
youngbird221:
楼主有答案了么
ERROR JDBCTransaction : Could not toggle autocommi -
xuyoubin1987:
谢了 支持楼主
Struts2+Spring2.5+Ibatis2.3图书管理 -
wx_hello:
哈哈。。谢啦。。
Struts2+Spring2.5+Ibatis2.3图书管理 -
zhuzhijia:
为啥跟图片的高度有关?请教
JavaScript——延迟加载技术 -
zhameng:
...
JavaScript——延迟加载技术
看了Ibatis也有好长时间啦,一直也没有和Struts2+Spring2.5进行整合,今天也没有什么任务,写一个简单的例子和大家一起分享下。
首先建立一下简单的数据库表:sbook
在MyEclipse建立Web工程springibatis,然后把工程所要使用的Jar文件导入:
以上就是工程中所用到的全部Jar文件。
现在在Web.xml文件里面为Spring和Struts2做必要的配置:
好了现在Web.xml文件已经配置完成啦。
现在转入真正要写代码的地方啦。
首先为sbook表建立必要发POJO类:
这里的属性和数据库sbook表的字段是一一对应的,当然你也可以改成自己想要的字段,在控制此POJO类的XMl文件里做到数据库字段的映射即可。
现在请注意啦,到Spring和Ibatis集成配置的关键地方啦:
applicationContext.xml
其中sqlMapConfig.xml文件配置Ibatis操作:
此处仅用到了SBook.xml文件,所以只需要导入此文件即可,下面来看一下真正处理数据库操作的SBook.xml文件的信息:
applicationContext-services.xml处理业务层和事务控制:
上面是对Spring事务和业务层的控制配置。
剩下的就是对DAO层和Services层以及Action层啦,这里就不在对此部分内容进行详细描述啦,如果感兴趣的朋友,请下载源代码查看。
annotation虽然好用,但是也要改代碼。
楼主的jar包是2.0 不是spring2.5,2.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.jar aspectjweaver.jar commons-collections.jar commons-dbcp.jar commons-logging-1.0.4.jar commons-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.xml WEB-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" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" 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" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <!-- 特别注意此处,如果做单元测试的话,请把“WEB-INF/classes/”去掉,否则会报找不到sqlMapConfig.xml文件 --> <property name="configLocation" value="WEB-INF/classes/com/us/jack/config/sqlMapConfig.xml" /> <property name="dataSource" ref="dataSource" /> </bean> <!-- 注入BookDAO层 --> <bean id="sbookDAO" class="com.us.jack.dao.impl.SBookDAO"> <property name="sqlMapClient" 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" parameterClass="sbook"> <selectKey keyProperty="id" resultClass="int"> <![CDATA[ SELECT LAST_INSERT_ID() AS VALUE ]]> </selectKey> <![CDATA[ INSERT INTO sbook(title,author,total,price,isbn,publisher) VALUES(#title#,#author#,#total#,#price#,#isbn#,#publisher#) ]]> </insert> <!-- 删除图书 --> <delete id="deleteBook" parameterClass="int"> <![CDATA[ DELETE FROM SBOOK WHERE ID=#id# ]]> </delete> <!-- 通过出版社名称查找此出版社出版的图书 --> <select id="findBookByPublisher" parameterClass="string" resultClass="sbook"> <![CDATA[ SELECT * FROM sbook WHERE publisher=#publisher# ]]> </select> <!-- 通过图书唯一的ISBN号码查找图书 --> <select id="findBookByISBN" parameterClass="string" resultClass="sbook"> <![CDATA[ SELECT * FROM sbook WHERE isbn=#isbn# ]]> </select> <!-- 查找所有的图书 --> <select id="findAllBook" resultClass="sbook"> <![CDATA[ SELECT * FROM sbook ]]> </select> <!-- 更新图书信息 --> <update id="updateBook" parameterClass="sbook"> <![CDATA[ UPDATE SBOOK SET title=#title#,author=#author#,price=#price#,total=#total#,isbn=#isbn#,publisher=#publisher# WHERE id=#id# ]]> </update> <!-- 查找特定图书 --> <select id="findBookById" parameterClass="int" resultClass="sbook"> <![CDATA[ SELECT * FROM sbook WHERE ID=#id# ]]> </select> </sqlMap>
applicationContext-services.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: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.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <bean id="sbookServices" class="com.us.jack.services.impl.SBookServices"> <property name="sbookDAO" ref="sbookDAO"/> </bean> <!-- 将BookAction交给Spring控制 --> <bean id="sbookAction" class="com.us.jack.action.SBookAction"> <property name="sbookServices" ref="sbookServices"/> </bean> <!-- Transaction manager for a single JDBC DataSource --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" 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层啦,这里就不在对此部分内容进行详细描述啦,如果感兴趣的朋友,请下载源代码查看。
- springibatis.rar (9 MB)
- 下载次数: 17419
评论
16 楼
xuyoubin1987
2012-06-11
谢了 支持楼主
15 楼
wx_hello
2011-12-15
哈哈。。谢啦。。
14 楼
wuhongyu
2009-06-15
不错的小例子,正在学这个,听说我们的下个项目是struts2+spring+ibatis,这里感谢了先
13 楼
haishou520
2009-05-31
也学习一下吧。
12 楼
InnocentBoy
2009-04-30
支持楼主,确实是不错的,至少可以帮助很多学习者!
11 楼
aquleo
2009-04-21
不错的例子...学习了...
10 楼
mikeandmore
2009-04-21
话说这个应该算不上企业应用吧。。。
PS。听说图书馆的管理系统是COBOL派一直控制着。。。嗯嗯。
PS。听说图书馆的管理系统是COBOL派一直控制着。。。嗯嗯。
9 楼
walle1027
2009-04-21
caipanjin 写道
楼主既然用Spring 2.5,为什么不用一下Annotation方式的IoC呢
annotation虽然好用,但是也要改代碼。
8 楼
javajdbc
2009-04-20
2.0 和 2.5 有什么区别没 ?
7 楼
InnocentBoy
2008-10-30
学习中......
6 楼
pobaby
2008-10-30
caipanjin 写道
楼主既然用Spring 2.5,为什么不用一下Annotation方式的IoC呢
楼主的jar包是2.0 不是spring2.5,2.5的新特性估计还不是太多人使用。
5 楼
caipanjin
2008-10-09
楼主既然用Spring 2.5,为什么不用一下Annotation方式的IoC呢
4 楼
coolstar648
2008-10-08
楼主的例子很好啊。
3 楼
largelove
2008-10-01
weblogic jvm内存设置好像是2.2G左右。tomcat,jboss不知道多少。我这里有一个应用,一群程序员把数据取出来生成excel,然后3个人同时访问jvm就高达1G,应用没办法跑,后来限制weblogic queue,就是那个页面只能跑一个queue,其他人是进不来的。
2 楼
largelove
2008-10-01
看上楼上说会话跟踪,我突然有个问题,一直不太明白。请问session的保存需要多少内存? 还有这个内存是占用服务器本身的内存还是占用jvm的内存?
如果是占用jvm内存,如果我有1000个人甚至10000个,那jvm内存不是很快就用完了?
如果是占用jvm内存,如果我有1000个人甚至10000个,那jvm内存不是很快就用完了?
1 楼
jy02411368
2008-09-29
以后不断的推出好的 例子 另外JACK我想建议一下 尽量把代码写规范 例如你在开发项目的时候一个登陆 需要坐许多 例如会话跟踪之类的 希望能写全一点 这样看起来更实用 谢谢你的无私奉献!!!
发表评论
-
分类排序方法——上移下移操作(Java版)
2009-11-27 19:03 6882最近项目中遇到了上移下移操作的一个操作,以前也看到 ... -
分类排序方法——上移下移操作(ASP版)
2009-11-27 10:34 1821最近项目中遇到了上移下移操作的一个操作,以前也看到过,但一 ... -
Mapabc——地图标注
2009-08-31 10:21 1982项目中使用到了地图标注的功能(mapabc),现在将代码共享出 ... -
表单常用JS验证
2009-08-31 08:21 1251在Web项目中,总会或多或少的使用的Form表单,包含空字符及 ... -
Internet Explorer无法打开站点,已终止操作
2008-12-28 14:28 3172在页面还没有ready的时候就调用了htmlObject的ap ... -
Struts2+Spring2.5+Ibatis2.3图书管理加强版-输入校验、国际化
2008-09-28 11:50 1798昨天写了个基础的Struts+Spring+Ibatis ... -
IBatis简单实现(附主键自动生成)
2008-09-13 11:21 6919有一段没有更新博客啦,还请各位原谅。 这段时间一直 ... -
电子地图--MapABC研究(三)为地图上添加点并得到中心坐标
2008-08-28 10:56 2333出于项目的需要,还要继续对MapABC进行研究,昨天看了 ... -
电子地图--MapABC研究(二)地图编辑
2008-08-26 14:09 1937这是电子地图研究的第二部分。 普通用户使用地图无非就是 ... -
电子地图--MapABC研究(一)
2008-08-26 08:48 1744回头想想做J2EE也有一年多啦,这一年中一经历了很多很多, ... -
Dwr2+Struts2+Spring2.5+Hibernate3完美整合--用户登录注册系统
2008-08-23 09:51 7895用户注册和登录是每个系统的必须存在的一部分,基于Dwr+S ...
相关推荐
*架构struts2_spring2.5_ibatis2.3 *mysql5.0 *jdk 1.6 *带有所有jar包,可直接运行 本实例实现了用户登陆,用户信息CRUD相关操作。让你感受到了ibatis做o/r mapping的方便快捷。 下次集成dwr进来 create ...
struts2+spring2.5+ibatis
Struts2+Spring2.5+Ibatis2.3完成的架构,项目中有完整的sql文件和源码,并有详细注释!包含了常用的方法和数字分页的算法
SSI项目实例,采用struts2.18+spring2.5+ibatis2.3实现,帮助需要帮助的朋友
struts2 + spring2.5 + ibatis2.3.4整合包文件,包括了SSI框架整合开发所需的全部文件
一个基于struts2.18+spring2.5+ibatis2.3的SSI项目示例。需要的jar包自己添加
SSI2 Struts2+Spring2.5+IBatis2 配置 log4j.jar 版本不能低于1.2.13 此处为1.2.16,否则报FileNotFound异常
Ext2.0+struts2+spring2.5+ibatis2 结合的例子
struts-2.0.11+spring-2.5+ibatis-2.3及其它各种jar包
Struts2.0+Springframework2.5+ibatis2.3完美整合实例
参照jpetstore做出的Struts1.1+spring2.5+ibatis2.3+Ajax的整合、从页面输入学生的Id、光标离开后、页面利用无刷新技术从数据库取出显示在页面上。
struts2+spring+Ibatis框架包
分为:struts2.1.8 + spring 2.5 + ibatis 2 整合开发包_ _01部分 struts2.1.8 + spring 2.5 + ibatis 2 整合开发包_ _02部分 只要将这两个包全下载下来,就可以搭建struts2.1.8 + spring 2.5 + ibatis2整合开发的...
分为:struts2.1.8 + spring 2.5 + ibatis 2 整合开发包_ _01部分 struts2.1.8 + spring 2.5 + ibatis 2 整合开发包_ _02部分 只要将这两个包全下载下来,就可以搭建struts2.1.8 + spring 2.5 + ibatis2整合开发的...
struts1.3+spring2.5+ibatis2.3.4整合
Ibatis2.3,Struts1.3,Spring2.5框架整合简单实例代码,用了一周的业余时间,终于调通了。有需要的可以下载。
本演示示例主要使用目前最新,最流行技术Struts2.1 +Spring 2.5.1+ibatis2.3整合开发而成,这与我以前发布的版本中最大特色是整合了Spring2.5.1中的注解功能和半自动化工具ibatis技术,这是本示例的两大特色,简化了配置...
ssi项目实例,采用struts2.18、spring2.5、ibatis2.3实现
struts1.1+spring2.0+ibatis2.3简单新闻发布系统
整合了Ibatis+struts2.0+Spring2.5的增、删、改、查和调用存储过程