spring其实已经提供了支持ibatis的模板,我们只需要在配置中配置好这些文件,就可以进行相关的开发了。
下面是我写的一个例子,其中参考了:http://static.springsource.org/spring/docs/2.0.0/reference/orm.html的一些内容,有兴趣可以登录该网页学习:
首先我们看一下spring的相关配置application.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="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource"> <ref bean="dataSource"/> </property> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://127.0.0.1/ibatis</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>123</value> </property> </bean> <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocation"> <value>classpath:sqlMapConfig.xml</value> </property> <property name="dataSource"> <ref bean="dataSource"/> </property> </bean> <bean id="userInfoDao" class="com.openv.ibatis.dao.impl.UserInfoDaoImpl"> <property name="sqlMapClient"> <ref bean="sqlMapClient"/> </property> </bean> </beans>
在这个里面我们配置了数据源(dataSource)其实就是连接数据库哈。txManager为事务管理器,不过这里我没有使用哈,暂且让它放在那里吧。。。。sqlMapClient:org.springframework.orm.ibatis.SqlMapClientFactoryBean该类继承了spring中的FactoryBean和InitializingBean,该类是用于创建一个iBatis的SqlMapClient,在spring的应用配置宏我们就创建好了一个共享的iBatis的SqmMapClient,它可以通过依赖注入的方式传到iBatis-based DAOs。还有一个配置就是userInfoDao了,这就是一个用户自定义接口,重点在于将sqlMapClient注入到它的实现类中
下一个配置文件sqlMapConfig.xml:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <settings lazyLoadingEnabled="true" useStatementNamespaces="true"/> <sqlMap resource="com/openv/ibatis/vo/UserInfo.xml"/> </sqlMapConfig>
在这里我只用一个操作的数据库表,配置的路径在com/openv/ibatis/vo/UserInfo.xml中
下面查看一下UserInfo.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="UserInfo"> <typeAlias alias="UserInfo" type="com.openv.ibatis.vo.UserInfo"/> <resultMap class="UserInfo" id="UserInfoResult"> <result property="id" column="id"/> <result property="firstName" column="first_name"/> <result property="lastName" column="last_name"/> <result property="email" column="email"/> </resultMap> <select id="UserInfo.select" resultClass="UserInfo"> select * from user_info </select> <select id="UserInfo.selectById" resultClass="UserInfo" parameterClass="UserInfo"> select * from user_info <dynamic prepend="where"> <isNotEmpty prepend="AND" property="id">(id=#id#)</isNotEmpty> <isNotEmpty prepend="AND" property="firstName">(first_name=#firstName#)</isNotEmpty> <isNotEmpty prepend="AND" property="lastName">(last_name=#lastName#)</isNotEmpty> <isNotEmpty prepend="AND" property="email">(email=#email#)</isNotEmpty> </dynamic> </select> <insert id="UserInfo.insertUserInfo" parameterClass="UserInfo"> insert into user_info(first_name,last_name,email) values(#firstName#,#lastName#,#email#) <selectKey resultClass="Integer" keyProperty="id"> SELECT LAST_INSERT_ID() AS ID </selectKey> </insert> <update id="UserInfo.updateUserInfoById"> update user_info <dynamic prepend="set"> <isNotEmpty property="firstName" prepend=",">first_name=#firstName#</isNotEmpty> <isNotEmpty property="lastName" prepend=",">last_name=#lastName#</isNotEmpty> <isNotEmpty property="email" prepend=",">email=#email#</isNotEmpty> </dynamic> where id=#id# </update> <update id="UserInfo.updateLastName" parameterClass="java.util.Map"> update user_info set last_name=#newLastName# where last_name=#oldLastName# </update> <delete id="UserInfo.deleteUserInfo"> delete from user_info <dynamic prepend="where"> <isNotEmpty property="id" prepend="AND">(id=#id#)</isNotEmpty> <isNotEmpty property="firstName" prepend="AND">(first_name=#firstName#)</isNotEmpty> <isNotEmpty property="lastName" prepend="AND">(last_name=#lastName#)</isNotEmpty> <isNotEmpty property="email" prepend="AND">(email=#email#)</isNotEmpty> </dynamic> </delete> </sqlMap>
该配置文件主要是实现对数据库的操作
还有一个properties文件:在该文件中配置一下就可以显示ibatis调用的sql,log4j.properties:
#------------------------------------------------------------------------------ # # The following properties set the logging levels and log appender. The # log4j.rootCategory variable defines the default log level and one or more # appenders. For the console, use 'S'. For the daily rolling file, use 'R'. # For an HTML formatted log, use 'H'. # # To override the default (rootCategory) log level, define a property of the # form (see below for available values): # # log4j.logger. = # # Available logger names: # TODO # # Possible Log Levels: # FATAL, ERROR, WARN, INFO, DEBUG # #------------------------------------------------------------------------------ log4j.rootCategory=INFO, S log4j.logger.com.dappit.Dapper.parser=ERROR log4j.logger.org.w3c.tidy=FATAL #------------------------------------------------------------------------------ # # The following properties configure the console (stdout) appender. # See http://logging.apache.org/log4j/docs/api/index.html for details. # #------------------------------------------------------------------------------ log4j.appender.S = org.apache.log4j.ConsoleAppender log4j.appender.S.layout = org.apache.log4j.PatternLayout log4j.appender.S.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n #show sql in ibatis log4j.logger.com.ibatis=debug log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug log4j.logger.java.sql.Connection=debug log4j.logger.java.sql.Statement=debug #------------------------------------------------------------------------------ # # The following properties configure the Daily Rolling File appender. # See http://logging.apache.org/log4j/docs/api/index.html for details. # #------------------------------------------------------------------------------ log4j.appender.R = org.apache.log4j.DailyRollingFileAppender log4j.appender.R.File = logs/bensApps.log log4j.appender.R.Append = true log4j.appender.R.DatePattern = '.'yyy-MM-dd log4j.appender.R.layout = org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n #------------------------------------------------------------------------------ # # The following properties configure the Rolling File appender in HTML. # See http://logging.apache.org/log4j/docs/api/index.html for details. # #------------------------------------------------------------------------------ log4j.appender.H = org.apache.log4j.RollingFileAppender log4j.appender.H.File = logs/bensApps.html log4j.appender.H.MaxFileSize = 100KB log4j.appender.H.Append = false log4j.appender.H.layout = org.apache.log4j.HTMLLayout
其他的操作可以下载文件。
相关推荐
iBatis和Spring整合的详细例子,数据库用的是mysql,开发环境是Eclipse3.2。 1、首先把用到的包导入进来: spring-framework-1.2.7.jar iBATIS_DBL-2.1.7.597.jar mysql-connector-java-5.0.3-bin.jar 2、建...
"ibatis+spring+struts2 整合开发例子"就是一个典型的Java Web应用集成开发案例,旨在帮助开发者理解和掌握这三大框架的协同工作原理。接下来,我们将详细讨论这三个组件以及它们的整合过程。 Ibatis是一个轻量级的...
### iBatis与Spring整合的例子 #### 一、概述 在现代软件开发中,整合不同的技术框架是非常常见的需求。本文将详细介绍如何将iBatis(现称为MyBatis)与Spring框架进行整合,并通过一个具体的例子来展示整合过程中...
在IT领域,iBATIS和Spring的整合是一个常见的实践,特别是在构建基于Java的企业级应用时。iBATIS是一个优秀的持久层框架,它简化了数据库操作,而Spring则是一个全面的框架,提供了依赖注入、事务管理等多种功能。接...
Struts、iBATIS和Spring是Java开发中常用的三大框架,它们各自负责不同的职责,而将它们整合在一起,可以构建出高效、灵活的企业级应用程序。本文将深入探讨这三者的核心概念、整合过程以及实际应用。 **Struts** ...
综上所述,这个"spring+ibatis+ehcache整合例子"项目旨在帮助开发者理解并掌握这三个框架的集成使用,提高开发效率,优化系统性能。通过实际运行和分析这个示例,你可以更好地掌握Spring的依赖注入、iBatis的SQL映射...
Struts2、iBatis和Spring是Java Web开发中三个非常重要的框架,它们结合使用可以构建出高效、灵活的企业级应用程序。在这个小例子中,我们将深入探讨这三个框架的集成与应用。 首先,Struts2是一个基于MVC(Model-...
Struts、Spring、Ibatis和Mysql是Java Web开发中常用的四大框架,它们组合在一起可以构建出高效、灵活的企业级应用程序。本示例是专为新手设计的一个整合教程,通过详细注解帮助初学者理解这四个组件如何协同工作。 ...
结合这四个技术,"backbone+bootstrap+ibatis+spring例子"创建了一个完整的Web应用解决方案,前端利用Backbone.js进行状态管理和界面渲染,Bootstrap提升UI体验,后端则借助Spring处理业务逻辑并与数据库交互。...
本实例关注的是“ibatis+Spring+struts2”的整合,这是一个经典的Java Web开发组合,用于实现数据访问、业务逻辑控制和用户界面交互。下面我们将深入探讨这三个组件及其整合的关键知识点。 1. **iBATIS**:iBATIS...
Struts2、Spring和iBatis是Java Web开发中常用的三大框架,它们分别负责MVC模式中的Action层、业务逻辑层以及数据访问层。将这三个框架整合在一起,可以构建出高效、灵活且易于维护的Web应用程序。下面我们将详细...
本项目"Structs2.0+Spring2.5+Ibatis整合例子"就是这样一个示例,展示了如何将Struts2、Spring和iBatis这三个流行的技术栈整合在一起,以实现MVC(模型-视图-控制器)架构。以下将详细阐述这三个框架的核心功能以及...
**Spring、Struts2 和 iBatis 整合详解** 在Java Web开发中,Spring、Struts2 和 iBatis 是三个非常重要的框架。它们分别负责不同层面的任务:Spring 提供了全面的依赖注入(DI)和面向切面编程(AOP),用于管理...
Struts2、Spring和iBatis是Java Web开发中三个非常重要的框架,它们分别负责表现层、业务层和数据访问层。将这三个框架整合在一起,可以实现MVC(Model-View-Controller)架构,提高应用的灵活性和可维护性。 **...
综上所述,"ibatis+spring整合文档"很可能包含了这些整合过程的详细步骤、示例代码和最佳实践,帮助开发者高效地完成集成工作。对于初学者或有经验的开发者来说,理解和掌握这种整合方式都是提升开发效率和项目质量...
这个“SpringMVC+ibatis+velocity”整合例子虽然简单,但足以让初学者了解这些技术的基本用法和协同工作方式。通过实际操作,开发者可以更深入地理解Web开发中的分层架构、数据访问和模板渲染等关键概念。在实际项目...
这个"ibatis+spring+struts完整例子数据同步程序"就是一个典型的Java EE应用程序,它整合了三个关键的开源框架:Struts、Spring和iBatis。这些框架分别负责表现层、业务层和服务层的管理,提供了一个强大的开发工具...