- 浏览: 3122647 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (372)
- diy (4)
- linux (19)
- 杂项 (30)
- Swing (21)
- Java2D (21)
- Java3D (5)
- JavaIO (9)
- Java通讯 (5)
- Java设计模式 (3)
- Java多媒体 (0)
- Java算法 (7)
- Spring&EJB (29)
- Javaoffice (4)
- web前端 (23)
- javascript (1)
- php基础 (1)
- eclipse (3)
- 网站相关 (3)
- Apache (4)
- seo (12)
- db (28)
- server (3)
- api (4)
- 异常 (12)
- 计算机网络词汇表 (3)
- 随想录 (52)
- 收藏 (17)
- 犹太人的智慧 (3)
- 多线程 (1)
- jfreechart (7)
- Test (1)
- SorLib (30)
- ruby on rails (1)
最新评论
-
houyutao:
二三四都是错的空字符串也被匹配,*应该改成+
Java中判断字符串是否为数字的五种方法 -
mingyun:
但是 java.util.ArrayList 实现了 remo ...
java.lang.UnsupportedOperationException 解决方案 -
mingyun:
1.因为 Arrays.asList 返回的是 Arrays内 ...
java.lang.UnsupportedOperationException 解决方案 -
leolu007:
用java8新特性String testStr = " ...
java.lang.UnsupportedOperationException 解决方案 -
zhaohuaxishiwzw:
我之前所在的项目就是日本一家证券公司的项目。完全使用的是j2e ...
抛弃EJB(EJB2.0,EJB3.0,EJB4.0)
OR Mapping的思想相信不用多说大家都明白了,在这里我选择的是ibatis由于手动的控制事务会带来很多额外的工作,同时也没有很好的体现面向对象的思想,因而利用ibatis整合spring ;由于要注意的细节非常多现在整理核心步骤如下:
配置前需把ibatis的jar导入到工程,这里从略
一 web.xml的配置
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" 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"> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>InserttoDBServlet</servlet-name> <servlet-class>service.InserttoDBServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>InserttoDBServlet</servlet-name> <url-pattern>/InserttoDBServlet</url-pattern> </servlet-mapping> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:applicationContext.xml </param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.ActionServlet </servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>TestServlet</servlet-name> <servlet-class>test.TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/servlet/TestServlet</url-pattern> </servlet-mapping> <filter> <filter-name>ExtFilter</filter-name> <filter-class>filter.ExtFilter</filter-class> </filter> <filter-mapping> <filter-name>ExtFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
二 applicationContext.xml文件的配置
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource_oracle" /> </bean> <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/test" /> <property name="username" value="root" /> <property name="password" value="root" /> <property name="initialSize" value="1" /> <property name="maxActive" value="4" /> </bean> <bean id="dataSource_oracle" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="oracle.jdbc.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@192.168.100.235:1521:mpptest" /> <property name="username" value="gmcc" /> <property name="password" value="skywin" /> <property name="initialSize" value="1" /> <property name="maxActive" value="4" /> </bean> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation" value="classpath:sqlmap-config.xml" /> <property name="dataSource" ref="dataSource_oracle" /> </bean> <bean id="baseTxService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <property name="transactionManager" ref="transactionManager" /> <property name="proxyTargetClass" value="true" /> <property name="transactionAttributes"> <props> <prop key="insert*">PROPAGATION_REQUIRED</prop> <prop key="query*">readOnly</prop> <prop key="get*">readOnly</prop> <prop key="del*">PROPAGATION_REQUIRED</prop> <prop key="update*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <bean id="studentDao" class="dao.StudentDaoImpl"> <property name="sqlMapClient" ref="sqlMapClient"></property> </bean> <bean id="studentService" class="service.StudentServiceImpl"> <property name="studentDao" ref="studentDao"></property> </bean> <bean id="studentServiceProxy" parent="baseTxService"> <property name="target" ref="studentService"></property> </bean> <bean id="treeService" class="service.TreeServiceImpl_map"> <property name="treeDao" ref="treeDao"></property> </bean> <bean id="treeServiceProxy" parent="baseTxService"> <property name="target" ref="treeService"></property> </bean> <bean id="treeDao" class="dao.TreeDaoImpl"> <property name="sqlMapClient" ref="sqlMapClient"></property> </bean> <bean id="xmlTreeService" class="service.XmlTreeServiceImpl"></bean> </beans>
三 sqlmap-config.xml 文件配置
<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <sqlMap resource="student_oracle.xml" /> <sqlMap resource="treeNode_oracle.xml" /> </sqlMapConfig>
四 ormpping文件的配置(student_oracle.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 namespace="Student_oracle"> <resultMap id="result" class="entity.Student"> <result property="stuId" column="id" columnIndex="1" /> <result property="name" column="stuname" columnIndex="2" /> <result property="password" column="stupassword" columnIndex="3" /> </resultMap> <insert id="insertToDb"> insert into test_qjk_stu(id,stuname,stupassword)values(#stuId#,#name#,#password#) </insert> <insert id="insertTest"> <selectKey resultClass="Integer" keyProperty="stuId"> SELECT test_qjk_stu_seq.nextval FROM DUAL </selectKey> insert into test_qjk_stu(id,stuname,stupassword)values(#stuId#,#name#,#password#) </insert> </sqlMap>
五 实体bean代码
package entity; import java.util.Date; public class Student { private Integer stuId; private String name; private Date birthday; private String sex; private String passport; private byte[] password; public byte[] getPassword() { return password; } public void setPassword(byte[] password) { this.password = password; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassport() { return passport; } public void setPassport(String passport) { this.passport = passport; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Integer getStuId() { return stuId; } public void setStuId(Integer stuId) { this.stuId = stuId; } public String toString(){ return "stuid:"+stuId+"---name:"+name+"---passport:"+passport+"-----sex:"+sex+"--birthday:"+birthday; } }
六 dao实现类
package dao; import java.sql.SQLException; import java.util.List; import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; import util.Print; import entity.Student; public class StudentDaoImpl extends SqlMapClientDaoSupport implements StudentDao { public void insertToDb(Student stu) { getSqlMapClientTemplate().insert("insertToDb", stu); } public Student queryStuById(Integer id) { Student stu=(Student) getSqlMapClientTemplate().queryForObject("queryStuById", id); Print.contrlPrint("dao查到的对象是"+stu); return stu; } public List getSomeStu(int start, int pageSize) { System.out.println("dao ---start"+start); System.out.println("dao ---pageSize"+pageSize); List list=getSqlMapClientTemplate().queryForList("queryStudent", null, start, pageSize); System.out.println("dao---list---size"+list.size()); return list; } public Long getStudentCount() { return (Long) getSqlMapClientTemplate().queryForObject("getStudentCount", null); } public void delStuById(Long stuId) { getSqlMapClientTemplate().delete("delStuById", stuId); } public void updateStudent(Student stu) { getSqlMapClientTemplate().update("updateStudent", stu); } public List test(){ return getSqlMapClientTemplate().queryForList("test",null); } public Integer insertTest(Student stu) { Print.contrlPrint("调用了insertTest"); return (Integer) getSqlMapClientTemplate().insert("insertTest", stu); } }
七 业务层实现类
package service; import java.util.List; import util.Tools; import dao.StudentDao; import entity.Student; public class StudentServiceImpl implements StudentService { private StudentDao studentDao; public void insertToDb(Student stu) { studentDao.insertToDb(stu); // Integer id=studentDao.insertTest(stu); // System.out.println("插入记录的id是"+id); } public StudentDao getStudentDao() { return studentDao; } public void setStudentDao(StudentDao studentDao) { this.studentDao = studentDao; } public Student queryById(Integer id) { return studentDao.queryStuById(id); } public List getSomeStu(int start, int pageSize) { return studentDao.getSomeStu(start, pageSize); } public String getResponseJson(int start, int pageSize) { List list=getSomeStu(start, pageSize); Long count=getStudentCount(); return Tools.getResponseJson(list,count); } public Long getStudentCount() { return studentDao.getStudentCount(); } public void delStuById(Long stuId) { studentDao.delStuById(stuId); } public void updateStudent(Student stu) { studentDao.updateStudent(stu); } }
发表评论
-
Spring,Hibernate,ResultSet和事务
2012-03-21 15:30 2971今天研究了一天的关于Spring,Hibernate,Resu ... -
Spring 注入 log4j
2012-01-12 17:21 6450如果打算将Log4j注入Spring的applicationC ... -
Spring 使用RMI
2011-03-02 15:46 7039Spring使用RMI非常简单,甚至比直接使用RMI还简单。 ... -
Spring DaoMethodAfterAdvice使用例子
2011-02-10 19:08 1314该拦截器会在bean的方法执行后被执行 import j ... -
Spring MethodBeforeAdvice使用例子
2011-02-10 19:05 14426MethodBeforeAdvice该拦截器会在调用dean的 ... -
Spring ThrowsAdvice使用例子
2011-02-10 19:01 9486ThrowsAdvice用于拦截异常 import ja ... -
Spring 消息注册发布的例子
2011-01-19 16:26 1484消息注册发布模式是我们常用的设计模式,Spring也实现了这个 ... -
FileSystemResource 参数为什么必须是绝对路径
2011-01-19 09:22 4596在使用FileSystemResource时,发现FileSy ... -
Spring的价值
2010-11-08 09:59 16291. Spring是一个非侵入性(non-invasive)框 ... -
Spring事务管理例子
2010-09-26 17:18 5889关于spring事务管理以及异常处理的帖子,本论坛争论颇多,各 ... -
抛弃EJB(EJB2.0,EJB3.0,EJB4.0)
2010-09-25 17:28 10026关键词:EJB,JEEE,Spring,OO, ... -
J2EE架构图
2010-09-25 11:19 4793以下是J2EE架构图: -
J2EE的核心API与组件(没了EJB,J2EE还剩什么呢)
2010-09-25 10:56 1780J2EE是一种利用Java 2平台来简化企业解决方案的开发、部 ... -
Spring中加载xml配置文件的六种方式
2010-08-31 15:05 41486因为目前正在从事一个项目,项目中一个需求就是所有的功能都是插件 ... -
Spring框架的设计理念与设计模式(9)-策略模式
2010-08-31 13:34 2560关键词:Spring,设计模式,策略模式 上一章:Spring ... -
Spring框架的设计理念与设计模式(8)-代理模式
2010-08-31 13:32 2401关键词:Spring,设计模式,工厂模式,代理模式 上一章:S ... -
Spring框架的设计理念与设计模式(7)-Spring中AOP特性与实现
2010-08-31 13:26 3405关键词:Spring,AOP,Proxy,代理,拦截器 上一章 ... -
Spring框架的设计理念与设计模式(6)-Ioc容器及BeanFactory工厂
2010-08-31 13:20 4793关键词:Spring,Ioc,Bean,Context,Bea ... -
Spring框架的设计理念与设计模式(5)-Core组件
2010-08-31 13:10 2186关键词:Spring,Core,组件, ... -
Spring框架的设计理念与设计模式(4)-Context组件
2010-08-31 13:08 3340关键词:Context,组件,Spri ...
相关推荐
通过Struts2、Spring和iBatis的整合,我们可以实现模型、视图和控制的分离,提高代码的可读性和可维护性。同时,Spring的DI和AOP特性使得对象管理更加灵活,iBatis则提供了方便的数据库操作方式。这样的组合在企业级...
在这个整合例子中,由于jar文件过大未上传,所以具体的配置细节无法提供。但是,你可以参考上述的整合步骤,结合实际的项目需求,配置自己的Spring、Struts2和iBatis环境。记得在配置文件中仔细设置各个框架的连接,...
本项目"Structs2.0+Spring2.5+Ibatis整合例子"就是这样一个示例,展示了如何将Struts2、Spring和iBatis这三个流行的技术栈整合在一起,以实现MVC(模型-视图-控制器)架构。以下将详细阐述这三个框架的核心功能以及...
Ibatis和Spring整合例子,实现增删改查功能.
这个"spring+ibatis+ehcache整合例子"是一个完整的示例项目,展示了如何将这三个框架无缝集成到一个基于MySQL数据库的应用中。下面将详细介绍这三个框架及其整合的关键点。 **Spring框架** Spring是一个全面的企业...
在与Struts2和iBatis的整合中,Spring主要负责管理Bean的生命周期和依赖关系,以及事务的统一管理。Spring的事务管理可以基于编程式或者声明式,后者通过@Transactional注解实现,更符合开闭原则,降低了代码的耦合...
在Struts+Spring+iBatis整合中,通常会使用Spring的JdbcTemplate或MyBatis(iBatis的升级版)来执行SQL。 **整合过程**: 1. **配置Spring**:首先需要配置Spring的ApplicationContext,定义Bean的定义,包括Struts...
Struts2+Spring+Hibernate和Struts2+Spring+Ibatis是两种常见的Java Web应用程序集成框架,它们分别基于ORM框架Hibernate和轻量级数据访问框架Ibatis。这两种框架结合Spring,旨在提供一个强大的、可扩展的、易于...
Struts、Spring 和 iBATIS 是Java开发领域中三大经典的开源框架,它们组合起来可以构建出高效、可维护的企业级Web应用。这个例子是利用这三个框架实现了一个基础的增删改查(CRUD)功能,涵盖了数据库操作、业务逻辑...
在这个例子中,Spring可能被用来管理WebWork和iBATIS之间的依赖关系,以及提供事务管理服务。 iBATIS,现称为MyBatis,是一个持久层框架,它简化了SQL与Java代码的集成。iBATIS允许开发者编写动态SQL,将数据库操作...
在"Struts2+Spring+iBatis整合的小例子"中,开发者通常会做以下工作: 1. **环境配置**:首先,确保JDK、Tomcat、MySQL等基础环境的安装和配置。然后,将Struts2、Spring、iBatis的相关jar包添加到项目的类路径中。...
在这个"Struts2+Spring+iBatis整合实例"中,我们将探讨这三个框架如何协同工作,以及如何通过"BookRoom"这个具体的应用来学习它们的整合。 Struts2作为一款强大的MVC框架,负责处理HTTP请求,提供控制器功能。它...
Struts、Spring 和 iBATIS 是三个非常重要的 Java 开发框架,它们在企业级应用程序开发中扮演着核心角色。这个例子结合了这三个框架,构建了一个完整的应用基础,为OA(办公自动化)系统的开发提供了一个良好的起点...
以上就是Spring MVC与iBatis整合的基本步骤。通过这样的集成,我们可以利用Spring MVC的强大力量处理HTTP请求和路由,同时利用iBatis的灵活性来执行SQL,达到业务逻辑与数据访问的分离,提高代码的可维护性和可扩展...
"ibatis+spring+struts2 整合开发例子"就是一个典型的Java Web应用集成开发案例,旨在帮助开发者理解和掌握这三大框架的协同工作原理。接下来,我们将详细讨论这三个组件以及它们的整合过程。 Ibatis是一个轻量级的...
在软件开发领域,特别是Java企业级应用开发中,Spring框架和iBATIS(现已更名为MyBatis)是非常重要的两个技术组件。Spring作为一款全面的企业级应用解决方案,其核心功能包括依赖注入、面向切面编程以及容器管理等...
Struts2、Spring和iBatis是Java Web开发中常用的三大框架,它们分别负责MVC模式中的Action层...了解并实践这个简单的登录例子,有助于开发者更好地掌握Struts2、Spring和iBatis的整合使用,为更复杂的Web应用打下基础。
本实例关注的是“ibatis+Spring+struts2”的整合,这是一个经典的Java Web开发组合,用于实现数据访问、业务逻辑控制和用户界面交互。下面我们将深入探讨这三个组件及其整合的关键知识点。 1. **iBATIS**:iBATIS...
ibatis和Spring整合的详细例子