`

【SSI开发总结.2】spring整合ibatis

 
阅读更多

1.Spring 配置文件:

<!-- 1.配置数据源 -->
<bean id="myDataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"
value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />
<property name="url"
value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=game" />
<property name="username" value="sa" />
<property name="password" value="123456" />
</bean>
<!-- 2.配置数据工厂(ibatis) -->
<bean id="myIbatis"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation"
value="/WEB-INF/ibatis-sql-map-config.xml" />
<property name="dataSource" ref="myDataSource" />
</bean>

<!-- 3.DAO组件注入ibatis -->

<bean id="testDao" class="dao.TestDao">
<property name="sqlMapClient" ref="myIbatis" />
</bean>

2.ibatis映射 文件

<?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=” 返回类型的类的路径” alias=” 类别名”>// 创建一个类型别名

<resultMap class=” 类别名” id=”result”>

<result property=” 属性名称” column=” 对应表的字段名”>

</resultMap>

//如果字段和POJO属性完全相同,resultClass="类别名"就可以了,并不需要定义resultMap节点

//不过,如果要定义表的关系特性,后面的介绍可以看出,还是需要定义resultMap节点的。

//如果包含参数,用parameterClass="java.lang.String"(基本类型)

//或者parameterClass="类别名"(类)就可以了

<select id =”getAll” resultMap=”result">

Select * from test

</select>

</sqlMap>

3. 所有持久化类都必须继承SqlMapClientDaoSupport

public class TestDao extends SqlMapClientDaoSupport

{

// getSqlMapClientTemplate() 获得ibatis 的调用.它提供一系列方法方便调用SQL返回结果,或者更新数据

Public List getAll()

{

return getSqlMapClientTemplate().queryForList(“getAll”,null);

}

}

项目关系简单,并没有用到IBATIS的关系特性,以下为使用介绍:

4. 一对一关联

Eg

表结构

CustomerDetails

{

CustomerDetailId int not null,// 主建

Data varchar(255) not null

};

Customers

{

CustomerId int not null,// 主建

FirstName varchar(50) not null,

ListName varchar(50) not null,

CustomerDetailId int not null,// 为表CustomerDetails 的主建值

CustomerGossip int not null // 为表CustomerDetails 的主建值

}

属性javabean

Customer

{

Private int customerId;

Private String firstName;

Private String lastName;

Private CustomerDetail customerDetail;

Private CustomerDetail customerGossip;

}

CustomerDetail

{

Private int customerDetailId;

Private String data;

}

Ibatis 配置文件

<sqlMap>

<typeAlias type=”Customer” alias=”customer”>// 创建一个类型别名

<typeAlias type=”CustomerDetail” alias=”customerDetail”>

<resultMap class=”customer” id=”result”>

<result property=” customerId” column=” CustomerId”>

<result property=” firstName” column=” FirstName”>

<result property=” lastName” column=” LastName”>

</resultMap>

<resultMap class=”customerDetail” id=”gossipResult”>

<result property=” customerDetailId” column=” CustomerDetailId”>

<result property=” data” column=” Data”>

</resultMap>

<resultMap class=”customer” id=”resultDetail” extends=”result”>

// 设置CustomerDetail 对象的customerDetailId 属性

<result property=” customerDetail . customerDetailId” column=” CustomerDetailId”>

// 设置CustomerDetail 对象的data 属性

<result property=” customerDetail .data” column=” Data”>

// 获得的数据可能为空

<result property=” customerGossip” select=”getCustomerGossipById” column=” CustomerGossip” >

</resultMap>

<select id =” getCustomerById” resultMap=” resultDetail” ParameterClass=”int”>

Select c.CustomerId as CustomerId,c.FirstName as FirstName,c.LastName as LastName ,c.customerDetail as CustomerDetail ,c.customerGossip as CustomerGossip, cd.CustomerDetailId as CustomerDetailId , cd.Data as Data from Customer c,CustomerDetails cd, wherec. CustomerDetailId =cd. CustomerDetailId and CustomerDetailId=##

</select>

<select id =” getCustomerGossipById” resultMap=” gossipResult” ParameterClass=”int”>

Select * from CustomerDetails where CustomerDetailId=##

</select>

</sqlMap>

Dao 类调用

Return(Customer)getSqlMapClientTemplate().queryForObject(“getCustomerById”,new integer(1));

5. 一对多关联

Eg: 一个Order 对应多个Lines

Order

{

OrderId int not null

Customer int not null

}

Lines

{

OrderLineId int not null,

OrderId int not null,

Product varchar(255) not null,

Price decimal(10,2) not null

}

属性javabean

Order

{

Private int orderId

Private int customer

Private List orderLines

}

OrderLine

{

Private int orderLineId

Private int orderId

Private String produce

Private BigDecimal price

}

配置文件

<resultMap class=”Order” id=”resultOrder”>

<result property name=”orderId” column=”OrderId”>

<result property name=”customer” column=”Customer”>

<result property name=”orderLines” select=”getOrderLineByOrder” column=”OrderId”>

</resultmap>

<resultMap class=”OrderLine” id=”resultOrderLine”>

<result property name=”orderLineId” column=”OrderLineId”>

<result property name=”orderId” column=”OrderId”>

<result property name=”product” column=”Product”>

<result property name=”price” column=”Price”>

</resultmap>

<select id=”getOrder” resultmap=”resultOrder” parameterClass=”int”>

Select * from Orders where OrderId=##

</select>

<select id=” getOrderLineByOrder” resultmap=”resultOrder” parameterClass=”int”>

Select * from OrderLines where OrderId=##

</select>

Dao 调用

Return (Order)getSqlMapClientTemplate().queryForObject(“getOrder”,new Integer(1));

分享到:
评论

相关推荐

    ssi_struts2_spring_ibatis 增删改查分页

    标题中的"ssi_struts2_spring_ibatis"指的是一个基于Java技术栈的Web应用程序开发框架组合,主要包括Struts2、Spring和iBatis。这三个组件是企业级Java应用中的常见选择,它们各自承担着不同的职责。 1. **Struts2*...

    图文搭建SSI(struts+spring+ibatis)框架

    本文将详细介绍如何使用MyEclipse8.5进行SSI(Struts2、Spring2.5、iBatis)框架的整合搭建。首先,我们需要一个新的Web项目作为基础。 1. **创建Web Project** 在MyEclipse8.5中,选择`File` -&gt; `New` -&gt; `...

    ssi2(struts2+spring+ibatis)整合加用户增加改查操作

    总的来说,"ssi2(struts2+spring+ibatis)整合加用户增加改查操作"是一个完整的Java Web开发实践,涵盖了MVC框架的整合、数据库操作和基本的业务逻辑处理。理解并掌握这些知识点,对于提升Java Web开发能力具有重要...

    ssi——struts2+spring+ibatis(登入+增删改查)

    Struts2、Spring和iBatis是Java Web开发中常用的三大框架,它们组合起来被称为SSI,常用于构建高效、灵活的企业级应用。本项目通过这三个框架实现了一个基础的登录及增删改查功能,非常适合初学者进行学习和实践。 ...

    ssi.rar_ibatis_ibatis struts2_java ssi_myeclipse ssi_struts2

    ibatis_ibatis_struts2_java ssi_myeclipse ssi_struts2"揭示了这个压缩包文件包含的内容,主要涉及到SSI(Server Side Include)技术、MyEclipse开发环境、以及三大框架——Struts2、Spring和iBatis的整合应用。...

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

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

    ssi小项目struts+spring+ibatis

    SSI,即Struts + Spring + iBatis,是一种常见的Java Web开发框架组合,用于构建高效、灵活的企业级应用。这个小项目集成了这三个组件,旨在实现数据持久化、业务逻辑控制以及视图展现的分离。 Struts是MVC(Model-...

    Ssi的整合(Struts2+Spring+Ibatis)

    **SSI整合:Struts2+Spring+Ibatis详解** 在Java Web开发中,Struts2、Spring和Ibatis是常见的三大框架,它们各自负责不同的职责,共同构建出强大的后端应用架构。Struts2作为MVC框架处理请求和视图展示,Spring...

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

    4. SSI整合:SSI是Struts2、Spring和iBatis的简称,它们的整合可以实现一个松耦合、可测试、易于维护的Java Web应用。在整合过程中,Struts2负责用户交互,Spring负责业务逻辑和依赖管理,iBatis则处理数据访问。...

    spring和ibatis整合

    在整合iBatis时,Spring会管理SqlSessionFactory和SqlSessionTemplate,这些都是与数据库交互的关键组件。 2. **配置文件**:在整合过程中,需要创建XML配置文件,如`sqlMapConfig.xml`来配置iBatis的基本设置,...

    s2si框架 ssi框架 structs2+spring+ibatis组合框架(内含例子)

    综上所述,S2SI框架是Java Web开发的一种高效选择,它整合了Structs2的MVC设计模式,Spring的全面服务管理和Ibatis的灵活数据库操作,为开发者提供了强大且灵活的开发工具。通过学习和实践这个框架,开发者可以提升...

    Struts+Spring+Ibatis整合的Jar包

    这个"SSI"整合的Jar包,为开发者提供了一个快速搭建基于Struts2、Spring和Ibatis的开发环境,节省了手动下载和配置各个框架的时间,便于项目初始化和快速启动。开发者只需关注业务逻辑的实现,无需过多关注底层框架...

    struts+spring+ibatis框架集合教程

    5. 教程内容:提供的文档"搭建SSI框架.doc"、"SSI框架搭建.doc"、"Struts+Spring+Ibatis整合框架搭建配置文档.doc"详细介绍了如何一步步搭建和配置这个集成环境。这些文档涵盖了从环境准备、框架下载、配置文件设置...

    ssi struts2+spring+ibatis oracle lib

    标题 "ssi struts2+spring+ibatis oracle lib" 提供了关于这个压缩包的核心信息,它包含了在Java开发中常用的三个框架——Struts2、Spring和iBatis的库文件,以及可能与Oracle数据库相关的组件。这个组合常用于构建...

    struts2+spring+Ibatis框架包

    Struts2、Spring和iBatis是Java Web开发中三个非常重要的开源框架,它们共同构建了一个灵活、可扩展且高效的应用程序开发环境。这个“struts2+spring+iBatis框架包”集成了这三个框架,使得开发者能够快速构建基于...

    SSI框架整合例子(spring+struts+ibatis)

    在本例中,iBatis作为数据访问层,负责与数据库交互,通过XML配置文件或注解定义SQL语句,与Spring整合后,可以在Spring的事务管理下进行数据库操作。 整合这三个框架的过程主要包括以下步骤: 1. **配置Spring**...

    SSI(struts2+ibatis+spring)

    SSI,即Struts2、Spring和iBatis的整合,是一种常见的Java Web开发框架组合,用于构建高效、灵活的企业级应用程序。在这个小例子中,开发者已经完成了一个基本的CRUD(创建、读取、更新、删除)应用,并包含了完整的...

    SSI+EXT (Struts2+Spring+Ibatis+Ext)

    总结来说,SSI+EXT组合提供了完整的前后端开发解决方案,Struts2处理请求,Spring管理业务逻辑,Ibatis负责数据库操作,而Ext JS则为用户提供了友好的交互界面。这个项目实例对于学习和理解这些技术的集成以及实际...

    SSI2 Struts2+Spring2.5+IBatis2 配置

    Struts2、Spring2.5 和 iBatis2 是经典的Java Web开发框架组合,它们各自在应用程序的不同层面提供了强大的功能。下面将详细讲解这三大框架的集成配置以及log4j的相关知识。 首先,Struts2 是一个基于MVC(Model-...

    Struts2+Spring2+iBatis2整合的例子

    Struts2、Spring和iBatis是Java Web开发中三个非常重要的框架,它们分别负责表现层、业务层和数据访问层。将这三个框架整合在一起,可以实现MVC(Model-View-Controller)架构,提高应用的灵活性和可维护性。 **...

Global site tag (gtag.js) - Google Analytics