`
nbtlxx
  • 浏览: 252742 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

Ibatis学习实践

阅读更多
Ibatis是个O/R的数据持久化的框架,特点就是简单、灵活,上手快。
今天,本人也在实际学习了下这个框架。

首先,下载ibatis框架,将相关的jar加入到project的BuildPath.
其次,就是设置sqlmapclient.xml
      特别要注意的是:配置数据库信息。路径不对的话,会抛出异常java.sql.SQLException: No suitable driver, 其实是路径不对。本人就是不小心,将路径写成:
     jdbc:mysql:localhost:3306/ibatisdemo,
     花费了一个小时才debug.     
      <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
      <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/ibatisdemo"/>
      <property name="JDBC.Username" value="root"/>
      <property name="JDBC.Password" value="root"/>

另外,配置文件中的路径,用斜杠分隔,不使用"."
       <sqlMap resource="net/tuolian/firstibatis/Account.xml" />

第三点, 就是实体类的配置文件
     <select id="getAccount" parameterClass="java.lang.String" resultClass="net.tuolian.firstibatis.Account">
    select * from Account where username = #value#
  </select>
      注意:select id和parameterClass, resultClass,都是详细路径的类

第四、实体类就是简单的类,加上类的属性的get,set方法

第五点、具体的业务逻辑的实现
    读取sqlmapconfig.xml配置文件
    创建sqlmapclient对象
    依据不同的逻辑,调用sqlmapclient对象的数据操作方法,实现增删改查方法。

具体的请参看代码。

package net.tuolian.firstibatis;

import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;

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

/**
 * 
 * @author sean
 * 1. 读取sqlmapConfig配置文件
 * 2. 利用builder方法,创建sqlmapClient对象
 * 3. 根据需求,调用sqlMapClient方法,比如queryForList()
 	 注意:
 *
 */
public class AccountDAOImpl implements IAccountDAO {

	private static SqlMapClient sqlMapClient;
	
	static{
		try {
			Reader reader = Resources.getResourceAsReader("net/tuolian/firstibatis/SqlMapConfig.xml");
			sqlMapClient= SqlMapClientBuilder.buildSqlMapClient(reader);
			reader.close();
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * 添加帐号
	 */
	public void addAccount() {
		// TODO Auto-generated method stub
		Account account = new Account();
		account.setUsername("sean");
		account.setPassword("sean");
		try {
			//"createAccount"是配置文件中设定
			sqlMapClient.insert("createAccount", account);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * 返回一个
	 */
	public List queryAccountById(int id) {
		// TODO Auto-generated method stub
		List list = null;
		try {
			list = sqlMapClient.queryForList("getAccount", "sean");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}
	
	/**
	 * 入口方法
	 * @param args
	 */
	public static void main(String[] args){
		
		new AccountDAOImpl();
	}
	
	/**
	 * 调用addAccount, queryAll方法
	 */
	public AccountDAOImpl(){
		this.addAccount();
		this.queryAccountById(1);
	}

}



package net.tuolian.firstibatis;

import java.util.List;

/**
 * 业务处理接口
 * @author sean
 *
 */
public interface IAccountDAO {
	public void addAccount();
	public List queryAccountById(int id);
}





package net.tuolian.firstibatis;

/**
 * 
 * @author sean
 * 帐号类
 * 属性及get,set方法
 */
public class Account {
	private String username;
	private String password;
	private int id;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
}



SqlMapConfig.xml, 建议重点学习,特别是数据库的配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
  PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
  "http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
  <settings
    cacheModelsEnabled="true"
    enhancementEnabled="true"
    lazyLoadingEnabled="true"
    maxRequests="32"
    maxSessions="10"
    maxTransactions="5"
    useStatementNamespaces="false"
  />
  <transactionManager type="JDBC" >
    <dataSource type="SIMPLE">
      <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
      <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/ibatisdemo"/>
      <property name="JDBC.Username" value="root"/>
      <property name="JDBC.Password" value="root"/>
    </dataSource>
  </transactionManager>
  
 <sqlMap resource="net/tuolian/firstibatis/Account.xml" />
</sqlMapConfig>



Account.xml
注意其中的select等sql语句的写法,还有#的使用,类似jdbc中的"?"
insert select 等id, 就是在具体查询中的参数,比如sqlmapclient.queryForList(selectid)
  这里的selectid和配置文件中的selectId对应,同时parameterClass, ResultClass,也是参数,注意和配置文件中的保持一致。

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

  <select id="getAccount" parameterClass="java.lang.String" resultClass="net.tuolian.firstibatis.Account">
    select * from Account where username = #value#
  </select>

  <insert id="createAccount" parameterClass="net.tuolian.firstibatis.Account">
    insert into Account (username, password)
    values ( #username#, #password# )
  </insert>
</sqlMap>






0
1
分享到:
评论

相关推荐

    ibatis学习资料汇总

    《iBatis学习资料汇总》 iBatis,作为一个轻量级的持久层框架,它在Java开发领域中扮演着重要的角色。这个框架允许开发者将SQL语句与Java代码分离,提高了开发效率并降低了维护成本。本文将深入探讨iBatis的核心...

    ibatis学习

    标题 "ibatis学习" 暗示我们即将探讨的是关于Ibatis,一个著名的Java持久层框架,它允许开发者将SQL语句直接写在配置文件中,以实现灵活的数据访问。Ibatis提供了简单易用的API,使得数据库操作与业务逻辑解耦,提高...

    ibatis学习和实践

    《深入理解与实战Ibatis》 Ibatis,作为一款轻量级的Java持久层框架,以其灵活、易用的特点在众多ORM(对象关系映射)工具中...通过深入学习和实践Ibatis,可以提升我们的数据库操作技能,优化应用程序的性能。

    ibatis学习总结,oracle , 敏捷开发,

    学习Ibatis,你需要理解它的基本概念,如SqlMapConfig.xml配置,Mapper接口和XML映射文件,以及如何进行参数映射和结果映射。对于Oracle,你需要熟悉SQL语法,掌握数据类型,了解索引、视图、触发器和存储过程的使用...

    ibatis学习完整实例,例子

    通过深入学习和实践"ibatistest2"这个实例,开发者不仅可以掌握Ibatis的基本使用,还能理解其在实际项目中的应用方式,为日后的开发工作打下坚实的基础。记住,理论与实践相结合,才能真正掌握一门技术,希望...

    Ibatis.net学习例子以及使用教程书

    本教程书旨在帮助开发者深入理解并熟练运用Ibatis.net,通过实例和详细讲解,使得学习过程更加简单易懂。 Ibatis.net的核心理念是SQL映射,它允许开发者编写自定义的SQL语句,避免了ORM(对象关系映射)工具通常...

    ibatis学习IBATIS好资料

    标题 "ibatis学习IBATIS好资料" 涉及的核心知识点是关于iBATIS,一个流行的开源Java持久层框架,它将SQL映射到Java对象,实现了数据访问层(DAL)的简化。这个资源包提供了对iBATIS深入学习的各种材料,包括jar包和...

    ibatis学习锦集

    标题"ibatis学习锦集"表明这是一个关于iBatis学习资源的集合,涵盖了多种学习材料,可能包括文档、示例代码、教程等。描述中提到"很全面!很强大!IBATIS最新最全开发指南 - 通俗易懂IBATIS教程,ibatis基础,ibatis...

    J2EE学习 Ibatis开发资料共享 Ibatis开发资料 Ibatis学习框架 Ibatis开发概要

    ### J2EE学习:Ibatis开发资料概要 #### 一、Ibatis简介与特点 Ibatis是一款半自动化的ORM(Object ...通过对Ibatis的学习和实践,开发者不仅可以提高数据库操作的效率,还能更好地理解和掌握ORM技术的本质。

    ibatis学习资料大全

    2. **Ibatis学习指南**:这可能是中文版的学习资料,针对初学者提供了详尽的入门教程和进阶指南。学习指南通常会涵盖Ibatis的基本概念,如SqlMapConfig.xml配置文件、Mapper接口的使用、SqlSession的操作,以及...

    ibatis 学习资料

    这份学习资料旨在为初学者和有经验的开发者提供全面的iBatis学习资源。通过这些资料,你可以了解到如何在项目中有效地利用iBatis进行数据库操作,包括但不限于SQL映射、动态SQL、事务管理以及对象关系映射等关键概念...

    ibatis学习资料及个人学习笔记,对初学者很有用

    【ibatis学习资料及个人学习笔记】 Ibatis,作为一个轻量级的持久层框架,它在Java开发领域中占有重要地位。本资料包是针对Ibatis的学习资源集合,旨在帮助初学者快速掌握这一强大的数据库操作工具。Ibatis的核心...

    Ibatis.net学习和实例~

    本教程将深入探讨Ibatis.net的学习与实践,帮助开发者更好地理解和掌握这个强大的工具。 首先,我们来看"Ibatis.net学习"这一主题。Ibatis.net的核心理念是SQL映射,它允许开发者编写原生的SQL查询,而不是依赖于...

    ibatis学习小例子

    总的来说,"ibatis学习小例子"提供了一个了解和实践Ibatis的平台,通过对Account相关操作的学习,我们可以深入理解Ibatis如何帮助我们在Java应用中高效、灵活地处理数据库操作。无论是源码级别的探索还是工具的使用...

    iBATIS2.0学习总结

    在项目实践中,合理利用这些特性,可以提高代码的可维护性和性能。不过,由于iBATIS2.0已经不再维护,目前的主流选择是升级到MyBatis,它是iBATIS的下一代产品,拥有更多的增强功能和社区支持。

    ibatis学习总结文档

    iBATIS,全称“Infrastructure Based Application Toolkit Integrated Solutions”,是一个基于Java的持久层框架,它允许开发者将...通过深入学习和实践,可以提升开发效率,更好地处理业务逻辑与数据操作之间的关系。

    ibatis学习时的项目

    【标题】"ibatis学习时的项目"是一个基于Java的Web项目,主要目的是为了学习和实践iBatis这个持久层框架。iBatis是MyBatis的前身,它提供了一个SQL映射框架,使得开发者可以将SQL语句直接写在XML配置文件中,实现了...

    ibatis学习文档集合

    《深入理解iBATIS:基于Java的持久层框架》 iBATIS,全称为"Integration Between ADO.NET and SQL Maps",中文译为"SQL地图集成...通过对iBATIS的学习和实践,开发者可以更高效地处理数据库交互,更好地实现业务逻辑。

    iBatis开发指南和一个iBatis实例

    总的来说,这个压缩包为你提供了一个全面的iBatis学习路径,从基础到进阶,从理论到实践。通过深入阅读PDF文档,动手实践代码示例,你将能够熟练地运用iBatis来处理各种数据库操作,提升你的Java开发技能。记得在...

    ibatis学习资料和API

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责简化数据库操作,将SQL语句与Java代码分离,...本资料包中的内容,无论是学习资料还是API文档,都将帮助初学者快速掌握Ibatis,并在实践中发挥其优势。

Global site tag (gtag.js) - Google Analytics