这个例子是我在
http://www.developersbook.com/ibatis/iBatis-tutorials/iBatis-tutorials-2.php看的一个很好例子。
DROP TABLE IF EXISTS `test`.`trade`;
CREATE TABLE `trade` (
`trade_id` decimal(5,0) NOT NULL,
`side` varchar(10) NOT NULL,
`symbol` varchar(6) NOT NULL,
`shares` decimal(4,0) NOT NULL,
`price` decimal(4,0) NOT NULL,
`state` varchar(20) NOT NULL,
PRIMARY KEY (`trade_id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
Trade.java
package com.developerbook.iBatis.domain;
public class Trade {
private long tradeId;
private String action;
private String symbol;
private long shares;
private double price;
private String state;
public long getTradeId() {
return tradeId;
}
public void setTradeId(long tradeId) {
this.tradeId = tradeId;
}
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public String getSymbol() {
return symbol;
}
public void setSymbol(String symbol) {
this.symbol = symbol;
}
public long getShares() {
return shares;
}
public void setShares(long shares) {
this.shares = shares;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String toString() {
return ("TRADE " + tradeId + ": " + action + ", " + symbol + ", "
+ shares + " shares, $" + price + "/share (" + state + ")");
}
}
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="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="billsxm"/>
</bean>
<bean id="sqlMap"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:config/SqlMapConfig.xml</value>
</property>
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="tradingService"
class="com.developerbook.iBatis.service.TradeServiceImpl">
<property name="sqlMapClient" ref="sqlMap"/>
</bean>
</beans>
SqlMapConfig.xml
<?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>
<settings useStatementNamespaces="true"/>
<sqlMap resource="config/TradingSQLMap.xml"/>
</sqlMapConfig>
TradingSQLMap.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL MAP 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap namespace="trading">
<typeAlias alias="trade" type="com.developerbook.iBatis.domain.Trade"/>
<cacheModel id="tradeCache" type="LRU" readOnly="true">
<flushInterval hours="24"/>
<flushOnExecute statement="trading.executeTrade"/>
<property name="cache-size" value="1000"/>
</cacheModel>
<resultMap id="tradeResult" class="trade">
<result property="tradeId" column="TRADE_ID"/>
<result property="action" column="SIDE"/>
<result property="symbol" column="SYMBOL"/>
<result property="shares" column="SHARES"/>
<result property="price" column="PRICE"/>
<result property="state" column="STATE"/>
</resultMap>
<select id="getTrade" parameterClass="long" resultMap="tradeResult" cacheModel="tradeCache">
SELECT
TRADE_ID,
SIDE,
SYMBOL,
SHARES,
PRICE,
STATE
FROM
TRADE
WHERE
TRADE_ID = #id#
</select>
<update id="executeTrade" parameterClass="long">
UPDATE
TRADE
SET
STATE = 'EXECUTED'
WHERE
TRADE_ID = #id#
</update>
<insert id="insertTrade" parameterClass="trade">
INSERT INTO
TRADE
(TRADE_ID,
SIDE,
SYMBOL,
SHARES,
PRICE,
STATE)
VALUES
(#tradeId#,
#action#,
#symbol#,
#shares#,
#price#,
#state#)
</insert>
</sqlMap>
ITrade.java
package com.developerbook.iBatis.service;
import java.sql.SQLException;
import com.developerbook.iBatis.domain.Trade;
public interface ITradeService {
public Trade getTrade(long tradeId)throws SQLException;
public void executeTrade(long tradeId)throws SQLException;
public void insertTrade(Trade trade)throws SQLException;
}
TradeServiceImpl.java
package com.developerbook.iBatis.service;
import java.sql.SQLException;
import com.developerbook.iBatis.domain.Trade;
import com.ibatis.sqlmap.client.SqlMapClient;
public class TradeServiceImpl implements ITradeService {
protected SqlMapClient sqlMap = null;
public void setSqlMapClient(SqlMapClient sqlMap){
this.sqlMap = sqlMap;
}
public void executeTrade(long tradeId) throws SQLException {
sqlMap.update("trading.executeTrade", tradeId);
}
public Trade getTrade(long tradeId) throws SQLException {
return (Trade)sqlMap.queryForObject("trading.getTrade", tradeId);
}
public void insertTrade(Trade trade) throws SQLException {
sqlMap.insert("trading.insertTrade", trade);
}
}
IBatisClient.java
package com.developerbook.iBatis.client;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.developerbook.iBatis.service.ITradeService;
public class IBatisClient {
/**
* @param args
*/
public static void main(String[] args) {
try{
System.out.println("Start IBatisClient...");
System.out.println("=====================");
//load spring beans
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"config/applicationContext.xml");
System.out.println("Classpath loaded...");
System.out.println("====================");
ITradeService service = (ITradeService) ctx.getBean("tradingService");
//get Trade
int tradeId=1;
System.out.println("BEFORE: "+service.getTrade(tradeId));
//update Trade
service.executeTrade(tradeId);
System.out.println("AFTER: "+service.getTrade(tradeId));
System.out.println("=====================");
System.out.println("Hurry , It is done.!");
}catch(Exception ex){
ex.printStackTrace();
}
}
}
分享到:
相关推荐
标题中的“iBATIS&Spring合奏(一)--DAO”指的是在Java开发中,将iBATIS和Spring框架结合使用来实现数据访问层(DAO)的一种技术整合。iBATIS是一个优秀的持久层框架,它允许开发者将SQL语句直接写在配置文件中,提供...
在“iBATIS&Spring合奏(二)--Flex前端融合”中,博主Yunshen0909分享了关于如何在Java Web应用中结合使用这两种技术,特别是如何与Flex前端进行集成,以提升用户体验。 首先,iBATIS是一个持久层框架,它简化了...
"Ibatis 与 Spring3 整合"这一主题,涉及到的是两个知名Java框架——Ibatis(一个轻量级的持久层框架)和Spring(一个全面的企业级应用框架)的协同工作。下面我们将深入探讨这一整合过程中的关键知识点。 Ibatis ...
### ibatis与Spring框架整合详解 #### 一、ibatis简介 ibatis是一个开源的、基于Java的持久层框架,它提供了SQL映射的方式来进行数据库访问。与Hibernate等其他ORM框架相比,ibatis更加轻量级,对于那些只需要简单...
Struts2、Spring3和iBATIS是Java Web开发中常用的三大框架,它们各自负责不同的职责,协同工作可以构建出高效、松耦合的Web应用。在这个“struts2+spring3+ibatis项目整合案例”中,我们将深入探讨这三个框架如何...
iBatis和Spring整合 iBatis和Spring整合
内容包里面是源代码,运行该例子的方式就是,使用里面的sql...使用cmd进入该解压包,运行 java -jar *.jar ibatis2spring.jar 就可以了。欲了解代码的详细,请访问作者博客,搜索《ibatis + Spring 多表查询》文章。
Struts2+iBATIS+Spring整合是Java Web开发中一种常见的技术栈组合,这三种框架协同工作,可以构建出高效、灵活的企业级应用。Struts2作为MVC(Model-View-Controller)架构的一部分,主要负责处理HTTP请求,管理前端...
3. **配置iBatis**:创建MyBatis的全局配置文件(mybatis-config.xml),以及各数据表对应的Mapper XML文件,编写SQL语句。 4. **整合Struts2与Spring**:通过Struts2的Spring插件,将Action类声明为Spring的Bean,...
3. **Mapper配置**:`iBatis`的Mapper接口和XML配置文件定义了数据库操作。在`Spring`中,这些Mapper可以作为`@Repository`注解的bean进行管理,通过`@Autowired`注入到需要使用的地方。这样,我们就可以在业务逻辑...
最近想在最新的Spring5.0中集成ibatis(不是mybatis),发现已经不在支持SqlmapClientTemplate和SqlmapClientFactoryBean,于是搞了这个工具jar来进行支持如下配置 <bean id="sqlMapClient" class="org.spring...
在整合iBATIS和Spring的过程中,主要目标是利用Spring的IOC(Inversion of Control)容器来管理和协调数据访问层(DAO)以及事务处理,同时利用iBATIS作为SQL映射框架,提供灵活的数据库操作。以下将详细阐述整合的...
3. **配置ibatis**:创建SqlMapConfig.xml,定义数据源、事务管理器和映射文件的位置。 4. **创建Mapper接口和XML映射文件**:定义Mapper接口,其中的方法对应SQL操作,XML文件中编写具体的SQL语句。 5. **Action中...
【标题】:Ibatis+Spring+Struts1框架搭建 在Web开发中,Ibatis、Spring和Struts1是三个非常重要的组件,它们分别负责不同的职责。Ibatis是一个优秀的持久层框架,Spring是一个全面的后端应用框架,而Struts1则是一...
3. 配置Spring:在applicationContext.xml中声明Bean,包括Action、DAO、Service等,配置数据源、事务管理器,以及Struts1和iBatis的插件。 4. 将Struts1和Spring结合:使用Spring的StrutsPlugIn,让Spring管理...
`Backbone.js`、`Bootstrap`、`iBatis` 和 `Spring` 是四个非常关键的技术组件,它们分别在前端架构、用户界面、数据库操作和后端服务方面发挥着重要作用。下面将详细介绍这些技术及其在"backbone+bootstrap+ibatis+...
标题中的“iBATIS_Spring_struts_demo.rar_DEMO_Struct spring ibatis_ibatis j”表明这是一个关于集成iBATIS、Spring和Struts的演示项目。这个DEMO旨在展示如何在Java应用中有效地整合这三个框架,从而实现数据持久...
【ibatis-spring学习】 在Java Web开发领域,iBatis和Spring是两个非常重要的框架。iBatis是一个优秀的持久层框架,它简化了数据库操作,而Spring则是一个全面的后端开发框架,提供了依赖注入、事务管理等功能。将...
在Java开发领域,Ibatis和Spring是两个非常重要的框架,它们各自在数据访问和应用上下文管理方面发挥着重要作用。Ibatis是一个轻量级的SQL映射框架,它允许开发者将SQL语句直接写在配置文件中,避免了传统的DAO层...