`
senton
  • 浏览: 205738 次
  • 性别: Icon_minigender_1
  • 来自: 紫禁城
社区版块
存档分类
最新评论

ibatis和Spring整合的详细例子

阅读更多

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

2.建POJO类,在此我们用的是一个Student类.
 package cn.itcast;
 
 public class Student {
  private Integer id;
 
  private String firstname;
 
  private String lastname;
 
  public String getFirstname() {
   return firstname;
  }
 
  public void setFirstname(String firstname) {
   this.firstname = firstname;
  }
 
  public Integer getId() {
   return id;
  }
 
  public void setId(Integer id) {
   this.id = id;
  }
 
  public String getLastname() {
   return lastname;
  }
 
  public void setLastname(String lastname) {
   this.lastname = lastname;
  }
 }

3.POJO的映射文件Student.xml,在这里面只有两个功能,即根据student的id检索出一个Student对象,另一
  个就是向数据库插入一条记录(一个Student对象),注意:此应用程序中所有的配置文件(xml文件和
  properties文件都放在configfile包下面).
 <?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">
 <!--这是POJO映射文件的根元素-->
 <sqlMap namespace="Student">
  <!--select元素的id属性用来标识此元素,resultClass属性的值是Java类的全限定名(即包括类的包名)。
  resultClass属性可以让您指定一个Java类,根据ResultSetMetaData将其自动映射到JDBC的ResultSet。
  只要是Java Bean的属性名称和ResultSet的列名匹配,属性自动赋值给列值。
  parameterClass属性是参数的类型,此属性的值是Java类的全限定名(即包括类的包名)。
  它是可选的,但强烈建议使用。它的目的是 限制输入参数的类型为指定的Java类,并
  优化框架的性能。-->
  <select id="getStudentById" resultClass="cn.itcast.Student" parameterClass="int">
   select id,firstname,lastname from student where id=#value#
  </select>
  
  <insert id="insertStudent" parameterClass="cn.itcast.Student">
   insert into student(firstname,lastname) values(#firstname#,#lastname#)
  </insert>
 </sqlMap>

4.建一个SqlMap的配置文件sql-map-config.xml,sqlMap元素的resource属性告诉Spring去哪找POJO映射文件.
 <?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="configfile/Student.xml" />
 </sqlMapConfig>

5.jdbc.properties文件,存储数据库连接的driver,url,username,password等信息,
 jdbc.driver=com.mysql.jdbc.Driver
 jdbc.url=jdbc:mysql://localhost/itcast
 jdbc.username=root
 jdbc.password=


6.Spring配置文件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告诉Spring去哪找数据库的配置信息,因为有此Bean才出现下面用${}标记来取变量的语句-->
  <bean id="propertyConfig"
   class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
   <property name="location">
    <value>configfile/jdbc.properties</value>
   </property>
  </bean>
 
  <!--配置一个数据源,根据上面propertyConfig指定的location去找数据库连接的配置信息-->
  <bean id="dataSource"
   class="org.springframework.jdbc.datasource.DriverManagerDataSource">
   <property name="driverClassName">
    <value>${jdbc.driver}</value>
   </property>
   <property name="url">
    <value>${jdbc.url}</value>
   </property>
   <property name="username">
    <value>${jdbc.username}</value>
   </property>
   <property name="password">
    <value>${jdbc.password}</value>
   </property>
  </bean>
 
  <!--根据dataSource和configLocation创建一个SqlMapClient-->
  <bean id="sqlMapClient"
   class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
   <property name="configLocation">
    <value>configfile/sql-map-config.xml</value>
   </property>
   <property name="dataSource">
    <ref bean="dataSource" />
   </property>
  </bean>
 
  <!--根据sqlMapClien创建一个SqlMapClient模版类--> 
  <bean id="sqlMapClientTemplate"
   class="org.springframework.orm.ibatis.SqlMapClientTemplate">
   <property name="sqlMapClient">
    <ref bean="sqlMapClient" />
   </property>
  </bean>
  
  <!--将上面的模版类织入到我们的DAO对象中-->
  <bean id="studentDao" class="cn.itcast.StudentDaoSqlMap">
   <property name="sqlMapClientTemplate">
    <ref bean="sqlMapClientTemplate" />
   </property>
  </bean>
 
 </beans>

7.StudentDaoSqlMap 是一个DAO,它负责和数据库的交互,在这里实现了查询单条记录和插入单条记录的功能.
 package cn.itcast;
 
 import org.springframework.orm.ibatis.SqlMapClientTemplate;
 
 public class StudentDaoSqlMap {
  private SqlMapClientTemplate sqlMapClientTemplate;
 
  public SqlMapClientTemplate getSqlMapClientTemplate() {
   return sqlMapClientTemplate;
  }
 
  public void setSqlMapClientTemplate(
    SqlMapClientTemplate sqlMapClientTemplate) {
   this.sqlMapClientTemplate = sqlMapClientTemplate;
  }
 
  //此方法的返回值与Student.xml的select元素的resultClass对应.
  public Student getStudent(Integer id) {
   return (Student) sqlMapClientTemplate.queryForObject("getStudentById",id);
   //注意:queryForObject方法返回一个Object,第一个参数与Student.xml的select元素
   //的id属性值对应,第二个参数的类型与Student.xml的select元素的parameterClass
   //属性值对应.
  }
 
  public Object insertStudent(Student student) {
   return sqlMapClientTemplate.insert("insertStudent", student);
  }
 }

8.下面写一个带main函数的类来测试上面的代码.代码非常简单就不再解释了.
 package cn.itcast;
 
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 public class Client {
 
  public static void main(String[] args) {
   ApplicationContext factory = new ClassPathXmlApplicationContext(
     "applicationContext.xml");
 
   StudentDaoSqlMap studentDao = (StudentDaoSqlMap) factory
     .getBean("studentDao");
   
   //插入一个student
   Student student = new Student();
   student.setFirstname("tian");
   student.setLastname("xiangdong");
   studentDao.insertStudent(student);
 
   //查询出id是1的Student对象.
   //Student student = studentDao.getStudent(1);
   //System.out.println(student.getId());
   //System.out.println(student.getFirstname());
   //System.out.println(student.getLastname());
  }
 
 }
 

分享到:
评论

相关推荐

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

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

    ibatis和spring整合开发 例子

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

    iBatis与Spring整合的例子

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

    ibatis与Spring整合例子

    接下来,我们将详细讨论如何在Spring中整合iBATIS,以及涉及到的相关知识点。 首先,为了实现iBATIS和Spring的整合,我们需要引入相应的库文件。如文件描述所示,我们需要`spring-framework-1.2.7.jar`、`iBATIS_...

    struts+iBATIS+spring整合例子

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

    ibatis+spring+struts2 整合开发例子

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

    ibatis 2 and spring 例子

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

    struts2+ibatis+spring的小例子

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

    backbone+bootstrap+ibatis+spring例子

    下面将详细介绍这些技术及其在"backbone+bootstrap+ibatis+spring例子"中的应用场景。 **Backbone.js** 是一个轻量级的JavaScript框架,主要用于构建结构化的前端应用。它提供了Model、View、Collection和Router等...

    spring+ibatis+ehcache整合例子

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

    ibatis+Spring+struts2整合实例

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

    struts+spring+ibatis+mysql整合小例子(适用于新手)

    Struts、Spring、Ibatis和Mysql是Java Web开发中常用的四大框架,它们组合在一起可以构建出高效、灵活的企业级应用程序。本示例是专为新手设计的一个整合教程,通过详细注解帮助初学者理解这四个组件如何协同工作。 ...

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

    本文将深入探讨如何利用Ibatis实现一对多关系、批处理、事务管理和与Spring及Struts2的集成。 首先,让我们来看一下“一对多”关系。在数据库设计中,一对多关系很常见,比如一个用户可以有多个订单。在Ibatis中,...

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

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

    struts2 + spring + ibatis 整合例子

    Spring还包含了一个强大的数据访问集成层,支持多种持久化技术,包括JDBC、Hibernate和iBatis。 **iBatis框架**: iBatis是一个简单但功能强大的SQL映射框架,它将SQL语句与Java代码分离,使得数据库操作更加灵活和...

    struts2+ibatis+spring集成

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

Global site tag (gtag.js) - Google Analytics