`
左手边
  • 浏览: 96622 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ibatis+Spring的简单使用(学习中的笔记)

 
阅读更多

1、ibatis配置文件只保留如下内容

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMapConfig      
    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

<sqlMapConfig>

	<!--
		配置映射文件
	-->
	<sqlMap resource="cn/mldn/ibatis/vo/News.xml" />

</sqlMapConfig>

 2、Spring配置文件

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="org.gjt.mm.mysql.Driver">
		</property>
		<property name="url" value="jdbc:mysql://localhost/test"></property>
		<property name="username" value="root"></property>
		<property name="password" value="mysqladmin"></property>
	</bean>

	<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="configLocation">
			<value>classpath:SqlMapConfig.xml</value>
		</property>


	</bean>
<bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
		<property name="sqlMapClient">
			<ref bean="sqlMapClient" />
		</property>
	</bean>


	<bean id="newsdaoimpl" class="cn.mldn.ibatis.dao.impl.NewsDAOImpl">
		<property name="sqlMapClientTemplate">
			<ref bean="sqlMapClientTemplate" />
		</property>
      </bean>

3、实现类如下

package cn.mldn.ibatis.dao.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

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

import cn.mldn.ibatis.dao.NewsDAO;
import cn.mldn.ibatis.vo.News;

public class NewsDAOImpl extends SqlMapClientDaoSupport

 implements NewsDAO {

	public boolean doCreate(News news) throws Exception {

		news.setId((Integer) this.getSqlMapClientTemplate().insert(
				"saveNews", news));
		return true;
	}

	public boolean doDelete(int id) throws Exception {
		this.getSqlMapClientTemplate().delete("deleteNewsById", id);
		return true;
	}

	public boolean doUpdate(News news) throws Exception {
		this.getSqlMapClientTemplate().update("updateNews", news);
		return true;
	}

	public List<News> findAll() throws Exception {
		List all = this.getSqlMapClientTemplate()
				.queryForList("findAllNews");
		return all;
	}

	public News findById(int id) throws Exception {
		News news = (News) this.getSqlMapClientTemplate().queryForObject(
				"findNewsById", id);
		return news;
	}

	public List<News> findAll(int cp, int ls) throws Exception {
		Map map = new HashMap();
		map.put("start", (cp - 1) * ls);
		map.put("ls", ls);
		List all = this.getSqlMapClientTemplate().queryForList(
				"findAllNewsSplit", map);
		return all;
	}


}
 
package cn.mldn.ibatis.service.impl;

import java.util.List;

import cn.mldn.ibatis.dao.NewsDAO;
import cn.mldn.ibatis.service.NewsService;
import cn.mldn.ibatis.vo.News;

public class NewsServiceImpl implements NewsService {

	private NewsDAO newsdao;

	public void setNewsdao(NewsDAO newsdao) {
		this.newsdao = newsdao;
	}

	public boolean doCreate(News news) throws Exception {
		boolean flag = false;
		flag = this.newsdao.doCreate(news);
		return flag;
	}

	public boolean doDelete(int id) throws Exception {
		boolean flag = this.newsdao.doDelete(id);
		return flag;
	}

	public boolean doUpdate(News news) throws Exception {
		boolean flag = this.newsdao.doUpdate(news);
		return flag;
	}

	public List<News> findAll() throws Exception {
		List all = this.newsdao.findAll();
		return all;
	}

	public News findById(int id) throws Exception {
		News news = null;
		news = this.newsdao.findById(id);
		return news;
	}

}

 4、Spring的配置文件中加入一下内容

<bean id="newsserviceimpl" class="cn.mldn.ibatis.service.impl.NewsServiceImpl">
		<property name="newsdao">
			<ref bean="newsdaoimpl" />
		</property>
	</bean>


<!--实务处理-->
<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource">
			<ref bean="dataSource"/>
		</property>
	</bean>


	<bean id="transactionInterceptor"
		class="org.springframework.transaction.interceptor.TransactionInterceptor">
		<property name="transactionManager">
			<ref bean="transactionManager"></ref>
		</property>
		<!-- 
			对doxxx方法进行事务处理。
			PROPAGATION_REQUIRED表示事物处理方式。
			PROPAGATION_REQUIRED:对当前方法使用同一个事务。
			该方法内的所有操作都在同一个连接下完成。如果正常执行,
			则提交,如果出现异常,自动回滚,该方法执行后自动关闭连接。
			PROPAGATION_REQUIRED_NEW:为每个操作建立一个事务,即便中间有一个失败,后面的也继续执行。
			PROPAGATION_NEVER:不处理事务
		
		 -->
		<property name="transactionAttributes">
			<props>
				<prop key="*">PROPAGATION_REQUIRED</prop>
			</props>
		</property>
	</bean>

	<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
		<property name="beanNames">
			<list>
				<value>*serviceimpl</value>
			</list>
		</property>
		<property name="interceptorNames">
			<list>
				<value>transactionInterceptor</value>
			</list>
		</property>
	</bean>
 

 

分享到:
评论

相关推荐

    struts2+ibatis+spring

    Struts2、iBatis和Spring是Java Web开发中的三个重要框架,它们分别在MVC模式、持久层操作和依赖注入方面发挥着关键作用。这三个框架的整合使用,可以构建出高效、灵活的企业级应用。 Struts2是基于MVC(Model-View...

    struts2+spring+ibatis整合项目实例

    `ibatis_3_学习笔记.pdf`可能涵盖了iBatis的基本使用,包括XML配置、动态SQL、结果映射等。 4. **项目实例**:`PrivilegeManageSystem`可能代表了权限管理系统,这是整合这三个框架的一个典型应用场景。通常会涉及...

    iBatis2学习笔记

    2.iBatis2学习笔记:与Spring2的整合.doc 3.iBatis2学习笔记:单表映射 .doc 4.iBatis2学习笔记:SqlMap的配置总结(18条).doc 5.iBatis2学习笔记:入参和返回值的问题.doc 6.iBatis2学习笔记:一对多映射(双向)....

    spring3学习笔记(2)-集成ibatis3进行单元测试

    在本篇“Spring3学习笔记(2)-集成ibatis3进行单元测试”中,我们将深入探讨如何在Spring3框架中整合Ibatis3,并利用它来进行单元测试。这个主题对于理解如何在实际项目中实现数据访问层的测试具有重要意义。在现代...

    maven聚合web工程--struts2+spring

    在描述中提到的"学习maven笔记"部分,我们可以理解这是一个关于Maven学习的过程记录,可能涵盖了Maven的基本概念、配置、生命周期以及如何使用它来构建和管理项目。"尚不能实现自动发布"暗示了作者可能还没有掌握...

    Ibatis 练习Demo和笔记

    8. **最佳实践**:提供在实际项目中使用Ibatis的建议,如合理规划Mapper接口,避免SQL注入等。 【IbatisStudy项目结构及内容】 在提供的压缩包中,"Ibatis 学习笔记.docx"可能是对以上知识点的详细文档,包含了...

    ibatis在web工程中的应用笔记

    标题 "ibatis在web工程中的应用笔记" 涉及的主要知识点是MyBatis(原名iBatis)在Web应用程序开发中的使用。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。下面将详细阐述MyBatis的基本...

    ibatis学习笔记(一)

    博主的笔记可能涵盖这些内容,并通过一个或多个实例来演示如何在实际项目中使用Ibatis。通过阅读这份笔记,读者应该能够掌握Ibatis的基本用法,并具备初步的实战能力。对于深入学习,还可以研究Ibatis的高级特性,如...

    Spring iBatis Learning Notes

    ### Spring与iBatis整合学习笔记 #### 一、目的 本文档旨在展示如何在数据库层面上使用iBatis与Spring进行整合。数据库编程通常涉及数据库连接、连接池、SQL语句、输入输出以及事务处理等内容。Java JDBC作为低...

    持久层框架ibatis学习笔记

    通过本文的学习笔记,我们可以了解到 iBatis 在简化数据库访问的同时提供了足够的灵活性。尽管 iBatis 相比 Hibernate 在自动化程度上略显不足,但对于需要高度定制 SQL 查询的场景来说,iBatis 的优势十分明显。...

    Spring技术内幕 学习笔记

    标题中的“Spring技术内幕 学习笔记”表明这是一份关于深入理解Spring框架核心机制的资料集合,主要关注Spring框架的内部工作原理和高级用法。描述中的“NULL”没有提供额外信息,但我们可以通过标签“源码”和...

    spring2.0学习笔记

    5. **portlet支持**:Spring 2.0增加了对portlet的集成,使得开发者可以在portlet容器中使用Spring MVC,扩展了Spring的应用范围。 6. **声明式事务管理**:Spring 2.0引入了基于XML和注解的声明式事务管理,开发者...

    ibatis大全

    7. **ibatis-login**:可能是一个简单的登录功能示例,展示了如何在iBATIS中处理用户认证,这对于初学者来说是个很好的起点。 综上所述,这个压缩包提供了从理论到实践的全方位iBATIS学习资料,特别适合希望深入...

    ibatis学习笔记

    在实际开发中,iBatis可以与Spring框架结合,通过Spring的依赖注入来管理和初始化SqlSessionFactory,实现更高级的事务管理。同时,iBatis还可以配合Mapper框架,进一步提高开发效率。 总结,iBatis作为一个优秀的...

    spring培训学习笔记

    ### Spring培训学习笔记知识点梳理 ...以上是对Spring培训学习笔记中提到的关键知识点的详细解释与扩展。通过这些内容的学习,开发者可以更好地理解和应用Spring框架,从而构建高质量的Java应用程序。

    struts spring ibatis extjs 实例

    Struts、Spring、iBatis 和 ExtJS 是四个在IT行业中广泛应用的开源框架和技术,它们在构建企业级Java Web应用程序时发挥着重要作用。这个实例由Atanas Neshkov创建,旨在展示这些技术如何协同工作,提供高效且用户...

    iBATIS入门讲解和程序源码+iBATIS开发指南电子书

    通过阅读《iBATIS学习笔记.doc》和《iBATIS-SqlMaps-2_cn.pdf》,你将能够全面掌握iBATIS的基础知识,理解其实现原理,并具备使用iBATIS进行数据库操作的能力。这份资料集不仅适合初学者入门,也对有一定经验的...

    ibatis笔记

    本文将基于“Ibatis笔记”的主题,深入探讨MyBatis的核心概念、功能以及使用方法。 1. **MyBatis简介** MyBatis消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的工作。它使开发者能够更专注于SQL本身,而...

    基于SSM框架+mysql搭建的云笔记系统(仿有道云笔记)源码.zip

    MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 【MySQL数据库】 MySQL是一款关系型数据库管理系统,被广泛应用于互联网...

Global site tag (gtag.js) - Google Analytics