`

ibatis SQL Map demo

阅读更多

在spring的jpestore中,数据持久层用到了iBATIS SQL Maps,这里写一个ibatis的简单demo,作为ibatis的学习笔记。

ibatis的SQL Map配置文件是xml形式,一般叫SqlMapConfig.xml,如下:

 

 

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE sqlMapConfig  PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0/" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">

<sqlMapConfig>
	<!--settings配置是可选的,用来控制sqlMapping的详细配置,主要是事务处理。参数具体含义请参考ibatis开发指南-->
	<settings cacheModelsEnabled="true" enhancementEnabled="true"
		lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"
		maxSessions="10" maxTransactions="5" useStatementNamespaces="false" />
	<!--使用SimpleDataSource配置数据源,DataSource的iBATIS实现:SimpleDataSource类,Jakarta DBCP(Commons),和可通过JNDI上下文查找的DataSource(即应用服务器中的DataSource)-->
	<transactionManager type="JDBC">

		<dataSource type="SIMPLE">
			<property name="JDBC.Driver" 
value="com.mysql.jdbc.Driver" />
			<property name="JDBC.ConnectionURL" 
value="jdbc:mysql://127.0.0.1:3306/jpetstore?" />
			<property name="JDBC.Username" value="root" />
			<property name="JDBC.Password" value="" />
			<property name="Pool.MaximumActiveConnections" value="10" />
			<property name="Pool.MaximumIdleConnections" value="5" />
			<property name="Pool.MaximumCheckoutTime" value="120000" />
			<property name="Pool.TimeToWait" value="500" />
			<property name="Pool.PingQuery" value="select 1 from ACCOUNT" />
			<property name="Pool.PingEnabled" value="false" />
			<property name="Pool.PingConnectionsOlderThan" value="1" />
			<property name="Pool.PingConnectionsNotUsedFor" value="1" />
		</dataSource>
	</transactionManager>
	<!--引入所有的SQL Map配置文件,这里的路径是classpath的相对路径,例如下面的配置说明引入Account.xml,位置在com/quqworld/test/ibatis包内-->
	<sqlMap resource="com/quqworld/test/ibatis/Account.xml" />
	
</sqlMapConfig>   

 接下来是SQL Map映射文件Account.xml:

 

<?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">

<sqlMap namespace="Account">
	<!--在SQL Map框架中,Result Map是极其重要的组件。在执行查询Mapped Statement时,resultMap负责将结果集的列值映射成Java Bean的属性值。-->
	<resultMap id="result"
		class="org.springframework.samples.jpetstore.domain.Account">
		<result property="username" column="userid" columnIndex="1" />
		<result property="email" column="email" columnIndex="2" />
		<result property="firstName" column="firstname" columnIndex="3" />
		<result property="lastName" column="lastname" columnIndex="4" />
		<result property="status" column="status" columnIndex="5" />
		<result property="address1" column="addr1" columnIndex="6" />
		<result property="address2" column="addr2" columnIndex="7" />
		<result property="city" column="city" columnIndex="8" />
		<result property="state" column="state" columnIndex="9" />
		<result property="zip" column="zip" columnIndex="10" />
		<result property="country" column="country" columnIndex="11" />
		<result property="phone" column="phone" columnIndex="12" /></resultMap>

	<select id="getAllAccountByUserid" resultMap="result">
		select
			account.userid,
			account.email,
			account.firstname,
			account.lastname,
			account.status,
			account.addr1,
			account.addr2,
			account.city,
			account.state,
			account.zip,
			account.country,
			account.phone
			from account
			where account.userid=#value#
	</select>
</sqlMap>

 下面是Java代码:

	try {
			String resource = "com/quqworld/test/ibatis/SqlMapConfig.xml";
			Reader reader = Resources.getResourceAsReader(resource);

			SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
			Object object =  sqlMap.queryForObject(   
					"getAllAccountByUserid", "ACID",new Account());
			System.out.println("select result: " +object);

		} catch (Exception e) {
			e.printStackTrace();
		}

 

 

 

 

分享到:
评论

相关推荐

    ibatis小例子Demo

    通过这个Demo,初学者可以逐步了解Ibatis的工作原理,掌握如何将SQL语句与Java代码相结合,以及如何处理数据库操作的各种场景。在实际项目中,Ibatis可以与Spring框架集成,进一步简化开发过程。所以,熟练掌握...

    struts1+ibatis+Spring demo

    2. 配置iBatis:在sql-map-config.xml中设置数据源,编写映射文件(*.xml),并将SQL与Java对象映射。 3. 配置Spring:在applicationContext.xml中声明Bean,包括Action、DAO、Service等,配置数据源、事务管理器,...

    ibatisDemo.zip

    3. **参数映射**:对于复杂的参数类型,Ibatis可以通过Map或注解方式轻松处理,支持传入复杂参数。 4. **动态SQL**:通过在XML配置文件中使用条件标签,可以构建动态的SQL,使SQL更具有灵活性。 5. **缓存机制**:...

    ibatis demo,ibatis例子,ibatis示例

    通过这个demo,你可以了解到Ibatis的基本用法,如何编写SQL映射文件,如何设计Mapper接口,以及如何在Java代码中调用这些接口执行数据库操作。同时,也能掌握Ibatis的动态SQL特性,以及如何配合Spring进行更高效的...

    asp.net MVC和IBatis.net整合demo程序

    Ibatis.net,又称为SQL Map,是一个轻量级的数据持久层框架,它允许开发者将SQL语句直接写在配置文件中,避免了ORM(对象关系映射)框架的复杂性,同时保持了数据库操作的灵活性。Ibatis.net 1.6.2是该框架的一个...

    ibatis的一个简单demo用户登录

    这个DEMO可能包括了创建数据库表、编写SQL查询、配置iBATIS的映射文件(XML文件)以及Java代码中的业务逻辑处理。 在iBATIS中,我们首先会创建一个数据库,可能包含一个名为`users`的表,其中字段可能有`id`(用户...

    ibatis的demo

    6. **参数映射**:学习如何传递参数到SQL语句,包括简单类型、复杂类型和Map类型的参数。 7. **集成测试**:了解如何编写单元测试或集成测试,确保Ibatis的SQL操作正确无误。 通过深入研究这个Demo,开发者不仅可以...

    一个iBatis的demo

    1. SQL Map XML文件:这是iBatis的核心,包含了SQL语句及其相关的参数映射。它可以定义动态SQL,使SQL更具有灵活性。 2. Mapper接口:Java接口,对应XML文件中的SQL映射。通过实现这个接口,可以在Java代码中调用SQL...

    spring+ibatis demo搭建

    ### Spring+Ibatis Demo搭建详解 #### 一、项目背景与目标 在现代软件开发过程中,集成多种技术栈来构建高效稳定的应用系统是常见的做法。本文档将详细介绍如何使用Spring和Ibatis这两种流行的技术框架搭建一个...

    ibatis.net vs2005 demo

    iBATIS.NET是SQL Map的.NET版本,是一个轻量级的数据访问层框架,它允许开发者将数据库查询与应用程序代码分离,提供更灵活的数据库操作。 描述中的"可用"表明这个demo是可运行和测试的,用户可以下载并了解如何在...

    ibatis实现结果集map封装(Demo下载)

    标题 "ibatis实现结果集map封装(Demo下载)" 指的是使用iBatis这个流行的Java持久层框架,将数据库查询结果集转换成Map对象的过程。这个过程在处理动态和复杂的查询时尤其有用,因为它允许开发者以键值对的形式灵活地...

    ibatis_Demo

    总结来说,"ibatis_Demo"项目展示了Ibatis与Oracle的完美结合,它让我们看到了在保持SQL灵活性的同时,如何利用ORM框架提高开发效率。无论你是初学者还是经验丰富的开发者,都能从中受益,掌握到Ibatis与Oracle的...

    ibatis多对多关系(详细)

    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"&gt; &lt;!-- 使用类型别名来避免每次输入完整的类名 --&gt; ...

    struts+spring+ibatis整合框架小demo

    在iBatis中,我们通过XML配置文件(sql-map.xml)定义SQL语句和结果映射,然后在Java代码中调用SqlSession对象执行SQL。这样可以避免JDBC的繁琐操作,提高开发效率。 在整合这三个框架时,Spring作为核心容器,管理...

    ch07_ibatisDemo.rar

    【标签】"ch07_ibatisDemo.rar" 的标签没有给出更多信息,但我们可以根据标题和描述推测,它可能涉及到的标签包括:MyBatis、Java编程、数据库操作、持久层框架、SQL映射等。 【压缩包子文件的文件名称列表】: ...

    ibatis实现增删改查功能demo

    Ibatis,全名MyBatis,是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。在本示例中,"ibatis实现增删改查功能demo"是一个具体的项目,旨在演示如何利用Ibatis进行数据库操作,包括插入(Insert...

    ibatis基础PPT

    在iBATIS中,SQL Map是关键组件,它负责执行SQL语句。SQL Map的工作流程如下: 1. **参数绑定**:当执行一个mapped statement(即一个映射的SQL语句)时,你可以传递一个对象作为参数,这个对象可以是Java Bean、...

    IbatisDemo实现基本的CRUD操作

    iBATIS的核心部分是SQL Map XML配置文件,其中包含了数据库交互的所有细节。 二、环境准备 在开始之前,确保已安装以下软件和库: 1. Java Development Kit (JDK):用于编写和运行Java代码。 2. Apache Maven 或 ...

    最好的ibatis教程实例(内有注释)

    在压缩包文件“ibatisdemo”中,可能包含了项目结构示例,包括配置文件、Mapper XML文件、Mapper接口、实体类等,通过实际操作这些文件,你可以更直观地学习和掌握上述知识点。记得打开源码,查看注释,这对于理解和...

    ibatis简单例子程序

    Ibatis,又称为SQL Map,是一个优秀的持久层框架,它允许程序员将SQL语句直接写在配置文件中,与Java代码分离,从而避免了传统的JDBC中的大量模板代码,使得数据库操作更加简便。Ibatis的核心思想是将SQL与Java代码...

Global site tag (gtag.js) - Google Analytics