`

Eclipse Spring3.x集成ibatis2.x开发案例

阅读更多

开发环境如以下:

数据库 mysql 5.x

sql脚本

CREATE TABLE `ibatis` (
  `id` varchar(20) NOT NULL,
  `name` varchar(20) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

insert into ibatis values("1","1");
insert into ibatis values("2","2");

 

jar包

 mysql-connector-java-5.1.5-bin.jar

commons-dbcp-1.4.jar

commons-logging-1.0.4.jar

commons-pool-1.6.jar

ibatis-2.3.0.677.jar

mysql-connector-java-5.1.5-bin.jar

spring-aop-3.2.0.RELEASE.jar

spring-aspects-3.2.0.RELEASE.jar

spring-beans-3.2.0.RELEASE.jar

spring-context-3.2.0.RELEASE.jar

spring-core-3.2.0.RELEASE.jar

spring-expression-3.2.0.RELEASE.jar

spring-jdbc-3.2.0.RELEASE.jar

spring-orm-3.2.0.RELEASE.jar

spring-tx-3.2.0.RELEASE.jar

spring-web-3.2.0.RELEASE.jar

spring-webmvc-3.2.0.RELEASE.jar

 

 所有的jar包我已经上传

在src下新建ch10.SpringAndIbatis包,所有的测试文件都在这个包下,废话不多说了,直接贴代码

1.Ibatis.java

package ch10.SpringAndIbatis;

public class Ibatis {
  

private String id;
   private String name;
   public String getId() {
        return id;
   }
   public void setId(String id) {
        this.id = id;
   }
   public String getName() {
        return name;
   }
   public void setName(String name) {
        this.name = name;
   }
   public Ibatis(){
       
   }
public Ibatis(String id, String name) {
    super();
    this.id = id;
    this.name = name;
}
}

 

2.IDAO.java

package ch10.SpringAndIbatis;

import java.util.List;

public interface IDAO {
  public List getList();
  public Ibatis getByName(String name);
  public Ibatis getById(String id);
  public void save(Ibatis ibatis);
  public void delete(String id);
  public void update(Ibatis ibatis);
}

 

3.TestDao.java

package ch10.SpringAndIbatis;

import java.util.List;

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

public class TestDAO extends SqlMapClientDaoSupport implements IDAO {

    public void delete(String id) {
        getSqlMapClientTemplate().delete("deleteUsers", id);
    }

    public Ibatis getById(String id) {
        return (Ibatis)getSqlMapClientTemplate().queryForObject("getUsersById",id);
    }

    public Ibatis getByName(String name) {
        
        return (Ibatis)getSqlMapClientTemplate().queryForObject("getUsersByName",name);
    }

    public List getList() {
        return getSqlMapClientTemplate().queryForList("getAllUsers",null);
    }

    public void save(Ibatis ibatis) {
        getSqlMapClientTemplate().insert("insertUsers",ibatis);
    }

    public void update(Ibatis ibatis) {
        getSqlMapClientTemplate().update("updateUsers", ibatis);
    }

}

 

4.Ibatis.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 >
  <typeAlias type="ch10.SpringAndIbatis.Ibatis" alias="user"/>
  <resultMap id="ibatisTest" class="user" >
    <result column="id" property="id" jdbcType="VARCHAR" />
    <result column="name" property="name" jdbcType="VARCHAR" />
  </resultMap>
  
  <!-- 获得全查询列表 -->
  <select id="getAllUsers" resultMap="ibatisTest">
    select * from Ibatis
  </select>
  
   <!-- 根据用户名获得用户对象 -->
   <select id="getUsersByName" resultMap="ibatisTest">
     select * from Ibatis where name=#value#
  </select> 
  
  <!-- 根据id获得用户对象 -->
    <select id="getUsersById" resultMap="ibatisTest">
     select * from Ibatis where id=#value#
  </select> 
  
   <!-- 新增用户对象 -->
   <insert id="insertUsers" parameterClass="user">
      insert into ibatis (id,name) values (#id#,#name#)
   </insert>
   
   <!-- 删除用户对象 -->
   <delete id="deleteUsers">
     delete from ibatis where id=#value#
   </delete>
   
   <!-- 更新用户对象 -->
   <delete id="updateUsers" parameterClass="user">
      update ibatis set name=#name# where id=#id#
   </delete>
</sqlMap>

 

5.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> 

<sqlMap resource="ch10/SpringAndIbatis/Ibatis.xml" /> 

</sqlMapConfig>

 

6.applicationContext.xml,注意修改你数据库配置

<?xml version="1.0" encoding="UTF-8"?>
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">


<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName">
    <value>com.mysql.jdbc.Driver</value>
  </property>
  <property name="username">
    <value>root</value>
  </property>
  <property name="password">
    <value>admin</value>
  </property>
  <property name="url">
    <value>jdbc:mysql://localhost:3306/bosdbo</value>
  </property>
</bean>

<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
  <!-- 此处应注入ibatis配置文件,而非sqlMap文件,否则会出现“there is no statement.....异常” -->
  <property name="configLocation">
     <value>ch10/SpringAndIbatis/sqlMapConfig.xml</value>
  </property>

</bean>

<bean id="testDAO" class="ch10.SpringAndIbatis.TestDAO">
   <property name="dataSource">
   <ref bean="dataSource"/>
 </property>
  <property name="sqlMapClient">
    <ref bean="sqlMapClient"/>
  </property>
</bean>
 </beans>

 

7.Test.java

package ch10.SpringAndIbatis;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {

    /** *//**
     * @param args
     */																						
    public static void main(String[] args) {
        ApplicationContext context=new ClassPathXmlApplicationContext("ch10/SpringAndIbatis/applicationContext.xml");
        TestDAO testDAOImpl=(TestDAO)context.getBean("testDAO");

        //获得全查询列表
        System.out.println("获得全查询列表");
        List result=new ArrayList();
        result=testDAOImpl.getList();
        for (Iterator iter = result.iterator(); iter.hasNext();) {
            Ibatis element = (Ibatis) iter.next();
            System.out.println(element.getName());

        }    
        
       //根据用户名获得用户对象
        System.out.println("根据用户名获得用户对象");
        Ibatis ibatis=testDAOImpl.getByName("1");
        System.out.println(ibatis.getName());
        
       //根据id获得用户对象
        System.out.println("根据id获得用户对象");
        Ibatis ibatis1=testDAOImpl.getById("1");
        System.out.println(ibatis.getName());
        
       //新增用户对象
        System.out.println("-----------------");
        System.out.println("新增用户对象前");
        List result1=new ArrayList();
        result1=testDAOImpl.getList();
        for (Iterator iter = result1.iterator(); iter.hasNext();) {
            Ibatis element = (Ibatis) iter.next();
            System.out.println(element.getName());

        }    
        testDAOImpl.save(new Ibatis("3","3")); //新增用户
        System.out.println("新增用户对象后");
        List result2=new ArrayList();
        result2=testDAOImpl.getList();
        for (Iterator iter = result2.iterator(); iter.hasNext();) {
            Ibatis element = (Ibatis) iter.next();
            System.out.println(element.getName());
        }    
        System.out.println("-----------------");
        
        //删除用户对象
        System.out.println("-----------------");
        System.out.println("删除用户对象前");
        List result3=new ArrayList();
        result3=testDAOImpl.getList();
        for (Iterator iter = result3.iterator(); iter.hasNext();) {
            Ibatis element = (Ibatis) iter.next();
            System.out.println(element.getName());

        }    
        testDAOImpl.delete("3"); //删除用户
        System.out.println("删除用户对象后");
        List result4=new ArrayList();
        result4=testDAOImpl.getList();
        for (Iterator iter = result4.iterator(); iter.hasNext();) {
            Ibatis element = (Ibatis) iter.next();
            System.out.println(element.getName());
        }    
        System.out.println("-----------------");
        
        
        //更新用户对象
        System.out.println("-----------------");
        System.out.println("更新用户对象前");
        List result5=new ArrayList();
        result5=testDAOImpl.getList();
        for (Iterator iter = result5.iterator(); iter.hasNext();){
            Ibatis element = (Ibatis) iter.next();
            System.out.println(element.getName());

        }    
        
        Ibatis ibatis3=testDAOImpl.getById("1");
        ibatis3.setName("new1");
        testDAOImpl.update(ibatis3);//更新用户对象
        
        
        System.out.println("更新用户对象后");
        List result6=new ArrayList();
        result6=testDAOImpl.getList();
        for (Iterator iter = result6.iterator(); iter.hasNext();) {
            Ibatis element = (Ibatis) iter.next();
            System.out.println(element.getName());
        }    
        System.out.println("-----------------");
}
    }

 

 

ps:测试结果

信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@110c31: defining beans [dataSource,sqlMapClient,testDAO]; root of factory hierarchy
获得全查询列表
1
2
根据用户名获得用户对象
1
根据id获得用户对象
1
-----------------
新增用户对象前
1
2
新增用户对象后
1
2
3
-----------------
-----------------
删除用户对象前
1
2
3
删除用户对象后
1
2
-----------------
-----------------
更新用户对象前
1
2
更新用户对象后
new1
2
----------------- 

 

 参考文档:http://blog.csdn.net/daryl715/article/details/1760793

  • jar.7z (5.5 MB)
  • 下载次数: 68
分享到:
评论
1 楼 duan_1991 2013-04-13  
在Test.java 测试类执行第二次时,会出现
获得全查询列表
new1
2
根据用户名获得用户对象
Exception in thread "main" java.lang.NullPointerException
at ch10.SpringAndIbatis.Test.main(Test.java:32)

原因是字段name的值修改成new1了,没有所找name为1的值,才抛出异常
因为笔者在测试时,没有try catch。

相关推荐

    eclipse开发的ssi整合struts2+ibatis2.x+spring2.5

    总的来说,"eclipse开发的ssi整合struts2+ibatis2.x+spring2.5"是一个实用的学习案例,旨在帮助新手理解这三大框架的协同工作方式。通过实际操作,可以加深对Java Web开发的理解,提升项目开发技能。

    springboot+mysql+ibatis完整整合案例

    在本项目中,"springboot+mysql+ibatis完整整合案例"是一个针对初学者的教程,旨在演示如何将Spring Boot、MySQL数据库和MyBatis框架有效地集成在一起,创建一个可运行的应用程序。以下是对这些技术及其整合过程的...

    Struts2+Spring+ibatis集成案例(实现了增删查改功能)

    在这个集成案例中,我们将深入探讨如何实现Struts2、Spring和iBatis的整合,并实现增删查改(CRUD)的基本功能。 首先,Struts2是基于MVC设计模式的开源Web应用框架,用于处理用户请求并展示结果。它的核心是Action...

    Spring API

    11.7.2. 处理BLOB 和 CLOB对象 11.7.3. 在IN语句中传入一组参数值 11.7.4. 处理复杂类型的存储过程调用 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate 12.2.1. 资源管理 12.2.2. 在Spring容器中...

    Spring中文帮助文档

    13.9.2. form标签 13.9.3. input标签 13.9.4. checkbox标签 13.9.5. checkboxes标签 13.9.6. radiobutton标签 13.9.7. radiobuttons标签 13.9.8. password标签 13.9.9. select标签 13.9.10. option标签 ...

    springboot整合mybatis案例(注解方式)

    首先,我们需要确保已安装了Java Development Kit (JDK)、Maven和集成开发环境(IDE),例如IntelliJ IDEA或Eclipse。接下来,创建一个新的Spring Boot项目,并在`pom.xml`文件中添加以下依赖: 1. Spring Boot ...

    extjs_struts_ibatis_sqlserver开发实例

    这个教程适合对Java Web有一定基础,希望深入理解并掌握EXTJS、Struts2、iBatis和Spring集成开发的开发者。通过实践,学习者不仅可以提升技术技能,还能了解到如何在实际项目中合理运用这些工具和技术,提升开发效率...

    spring mvc+ibats实例

    在Spring MVC中集成iBatis,通常需要配置Spring的DataSource、SqlSessionFactoryBean、MapperScannerConfigurer等。MapperScannerConfigurer会扫描指定包下的Mapper接口,Spring会自动创建对应的SqlSessionTemplate...

    SSM框架-详细整合教程(Spring+SpringMVC+MyBatis).pdf

    SSM框架,即Spring、SpringMVC和MyBatis的集成,是Java开发中常见的Web应用程序框架组合。这个框架集合提供了完整的后端解决方案,涵盖了依赖注入(DI)、面向切面编程(AOP)、模型视图控制器(MVC)以及持久层操作...

    springMVC+ibatis的源码

    SpringMVC和iBatis的集成可以通过Spring的DataSource、SqlSessionFactoryBean等配置实现,这样可以让Spring管理iBatis的生命周期,提供事务控制等高级功能。 在提供的压缩包文件中提到的"Velocity"可能是Velocity...

    企业信息管理系统 SSI

    在本案例中,系统名为"SSI",采用的技术栈包括Struts1、Spring和iBatis,这三大框架在Java Web开发领域具有广泛的应用。 Struts1是一个基于MVC(Model-View-Controller)设计模式的开源框架,它主要负责控制应用的...

    Mybatis---从最基础案例带你深入了解“她”

    - 从GitHub (https://github.com/mybatis/mybatis-3/releases) 下载MyBatis的相关文件,包括`mybatis-3.x.x.jar`、依赖包(`lib`目录)和使用手册(`mybatis-3.x.x.pdf`)。 2. **创建MySQL数据库**: - 在MySQL中创建...

    一个标准的MVC结构的SSI,实现了用户注册,查询,删除,修改操作

    4. **MyEclipse**:MyEclipse是基于Eclipse的集成开发环境,专门用于Java EE项目的开发。在这个项目中,开发者使用MyEclipse来编写、调试和部署代码。 5. **MySQL**:MySQL是一个开源的关系型数据库管理系统,被...

    java毕业设计 源码

    5. **开发环境**:开发环境使用的是MyEclipse6.0,这是一款集成开发环境,集成了Eclipse和MySql等插件,方便Java Web项目的开发和调试。 6. **运行环境**:系统运行在Tomcat6.0服务器上,配合MySQL5.0数据库。...

    struts2系列教程

    - **环境搭建**:包括开发工具的选择(如Eclipse)、JDK版本、Tomcat服务器等。 - **基本配置**:设置`struts.xml`配置文件,定义Action、结果页面等。 - **Hello World示例**:通过简单的示例介绍如何创建第一个...

    java quartz sping 结合

    在"java quartz spring 结合"的场景中,Eclipse工程是开发环境,它包含了与数据库交互的Spring配置以及使用iBatis作为持久层的设置。iBatis是一个SQL映射框架,它可以将SQL语句与Java代码分离,提高代码的可维护性。...

    Java开发就业培训.pdf

    同时,还将涉及Java高级特性,如多线程编程和Socket编程,以及如何在Eclipse和NetBeans等集成开发环境中进行有效工作。此外,学员还将学习Linux的基本操作,如文件系统、输入输出流和文件操作,以及界面编程的基础。...

    struts2的速成教程,充电的都来看了

    - **快速入门指南**:介绍如何快速搭建Struts2的开发环境,包括安装所需的软件(如JDK、Tomcat等)、配置开发工具(如Eclipse、IntelliJ IDEA等)以及创建第一个Struts2项目。 - **基本概念**:解释Struts2中的核心...

Global site tag (gtag.js) - Google Analytics