`
rayln
  • 浏览: 433778 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如何把iBatis注入到Spring中

 
阅读更多
application.xml配置:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  <property name="driverClassName" value="${jdbc.driverClassName}"/>
  <property name="url" value="${jdbc.url}"/>
  <property name="username" value="${jdbc.username}"/>
  <property name="password" value="${jdbc.password}"/>
</bean>
<context:property-placeholder location="jdbc.properties"/>
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
  <property name="configLocation" value="classpath:sqlmap-config.xml"/>
  <property name="dataSource" ref="dataSource"/>
</bean>
<bean id="sqlMapTestDao" class="com.dao.SqlMapTestDao">
  <property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>


sqlmap-config.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="com/entity/Test.xml"/>
</sqlMapConfig>


Test.xml配置:
<sqlMap namespace="Test">
  <resultMap id="result" class="com.entity.Test">
    <result property="test1" column="TEST1" columnIndex="1"/>
    <result property="test2" column="TEST2" columnIndex="2"/>
  </resultMap>
  <select id="getTestByTest1" resultMap="result">
    select TEST.TEST1, TEST.TEST2 from TEST where TEST.TEST1 = #value#
  </select>
  <insert id="insertTest">
    insert into TEST (TEST1, TEST2) values (#test1#, #test2#)
  </insert>
</sqlMap>


Test.java配置
public class Test implements java.io.Serializable {
  private String test1;
  private String test2;
  // 忽略getter和setter方法
}


SqlMapTestDao.java配置
public class SqlMapTestDao extends SqlMapClientDaoSupport {
  //方法一
  public void getTestByTest1(String test1){
    Test test = (Test)getSqlMapClientTemplate()
      .queryForObject("getTestByTest1", test1);
    System.out.println("test1:"+test.getTest1());
  }
  //方法二
  public void insertAccount(Test test) throws DataAccessException {
    getSqlMapClientTemplate().update("insertTest ", test);
  }
  //方法三
  public void insertAccountTest(final Test test) throws DataAccessException {
    getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
      public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
        executor.startBatch();
        executor.update("insertAccount", test);
        executor.update("insertAddress", test.getTest2());
        return executor.executeBatch();
      }
    });
  }
  //执行方法
  public static void main(String[] args) {
    BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
    SqlMapTestDao dao = (SqlMapTestDao)factory.getBean("sqlMapTestDao");
    dao.getTestByTest1("8");
  }
}
分享到:
评论

相关推荐

    ibatis 2 and spring 例子

    在Spring中,你可以通过`@Autowired`注解将Mapper接口注入到Service类中,这样就可以直接调用SQL语句了: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public ...

    ibatis与spring整合

    在Spring配置文件中定义`SqlMapClient`的Bean,并注入相应的属性。这通常通过`SqlMapClientFactoryBean`来实现。 ```xml &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...

    spring与ibatis整合集成实例

    在整合 iBATIS 时,Spring 会负责创建 SqlSessionFactory 和 SqlSession 的实例,并通过配置文件或注解来注入到需要的地方。 2. **SqlSessionFactory**:这是 iBATIS 提供的工厂类,用于创建 SqlSession 对象。...

    ibatis2+spring

    在Spring中,我们可以创建一个接口,然后通过Spring的ProxyFactoryBean来创建代理对象,实现代理对象对iBatis的SqlSession方法调用。例如,定义一个ProductDao接口: ```java public interface ProductDao { List...

    maven搭建SpringMVC+spring+ibatis

    在Spring中,可以通过DataSourceRouter或AbstractRoutingDataSource实现动态数据源切换。这些组件可以根据预定义的规则(如事务上下文、请求参数等)选择不同的数据源,提高了系统的灵活性和可扩展性。 在压缩包的...

    ibatis_spring源代码

    在`Spring`中,这些Mapper可以作为`@Repository`注解的bean进行管理,通过`@Autowired`注入到需要使用的地方。这样,我们就可以在业务逻辑中直接调用Mapper方法,执行相应的SQL。 4. **事务管理**:`Spring`的事务...

    ibatis 与spring3整合

    3. **配置Mapper**:Ibatis 的Mapper接口需要在Spring中注册为bean,以便通过@Autowired注解自动注入。这通常通过MapperScannerConfigurer完成,该配置会扫描指定包下所有继承自BaseMapper的接口。 4. **事务管理**...

    Struts2+iBATIS+Spring整合

    1. 引入依赖:在项目中引入Struts2、iBATIS和Spring的相关库,可以通过Maven或Gradle等构建工具管理依赖。 2. 配置Spring:创建Spring配置文件,定义Bean以及它们之间的依赖关系。还可以配置数据源、事务管理器等。...

    spring3.2与Ibatis整合

    Spring 3.2 与 iBatis 的整合是Java企业级开发中常见的一种技术组合,它结合了Spring的依赖注入和事务管理能力以及iBatis的SQL映射框架的灵活性。这种整合允许开发者将业务逻辑与数据访问层解耦,提高了代码的可维护...

    spring ibatis整合所需jar包

    在Java Web开发中,Spring和iBatis是两个非常重要的框架。Spring是一个全面的后端开发框架,提供了依赖注入、AOP(面向切面编程)、事务管理等特性,而iBatis则是一个优秀的持久层框架,它将SQL语句与Java代码分离,...

    ibatis spring struts 整合案例

    在这个特定的案例中,我们关注的是"Ibatis Spring Struts"的整合。这三个框架分别是:Ibatis(一个轻量级的持久层框架),Spring(一个全面的企业级应用开发框架),以及Struts(一个用于构建MVC(Model-View-...

    struts2+spring3+ibatis项目整合案例

    Struts2、Spring3和iBATIS是Java Web开发中常用的三大框架,它们各自负责不同的职责,协同工作可以构建出高效、松耦合的Web应用。在这个“struts2+spring3+ibatis项目整合案例”中,我们将深入探讨这三个框架如何...

    struts2+ibatis+spring 安例

    Struts2、iBatis和Spring是Java Web开发中非常重要的三个框架,它们共同构建了一个高效、灵活的应用架构。这个实例结合了这三个框架,旨在帮助开发者理解如何将它们整合在一起,提升开发效率。 Struts2作为MVC...

    ibatis 完美例子 一对多 批处理 事务 和 spring struts2集成

    Ibatis可以与Spring无缝集成,通过@Autowired注解注入SqlSessionFactory,并在Service层方法上添加@Transactional注解来开启事务。这样,一旦发生异常,Spring会自动回滚事务,保证数据一致性。 最后,关于Spring与...

    struts1+ibatis+Spring demo

    Struts1、iBatis和Spring是Java Web开发中三个重要的框架,它们分别负责MVC模式中的表现层、数据访问层以及业务层的管理。这个"struts1+ibatis+Spring demo"是一个示例项目,展示了如何将这三个框架集成到一起,实现...

    struts2 + spring2.5 + ibatis2.3.4整合包文件

    还需要在Struts2的Action类中注入Spring管理的bean,以便于调用业务服务。同时,需要在Spring配置中声明iBatis的数据源、SqlSessionFactory和Mapper扫描器,以便Spring能够自动管理数据库操作。 这个"SSI整合包文件...

    xfire ibatis spring web service

    Spring框架是Java应用开发中的核心组件,提供了依赖注入、面向切面编程以及众多其他企业级功能。 这篇博客可能讨论的是如何将这三个技术——XFire、iBatis和Spring——集成在一起,构建一个Web服务应用程序。在这样...

    Ibatis+Spring+struts1框架搭建

    在Web开发中,Ibatis、Spring和Struts1是三个非常重要的组件,它们分别负责不同的职责。Ibatis是一个优秀的持久层框架,Spring是一个全面的后端应用框架,而Struts1则是一个经典的MVC(Model-View-Controller)架构...

Global site tag (gtag.js) - Google Analytics