`
tonyJ
  • 浏览: 145479 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

spring和ibatis综合应用入门示例

 
阅读更多
1、最近几天在学习ibatis和spring,就把两者综合起来,写了示例。
2、构建数据库表user,使用数据库是mysql;
create table user(
   id int(10) not null auto_increment,
   userName varchar(20) ,
   passWord varchar(20),
   primary key(id) 
);

insert into user(userName,passWord) values('admin1','admin1');
insert into user(userName,passWord) values('admin2','admin2');
insert into user(userName,passWord) values('admin3','admin3');
insert into user(userName,passWord) values('admin4','admin4');


2、根据数据库表生成相应的JavaBean
package com.tonyj.bean;
/**
 * @author tonyJ
 * @date 2012-3-17 下午01:00:25
 */
public class User {
	private int id;
	private String userName;
	private String passWord;
	//相应的getter和setter方法,构造方法
}


3、对应JavaBean的配置文件User.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 alias="User" type="com.tonyj.bean.User"/>
	<resultMap class="User" id="userResultMap">
		<result property="id" column="id"/>
		<result property="userName" column="userName"/>
		<result property="passWord" column="passWord"/>
	</resultMap>
	<!-- 获得全查询列表 -->
	<select id="getAllUsers" resultMap="userResultMap">
		select * from user
	</select>
	<!-- 根据用户名查询用户对象 -->
	<select id="getUserByName" resultMap="userResultMap" parameterClass="String">
		select * from user where userName=#value#
	</select>
	<!-- 根据用户id查询用户对象 -->
	<select id="getUserById" resultMap="userResultMap" parameterClass="Integer">
		select * from user where id=#value#
	</select>
	<!--新增用户对象 -->
	<insert id="insertUser" parameterClass="User">
		insert into user(userName,passWord) values(#userName#,#passWord#)
	</insert>
	<!-- 删除用户对象 -->
	<delete id="deleteUser" parameterClass="Integer">
		delete from users where id=#id#
    </delete>
    <!-- 更新用户对象 -->
    <update id="updateUser" parameterClass="User">
    	update user set userName=#userName#,passWord=#passWord# where id=#id#
    </update>
</sqlMap>


4、ibatis和spring的配置文件
ibatis的配置sqlMapConfig.xml文件:
<?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="User.xml"/>
</sqlMapConfig>


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 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>sa</value>
		</property>
		<property name="url">
			<value>jdbc:mysql://localhost:3306/vin</value>
		</property>
	</bean>
	<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
		<!-- 此处应注入ibatis配置文件,而非sqlMap文件,否则会出现“there is no statement.....异常” -->
		<property name="configLocation" value="SqlMapConfig.xml"/>
	</bean>
	<bean id="IUserDao" class="com.tonyj.dao.impl.IUserDao">
		<property name="dataSource">
			<ref bean="dataSource"/>
		</property>
		<property name="sqlMapClient">
			<ref  bean="sqlMapClient"/>
		</property>
	</bean>
</beans>


5、编写相应的类
UserDao.java
package com.tonyj.dao;

import java.util.List;

import com.tonyj.bean.User;

/**
 * @author tonyJ
 * @date 2012-3-17 下午12:59:22
 */
public interface UserDao {
	public List<User> getUserList();
	public User getUserByName(String userName);
	public User getUserById(int id);
	public void saveUser(User user);
	public int updateUser(User user);
	public int deleteUser(int id);
}


IUserDao.java
package com.tonyj.dao.impl;

import java.util.List;

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

import com.tonyj.bean.User;
import com.tonyj.dao.UserDao;

/**
 * @author tonyJ
 * @date 2012-3-17 下午01:04:23
 */
public class IUserDao extends SqlMapClientDaoSupport implements UserDao{

	@SuppressWarnings("unchecked")
	@Override
	public List<User> getUserList() {
		return getSqlMapClientTemplate().queryForList("getAllUsers");
	}

	@Override
	public User getUserByName(String userName) {
		return (User) getSqlMapClientTemplate().queryForObject("getUserByName", userName);
	}

	@Override
	public User getUserById(int id) {
		return (User) getSqlMapClientTemplate().queryForObject("getUserById", id);
	}

	@Override
	public void saveUser(User user) {
		getSqlMapClientTemplate().insert("insertUser", user);
	}

	@Override
	public int updateUser(User user) {
		return getSqlMapClientTemplate().update("updateUser",user);
	}

	@Override
	public int deleteUser(int id) {
		return getSqlMapClientTemplate().delete("deleteUser", id);
	}

}


TestIUserDao.java
package com.tonyj.test;

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

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

import com.tonyj.bean.User;
import com.tonyj.dao.impl.IUserDao;

/**
 * @author tonyJ
 * @date 2012-3-17 下午01:37:19
 */
public class TestIUserDao {
	public static void main(String[] args) {
		ApplicationContext act=new ClassPathXmlApplicationContext("applicationContext.xml");
		IUserDao iud=(IUserDao) act.getBean("IUserDao");
		
		//1、取得所有的对象
		List<User> allUsers=new ArrayList<User>();
		allUsers=iud.getUserList();
		for(Iterator<User> iter=allUsers.iterator();iter.hasNext();){
			User users=iter.next();
			System.out.println(users.getId()+"-->"+users.getUserName()+"-->"+users.getPassWord());
		}
		
		//2、根据用户名查询
		User getUserByName=new User();
		getUserByName=iud.getUserByName("admin1");
		System.out.println("根据用户名查询->"+getUserByName.getId()+"-->"+getUserByName.getPassWord());
		
		//3、根据用户id查询
		User getUserById=new User();
		getUserById=iud.getUserById(1);
		System.out.println("根据用户id查询"+getUserById.getUserName()+"-->"+getUserById.getPassWord());
		
	}
}



6、项目的包结构


7、程序结构如下:
2012-3-20 19:49:08 org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@4b4333: display name [org.springframework.context.support.ClassPathXmlApplicationContext@4b4333]; startup date [Tue Mar 20 19:49:08 CST 2012]; root of context hierarchy
2012-3-20 19:49:09 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [applicationContext.xml]
2012-3-20 19:49:09 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
信息: Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext@4b4333]: org.springframework.beans.factory.support.DefaultListableBeanFactory@1632c2d
2012-3-20 19:49:09 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1632c2d: defining beans [dataSource,sqlMapClient,IUserDao]; root of factory hierarchy
1-->admin1-->admin1
2-->admin2-->admin2
3-->admin3-->admin3
4-->admin4-->admin4
根据用户名查询->1-->admin1
根据用户id查询admin1-->admin1
  • 大小: 15.5 KB
分享到:
评论

相关推荐

    MyBatis(iBatis 3)入门示例 及 整合Mybatis与Spring3

    iBatis 3是MyBatis的前身,随着时间的推移,MyBatis逐渐发展成为一个更加成熟、功能更加强大的框架。MyBatis消除了几乎所有的JDBC代码和手动设置参数以及获取结果集。它使开发者能够专注于SQL本身,而不再需要处理...

    Ibatis 入门经典 实例

    《Ibatis 入门经典 实例》 Ibatis 是一款著名的轻量级 Java 持久层框架,它提供了一种映射 SQL 和 Java 对象的简单方式,从而减轻了开发人员在数据库操作中的工作负担。这篇实例教程将带你深入理解 Ibatis 的核心...

    struts2+ibatis+Spring 入门

    Struts2、iBatis和Spring是Java Web开发中三个非常重要的框架,它们结合使用能够构建出高效、灵活的企业级应用程序。以下是对这三个框架及其整合使用的详细解释。 **Struts2** 是一个基于MVC(Model-View-...

    ibatisDemo 入门源码

    IbatisDemo是一个典型的基于Ibatis框架的入门示例,它为我们展示了如何在Java项目中使用Ibatis进行数据库操作。Ibatis,一个优秀的持久层框架,它允许开发者将SQL语句直接写在配置文件中,避免了JDBC的繁琐代码,...

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

    描述中提到的压缩包包含了一个简单的示例项目,这通常是一个快速入门的教程,可能包含基本的CRUD操作以及如何配置和使用这三个框架的示例代码。导入Eclipse后,开发者可以研究和运行这个例子,从而更好地理解和学习...

    ibatis入门示例

    这个入门示例展示了如何简单地实现CRUD功能,但Ibatis的功能远不止这些,它还支持存储过程、结果集映射、自定义类型处理器等多种高级特性,使得数据库操作更加灵活和高效。在实际项目中,根据需求和团队习惯,选择...

    ibatis开发手册及入门教程

    ### iBATIS SQL Maps 入门教程知识点梳理 #### 一、iBATIS SQL Maps 概述 - **定义**:iBATIS SQL Maps(现称为 MyBatis)是一种用于Java的优秀持久层框架,它简化了SQL语句与Java代码间的耦合问题,使得开发者...

    ibatis开发资料及简单示例

    本资料包"ibatis开发资料及简单示例"显然是为了帮助开发者快速入门和理解Ibatis的工作原理和使用方法。其中包含的JAR包可能是Ibatis的核心库和其他相关依赖,这些库文件是运行Ibatis项目所必需的。 首先,我们来...

    ibatis入门,Ibatis开发指南,JPetStore-5.0

    - 首先,阅读《IBatis入门手册》了解基本概念和安装步骤。 - 掌握XML配置和注解方式的Mapper接口定义。 - 学习如何进行参数映射和结果映射。 - 实践JPetStore-5.0源码,理解其架构和数据库交互逻辑。 - 最后,...

    ibatis快速入门

    这个示例可能会展示如何在Flex应用中使用Ibatis作为数据访问层,以及如何通过AMF(Action Message Format)进行数据传输。 学习Ibatis的过程中,你需要理解以下几个关键点: 1. 配置:包括SqlSessionFactoryBuilder...

    ibatis大全

    1. **Struts2+spring+ibatis框架整合.doc**:可能包含详细的步骤和示例,解释如何配置和整合这三个框架,包括配置文件的设置、依赖注入的实现以及控制器、模型和服务层的集成。 2. **iBATIS-SqlMaps-2_cn.pdf**:这...

    ibatis入门教程与开发指南

    **ibatis入门教程与开发指南** Ibatis,全称MyBatis-iBATIS,是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。Ibatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。Ibatis可以使用简单...

    关于Ibatis的jar包

    在提供的压缩包中,有两个关键文件:`最简单的iBatis入门例子.chm`和`Ibatis包`。让我们一一解析它们: 1. **最简单的iBatis入门例子.chm**: 这是一个帮助文件,通常包含一系列关于如何快速入门Ibatis的教程和...

    ibatis 使用手册

    入门教程通常从简单的Hello World示例开始,逐步引导读者了解如何创建和配置iBatis项目,编写第一条SQL,处理查询结果,以及如何进行异常处理。同时,还会讲解如何在实际项目中结合Spring等框架进行集成使用。 **...

    ibatis经典入门

    7. **案例实践**:通过实际项目示例,加深对iBATIS的理解,包括如何在实际开发中结合Spring等框架进行整合使用。 通过深入学习和实践这些知识点,你将能够熟练掌握iBATIS,并在实际开发中有效利用这一强大的数据层...

    ibatis 入门例子

    本教程将通过一个基础的Ibatis入门示例,帮助你理解如何在实际项目中使用Ibatis进行数据操作。 首先,Ibatis 提供了SQL Map XML文件,它允许开发者将SQL语句与Java代码分离,提高了代码的可读性和可维护性。在我们...

    IBATIS入门

    【IBATIS 入门】 IBATIS 是一个流行的数据访问框架,它在 Java 开发领域中扮演着重要角色,特别适用于那些需要对 SQL 有更多控制权的项目。与 Hibernate 和 Apache OJB 等全面的 ORM(对象关系映射)解决方案不同,...

Global site tag (gtag.js) - Google Analytics