`
javasss
  • 浏览: 66547 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

ibtis和spring整合的例子

阅读更多
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整合例子,实现增删改查功能

    Ibatis和Spring整合例子,实现增删改查功能.

    ibatis与Spring整合例子

    在IT领域,iBATIS和Spring的整合是一个常见的实践,特别是在构建基于Java的企业级应用时。iBATIS是一个优秀的持久层框架,它简化了数据库操作,而Spring则是一个全面的框架,提供了依赖注入、事务管理等多种功能。接...

    struts+iBATIS+spring整合例子

    Struts、iBATIS和Spring是Java开发中常用的三大框架,它们各自负责不同的职责,而将它们整合在一起,可以构建出高效、灵活的企业级应用程序。本文将深入探讨这三者的核心概念、整合过程以及实际应用。 **Struts** ...

    ibatis和Spring整合的详细例子

    ibatis和Spring整合的详细例子 iBatis和Spring整合的详细例子,数据库用的是mysql,开发环境是Eclipse3.2。 1、首先把用到的包导入进来:  spring-framework-1.2.7.jar  iBATIS_DBL-2.1.7.597.jar  mysql-...

    ibatis和spring整合开发 例子

    本篇文章将详细探讨如何将Ibatis与Spring进行整合开发,并提供一个实际的例子。 Ibatis是一个轻量级的持久层框架,它允许开发者将SQL语句直接写在配置文件中,提供了灵活的映射机制,避免了ORM框架的过度抽象。而...

    ibatis 2 and spring 例子

    标题 "ibatis 2 and spring 例子" 指向的是一个关于如何集成并使用iBatis 2框架与Spring框架的示例教程。iBatis是一个轻量级的持久层框架,它允许开发者将SQL语句直接写在配置文件中,避免了ORM(对象关系映射)框架...

    ibatis+spring+struts2 整合开发例子

    "ibatis+spring+struts2 整合开发例子"就是一个典型的Java Web应用集成开发案例,旨在帮助开发者理解和掌握这三大框架的协同工作原理。接下来,我们将详细讨论这三个组件以及它们的整合过程。 Ibatis是一个轻量级的...

    iBatis与Spring整合的例子

    ### iBatis与Spring整合的例子 #### 一、概述 在现代软件开发中,整合不同的技术框架是非常常见的需求。本文将详细介绍如何将iBatis(现称为MyBatis)与Spring框架进行整合,并通过一个具体的例子来展示整合过程中...

    spring+ibatis+ehcache整合例子

    这个"spring+ibatis+ehcache整合例子"是一个完整的示例项目,展示了如何将这三个框架无缝集成到一个基于MySQL数据库的应用中。下面将详细介绍这三个框架及其整合的关键点。 **Spring框架** Spring是一个全面的企业...

    backbone+bootstrap+ibatis+spring例子

    结合这四个技术,"backbone+bootstrap+ibatis+spring例子"创建了一个完整的Web应用解决方案,前端利用Backbone.js进行状态管理和界面渲染,Bootstrap提升UI体验,后端则借助Spring处理业务逻辑并与数据库交互。...

    struts2+ibatis+spring的小例子

    整合Struts2、iBatis和Spring,开发者可以: - 使用Struts2的Action和结果映射来处理HTTP请求,提供控制器功能。 - 在iBatis的SQL映射文件中编写SQL,通过DAO层与数据库进行交互,确保数据库操作的独立性。 - 利用...

    ibatis+Spring+struts2整合实例

    本实例关注的是“ibatis+Spring+struts2”的整合,这是一个经典的Java Web开发组合,用于实现数据访问、业务逻辑控制和用户界面交互。下面我们将深入探讨这三个组件及其整合的关键知识点。 1. **iBATIS**:iBATIS...

    Structs2.0+Spring2.5+Ibatis整合例子

    本项目"Structs2.0+Spring2.5+Ibatis整合例子"就是这样一个示例,展示了如何将Struts2、Spring和iBatis这三个流行的技术栈整合在一起,以实现MVC(模型-视图-控制器)架构。以下将详细阐述这三个框架的核心功能以及...

    Struts2+Spring2+iBatis2整合的例子

    在"Struts2+Spring+iBatis整合的小例子"中,开发者通常会做以下工作: 1. **环境配置**:首先,确保JDK、Tomcat、MySQL等基础环境的安装和配置。然后,将Struts2、Spring、iBatis的相关jar包添加到项目的类路径中。...

    struts2+ibatis+spring集成

    Struts2、iBatis和Spring是Java Web开发中的三个重要框架,它们分别负责MVC模式中的Action层...在实际项目中,还可以根据需要加入其他功能,如Hibernate ORM、MyBatis-Spring整合、缓存管理等,以进一步优化系统性能。

    iBATIS&Spring合奏(一)--DAO

    标题中的“iBATIS&Spring合奏(一)--DAO”指的是在Java开发中,将iBATIS和Spring框架结合使用来实现数据访问层(DAO)的一种技术整合。iBATIS是一个优秀的持久层框架,它允许开发者将SQL语句直接写在配置文件中,提供...

Global site tag (gtag.js) - Google Analytics