`
panshaobinSB
  • 浏览: 203961 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ibatis2小例子(转)

 
阅读更多
这个是ibatis v2的一个小例子,刚学习,从网上找的,忘记原来的网址了,不过对于乐于分享的人很是感激,感觉还不错,上手应该挺快的,灵活的SQL构建。
感觉主要还是那个配置sql的文件里面的那些配置文件有一些难度,所以附上一份文档参考参考。


下面是实体类:
package com.tonyj.pojo;

public class Contact {
	private String firstName;
	private String lastName;
	private String email;
	private int id;
	//相应的getter和setter方法,构造方法
	public String getFirstName() {
		return firstName;
	}
	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}
	public String getLastName() {
		return lastName;
	}
	public void setLastName(String lastName) {
		this.lastName = lastName;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public Contact(String firstName, String lastName, String email) {
		super();
		this.firstName = firstName;
		this.lastName = lastName;
		this.email = email;
	}
	public Contact() {
		super();
		// TODO Auto-generated constructor stub
	}
}


接下来是:配置文件 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>
	<properties resource="jdbc.properties"/>
	<settings 
		cacheModelsEnabled="true"
		enhancementEnabled="true"
		lazyLoadingEnabled="true"
		maxRequests="32"
		maxSessions="10"
		maxTransactions="5"
		useStatementNamespaces="true"/> 
	<transactionManager type="JDBC">
		<dataSource type="SIMPLE">
		     <property name="JDBC.Driver" value="${jdbc.driverClassName}"/>
			 <property name="JDBC.ConnectionURL" value="${jdbc.url}"/>
			 <property name="JDBC.Username" value="${jdbc.userName}"/>
			 <property name="JDBC.Password" value="${jdbc.password}"/>
		</dataSource>
	</transactionManager>
	<sqlMap resource="Contact.xml"/>
</sqlMapConfig>



配置文件:jdbc.properties

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/vin
jdbc.userName=root
jdbc.password=root



配置文件:Contact.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="Contact" type="com.tonyj.pojo.Contact"/>
	<!-- ibatis查询操作 -->
	<select id="getAll" resultClass="Contact">
		select * 
		from contact
	</select>
	<!-- ibatis插入1 -->
	<insert id="insert" parameterClass="Contact">
		insert into contact(firstName,lastName,email)
		values(#firstName#,#lastName#,#email#)
		<selectKey resultClass="int" keyProperty="id">
			select last_insert_id() as id
		</selectKey>
	</insert>
	<!-- ibatis插入操作2 -->
	<parameterMap class="Contact" id="insert-contact-parameter">
		<parameter property="firstName"/>
		<parameter property="lastName"/>
		<parameter property="email"/>
	</parameterMap>
	<statement id="insertContact" parameterMap="insert-contact-parameter">
		insert into contact(firstName,lastName,email) values (?,?,?);
	</statement>
	<!-- ibatis删除操作 -->
	<delete id="deleteContactById" parameterClass="int">
		delete from Contact where id=#id#
	</delete>
	<!-- ibatis更新操作 -->
	<update id="updateById" parameterClass="int">
		update Contact set lastName="tonyJ"
		where id=#id#
	</update>
	<!-- ibatis根据id查询 -->
	<resultMap class="Contact" id="result">
		<result property="id" column="id"/>
		<result property="firstName" column="firstName"/>
		<result property="lastName" column="lastName"/>
		<result property="email" column="email"/>
	</resultMap>
	<select id="getById" resultMap="result">
		select * from contact where id=#id#
	</select>
	<!-- ibatis调用mysql存储过程 -->
	<procedure id="storedInfo" resultClass="Contact">
		{call showData()}
	</procedure>
	<!-- ibatis模糊查询 -->
	<select id="selectByName" parameterClass="java.lang.String" resultClass="Contact">
		select * 
		from contact
		where firstName like '%$firstName$%'
	</select>
	<!-- ibatis分页查询1 -->
	<select id="getByPage" parameterClass="java.util.Map" resultClass="Contact">
		select * from contact 
		<isParameterPresent>
			<isNotNull property="orderById">
				order by $orderById$
			</isNotNull>
			<isNotNull property="limitClauseStart">
				limit $limitClauseStart$,$limitClauseCount$
			</isNotNull>
		</isParameterPresent>
	</select>
	<!--ibatis 分页查询2 -->
	<select id="getByPage1" parameterClass="java.util.Map" resultClass="Contact">
		select * 
		from contact
	</select>
</sqlMap>



测试类:

package com.tonyj.test;

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

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.tonyj.pojo.Contact;

public class IbatisExample {
	
	public static void main(String[] args) throws Exception{
		Reader reader=Resources.getResourceAsReader("SqlMapConfig.xml");
		SqlMapClient sqlMap=SqlMapClientBuilder.buildSqlMapClient(reader);
		
		//查询
		/*System.out.println("All Contacts");
		List<Contact> contacts=(List<Contact>)sqlMap.queryForList("getAll",null);
		for(Contact c:contacts){
			System.out.println(" "+c.getId()+"-->"+c.getFirstName()+"-->"
			+c.getLastName()+"-->"+c.getEmail());
		}*/
		
		//插入1
		/*System.out.println("*------insert Contact Table------------*");
		Contact contact=new Contact("Amit","Kumar","amit@yes.com");
		sqlMap.insert("insert",contact);*/
		
		//插入2
		/*System.out.println("*------insert Contact Table------------*");
		Contact contact=new Contact("firstName2","lastName2","tang@yes.com");
		sqlMap.insert("insertContact",contact);*/
		
		
		//删除
//		int i=sqlMap.delete("deleteContactById", 1);
//		System.out.println("i="+i);
		
		//更新
//		sqlMap.update("updateById", 3);
		
		//根据id查询
//		Contact contact=(Contact) sqlMap.queryForObject("getById", new Integer(3));
//		System.out.println(contact.toString());
		
		//调用存储过程
//		List<Contact> contacts=(List<Contact>)sqlMap.queryForList("storedInfo", null);
//		Contact contact=null;
//		for(Contact c:contacts){
//			System.out.println(c.toString());
//		}
		
		//模糊查询
		List<Contact> contacts=(List<Contact>)sqlMap.queryForList("selectByName","t");
		Contact contact=null;
		for(Contact c:contacts){
			System.out.println(c.getFirstName());
		}
		//分页1
		/*Map<String,Object> map=new HashMap<String,Object>();
		map.put("orederById"," id asc");
		map.put("limitClauseStart",5);
		map.put("limitClauseCount",5);
		List<Contact> result=(List<Contact>)sqlMap.queryForList("getByPage", map);
		for(Contact c:result){
			System.out.println(c.toString());
		}*/
		
		//分页2
//		int skip=5;
//		int max=4;
//		String sql="getByPage1";
//		@SuppressWarnings("unchecked")
//		List<Contact> contacts=(List<Contact>)sqlMap.queryForList(sql,skip,max);
//		for(Contact c:contacts){
//			System.out.println(c.toString());
//		}
	}
}









分享到:
评论

相关推荐

    ibatis小例子Demo

    这个"ibatis小例子Demo"是为了帮助初学者快速理解和掌握Ibatis的核心功能和基本用法。 Ibatis的主要特点包括: 1. **XML配置文件**:Ibatis通过XML配置文件来定义SQL语句、参数映射和结果映射,使得SQL与Java代码...

    ibatis学习小例子

    标题 "ibatis学习小例子" 暗示我们即将探讨的是关于Ibatis,一个轻量级的Java持久层框架,它允许开发者将SQL语句直接嵌入到Java代码中,从而简化了数据库操作。Ibatis提供了灵活的映射机制,避免了对JDBC的繁琐处理...

    .net中使用iBATIS的小例子

    这个小例子展示了如何在Visual Studio 2008中集成和使用iBATISNET。下面我们将详细探讨iBATIS在.NET中的使用方法,以及如何利用提供的文件进行实践。 首先,了解iBATIS的基本概念。iBATIS是一个轻量级框架,它的...

    Ibatis 入门小例子

    【Ibatis 入门小例子】 Ibatis 是一个优秀的持久层框架,它允许开发者将SQL语句直接写在配置文件中,与Java代码进行松耦合,极大地提高了开发效率。这个入门小例子将带你逐步了解如何使用Ibatis进行数据库操作。 ...

    ibatis入门小例子

    在本入门小例子中,我们将深入理解Ibatis的基本概念、配置以及如何通过实际的代码示例来运用它。 Ibatis的核心理念是SQL映射文件,它是一种XML格式的文件,用于定义SQL语句、参数映射和结果映射。在"ibatis-2.3.0....

    mySQL+ibatis的小例子

    总之,"mySQL+ibatis的小例子"是一个很好的起点,它帮助初学者理解数据库操作和数据访问层的实现,同时也展示了如何在Java应用程序中优雅地处理SQL。通过这个例子,你可以逐步掌握数据库设计、SQL编写、iBATIS配置和...

    jsf2+richfaces4.2.3+ibatis2小例子

    最近自己看了下jsf2,资料少的蛋疼,有什么问题搜来的永远就那么几篇帖子,次噢...谁有jsf Spring ibatis之类的项目给我发个啊,学点东西不容易。 有资料的发我邮箱stgoder@163.com,跪求。 谁有jsf2项目给我发个。。。

    ibatis简单CRUD例子

    2. **灵活的SQL编写**:与Hibernate不同,Ibatis允许开发者自由地编写SQL,可以根据需求调整查询语句,提高了查询的灵活性。 3. **映射机制**:通过XML配置或者注解,Ibatis可以将数据库的查询结果映射到Java对象,...

    struts2+ibatis例子

    在"struts2+ibatis的小例子"中,你可能会学习到以下关键知识点: 1. **Struts2框架**:Struts2的核心在于Action和Result,Action是处理用户请求的业务逻辑组件,Result则是Action执行后的结果。Struts2使用拦截器...

    ibatis2.3例子代码

    这个"ibatis2.3例子代码"是为了演示如何在实际项目中集成并使用iBatis进行数据操作。 首先,我们需要了解iBatis的核心概念。主要包括XML配置文件、SQL映射文件、SqlSession和Mapper接口。XML配置文件通常包含数据库...

    struts2+spring2+ibatis简单登录例子

    Struts2、Spring2和iBatis是Java Web开发中常用的三大框架,它们结合使用可以构建高效、可...理解这个简单的登录例子,有助于深入学习Struts2、Spring2和iBatis的整合应用,为构建更复杂的Web应用程序打下坚实基础。

    ibatis 2 and spring 例子

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

    Struts2+Spring2+iBatis2整合的例子

    在"Struts2+Spring+iBatis整合的小例子"中,开发者通常会做以下工作: 1. **环境配置**:首先,确保JDK、Tomcat、MySQL等基础环境的安装和配置。然后,将Struts2、Spring、iBatis的相关jar包添加到项目的类路径中。...

    iBatis工程简单例子

    iBatis工程的简单例子,在eclipse上实现的,数据库是mysql数据库,里面的字段为CREATE DATABASE MYDB; use MYDB; Drop TABLE IF EXISTS `MYDB`.`student`; Create TABLE `MYDB`.`student` ( `name` varchar(40) NOT...

    ibatis简单例子

    **Ibatis例子解析** 在"ibatis简单例子"中,我们可能有两个主要的部分: 1. **test**目录:这通常包含测试类,用于运行和验证Ibatis配置和映射。在这些测试类中,可以看到如何实例化SqlSessionFactory,打开...

    使用的iBatis 简单例子

    在这个“使用的iBatis简单例子”中,我们将深入探讨如何配置和使用iBatis进行数据库交互。 首先,iBatis的核心组件包括XML配置文件、SQL映射文件以及SqlSessionFactory。XML配置文件用于定义数据源、事务管理器等...

    ibatis的一个小例子

    【标题】:“ibatis的一个小例子” 在Java Web开发领域,Ibatis(现已被更名为MyBatis)是一款广泛使用的持久层框架。它提供了一个灵活的SQL映射框架,使开发者可以将SQL语句与Java代码分离,从而实现数据访问层的...

    maven整合ibatis的简单例子

    下面我们将详细探讨如何将Maven与iBatis整合,以实现一个简单的例子。 首先,我们需要创建一个新的Maven项目。在Maven的`pom.xml`文件中,我们需要添加iBatis和其依赖的数据库驱动(如MySQL驱动)作为项目的依赖。...

Global site tag (gtag.js) - Google Analytics