`
udvs
  • 浏览: 14851 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多
package com.inch.common.db.ibatis;


import java.io.Reader;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class MyAppSqlConfig {
	private static final SqlMapClient sqlMap;
	private static final SqlMapClient mysqlMap;
	static {
		try {
			/**
			 * ���������ļ�·��
			 */
		//	String sqlmappath = "com/zjhcsoft/test/user/domain";
			String resource = "sqlmapconfig.xml";
			Reader reader = Resources.getResourceAsReader(resource);
			sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
			
			resource = "sqlmapconfig_mysql.xml";
			reader = Resources.getResourceAsReader(resource);
			mysqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);

		/*	Reader reader = Resources.getResourceAsReader(resource);
			sqlMap =  new XmlSqlMapClientBuilder().buildSqlMap(reader,sqlmappath);*/
		} catch (Exception e) {
			throw new RuntimeException(
				"Error initializing MyAppSqlConfig class.Cause :" + e.getMessage());
		}
	}
	public static SqlMapClient getSqlMapInstance() {
		return sqlMap;
	}
	
	public static SqlMapClient getMySqlMapInstance() {
		return mysqlMap;
	}
	
}



IbatisDao
package com.inch.common.db.ibatis;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;


import com.ibatis.sqlmap.client.SqlMapClient;
import com.inch.common.db.id.IDGeneratorFactory;
import com.inch.common.exception.ApplicationException;
import org.apache.log4j.Logger;

/**
 * oracle???
 * @author rtm 2005-9-4
 * @description
 * @spring.bean id="ibatisDao"
 */
public class IbatisDao {

	public static Logger logger = Logger.getLogger(IbatisDao.class);

	private SqlMapClient sqlMap;
	public static IbatisDao getDao(){
		return new IbatisDao();
	}
	
	public String generateStringId(){
		return (String)IDGeneratorFactory.generate(null);
	}

	/**
	 * @return
	 */
	public SqlMapClient getSqlMap() {
		//System.out.println("init sql Map");
		this.sqlMap = MyAppSqlConfig.getSqlMapInstance();
		//System.out.println(sqlMap.toString());
		return this.sqlMap;
	}
	
	/**
	 * @param sqlMapId
	 * @param param
	 * @return
	 */
	public int count(String sqlMapId, Object param){
		List list = null;
		int num = 0;
		try {
			long start = System.currentTimeMillis();
			 list = this.getSqlMap().queryForList(sqlMapId,param);
			 long time = System.currentTimeMillis() - start;
			// 如果结果记录条数超过80
			if ( list != null && list.size() > 80 ) {
				logger.error("[count]Performance Wanning: result.size=[" + list.size() + "]sqlMapId=[" + sqlMapId +"] param=" + param +"]");
			}
			if ( time > 500 ) {
				logger.error("[count]Performance Wanning: search time=[" + time + "]sqlMapId=[" + sqlMapId +"] param=" + param +"]");
			}
		} catch (SQLException e) {
			logger.error(e.getMessage());
			throw new ApplicationException(e.getMessage());
		}
		if(list != null && list.size() > 0){
			try{
				if(list.size() > 1){
					/**
					 * ?????count???????size
					 */
					return list.size();
				}else{
					num = Integer.parseInt((String)list.get(0));
				}
			}catch(RuntimeException e){
				logger.error(e.getMessage());
				throw new ApplicationException(e.getMessage());
			}
		}
		return num;
	}

	/**
	 * ??????seq
	 * @param sqlMapId
	 * @return
	 */
	public Long getIdValue(String sqlMapId){
		try {
			return (Long)this.getSqlMap().queryForObject(sqlMapId,null);
		} catch (SQLException e) {
			logger.error(e.getMessage());
			throw new ApplicationException(e.getMessage());
		}
	}

	/**
	 * ???????
	 * @param sqlMapId
	 * @param param
	 */
	public void update(String sqlMapId, Object param) {
		try {
			long start = System.currentTimeMillis();
			this.getSqlMap().update(sqlMapId, param);
			long time = System.currentTimeMillis() - start;
			if ( time > 500 ) {
				logger.error("[update]Performance Wanning: update time=[" + time + "]sqlMapId=[" + sqlMapId +"] param=" + param +"]");
			}
		} catch (SQLException e) {
			logger.error(e.getMessage());
			throw new ApplicationException(e.getMessage());
		}
	}
	
	public String queryForString(String sqlMapId,Object param){
		return String.valueOf(this.queryForObject(sqlMapId,param));
	}

	/**
	 * ???
	 * 
	 * @param sqlMapId
	 * @param param
	 * @return
	 */
	public List queryForList(String sqlMapId, Object param) {
		List list = null;
		try {
			long start = System.currentTimeMillis();
			list = this.getSqlMap().queryForList(sqlMapId, param);
			long time = System.currentTimeMillis() - start;
			// 如果结果记录条数超过80
			if ( list != null && list.size() > 80 ) {
				logger.error("[queryForList]Performance Wanning: result.size=[" + list.size() + "]sqlMapId=[" + sqlMapId +"] param=" + param +"]");
			}
			if ( time > 500 ) {
				logger.error("[queryForList]Performance Wanning: search time=[" + time + "]sqlMapId=[" + sqlMapId +"] param=" + param +"]");
			}
			
		} catch (SQLException e) {
			logger.error(e.getMessage());
			throw new ApplicationException(e.getMessage());
		}
		if (list == null) {
			list = new ArrayList();
		}
		return list;

	}

	/**
	 * ????????????
	 * 
	 * @param sqlMapId
	 * @param param
	 * @return
	 */
	public Object queryForObject(String sqlMapId, Object param) {
		Object value = null;
		try {
			long start = System.currentTimeMillis();
			value = this.getSqlMap().queryForObject(sqlMapId, param);
			long time = System.currentTimeMillis() - start;
			if ( time > 500 ) {
				logger.error("[queryForObject]Performance Wanning: search time=[" + time + "]sqlMapId=[" + sqlMapId +"] param=" + param +"]");
			}
		} catch (SQLException e) {
			logger.error(e.getMessage());
			throw new ApplicationException(e.getMessage());
		}
		return value;

	}

	/**
	 * ????????????
	 * 
	 * @param sqlMapId
	 * @param param
	 * @return
	 */
	public boolean queryIfExist(String sqlMapId, Object param) {
		List list = null;
		try {
			long start = System.currentTimeMillis();
			list = this.getSqlMap().queryForList(sqlMapId, param);
			long time = System.currentTimeMillis() - start;
			// 如果结果记录条数超过80
			if ( list != null && list.size() > 80 ) {
				logger.error("[queryIfExist]Performance Wanning: result.size=[" + list.size() + "]sqlMapId=[" + sqlMapId +"] param=" + param +"]");
			}
			if ( time > 500 ) {
				logger.error("[queryIfExist]Performance Wanning: search time=[" + time + "]sqlMapId=[" + sqlMapId +"] param=" + param +"]");
			}
		} catch (SQLException e) {
			logger.error(e.getMessage());
			throw new ApplicationException(e.getMessage());
		}
		if (list == null || list.size() == 0) {
			return false;
		} else {
			return true;
		}

	}
}

分享到:
评论

相关推荐

    iBatis DAO

    iBatis DAO

    iBATIS-DAO-2.3.4.726.rar_com.ibatis.dao_iBATIS dao 2_iBatis DAO_

    iBATIS DAO是Java开发中的一个持久层框架,它提供了数据访问对象(DAO)的实现,使得数据库操作更加简单和灵活。在这个2.3.4.726版本的源码中,我们可以深入理解iBATIS DAO的工作原理,并通过添加注释来帮助我们更好...

    IBATISDAO库类操作

    **IBATISDAO库类操作详解** 在Java开发中,IBATIS是一个流行的数据访问接口框架,它提供了灵活的SQL映射机制,使得开发者能够直接使用SQL语句进行数据库操作,而无需编写复杂的JDBC代码。`IBATISDAO`库类是基于...

    生成ibatis Dao

    本知识点主要聚焦于如何生成Ibatis的Dao(数据访问对象)类,以及相关的实体类(Entity)和SQL映射文件(sqlMap)。下面我们将详细介绍这个过程。 首先,Ibatis Dao的生成通常涉及到几个关键步骤: 1. **配置文件*...

    ibatisDao.rar

    本资料“ibatisDao.rar”包含了一份对iBATIS DAO框架的深入分析,旨在帮助开发者更好地理解和应用这一技术。 在iBATIS中,DAO(Data Access Object)是数据库访问对象,它封装了对数据库的增删查改操作。DAO模式是...

    ibatis dao包

    ibatis dao 包ibatis dao 包ibatis dao 包ibatis dao 包ibatis dao 包ibatis dao 包ibatis dao 包ibatis dao 包ibatis dao 包ibatis dao 包

    使用abator搭建ibatis dao框架

    本篇文章将详细介绍如何使用Abator工具搭建基于Ibatis的DAO框架。 Abator是一款自动化工具,它可以自动生成Java代码和SQL映射文件,大大简化了开发过程。下面我们将分步骤解析如何利用Abator来创建Ibatis DAO框架。...

    iBATIS_DAO-2.2.0.638

    iBATIS DAO是Java开发中的一个关键组件,它在企业级应用中被广泛使用,特别是在数据访问层(DAO,Data Access Object)的设计中。iBATIS DAO 2.2.0.638是一个特定版本的iBATIS框架,这个版本提供了对数据库操作的...

    iBATIS-DAO-2

    ### iBATIS Data Access Objects (DAO):一种强大的持久层抽象技术 在深入探讨iBATIS Data Access Objects(DAO)的细节之前,我们先来理解一下这个概念的重要性以及它如何改变Java应用程序的开发方式。 #### 引言...

    iBATIS-DAO-2_en

    在IT领域,尤其是在Java开发中,iBATIS与DAO(Data Access Object)模式的结合为开发者提供了一种高效、灵活且可扩展的数据访问方案。本文将深入探讨iBATIS实现DAO的相关知识点,包括其背景、原理、优势以及具体实现...

    ibatis--dao的应用

    Ibatis,一个轻量级的Java持久层框架,正是DAO模式的一种实现,它提供了灵活的SQL映射机制,使得开发者能够更方便地将SQL查询与Java代码结合。下面我们将深入探讨Ibatis在DAO应用中的核心概念、工作原理以及实际应用...

    J2EE核心:iBatis_DAO入门与进阶.doc

    【J2EE核心:iBatis_DAO入门与进阶】 DAO(Data Access Object)模式在J2EE应用中扮演着关键角色,它提供了一种将业务逻辑与数据访问操作解耦的方式。DAO模式的核心思想是创建一个接口,该接口定义了所有与数据源...

    IBatis常用操作封装

    本篇我们将深入探讨“IBatis常用操作封装”,并结合提供的`IBatisDao.java`文件来解析其核心功能和用法。 首先,`IBatis`的核心理念是通过XML或注解的方式定义SQL映射文件,将SQL语句与业务逻辑代码分离,提高了...

    hibernate3.jar、ibatis-dao-2.jar、spring.jar、struts.jar、log4j-1.2.9.jar

    5. **iBatis-dao-2.jar**:iBatis(在本例中可能是iBATIS DAO的特定版本)是另一种ORM框架,不同于Hibernate,它更强调SQL的灵活性。iBatis允许开发者编写自定义的SQL,将SQL语句直接嵌入XML配置文件或Java代码中,...

    iBATIS框架源码剖析

    资源名称:iBATIS框架源码剖析内容简介:iBATIS是一种比较流行的ORM框架,本书全面介绍其结构体系和分析其源程序代码,该框架的核心包括两个组件,一个是iBATIS DAO,另一个是iBATIS SQL Map。本书分为三个部分,第...

    strut2+spring+ibatis 的ation层,service层,dao层自动生成,简单易用

    Struts2、Spring和iBatis是Java Web开发中常用的三大框架,它们分别负责MVC模式中的Action层、业务逻辑层(Service层)以及数据访问层(DAO层)。本项目提供的是一款工具,能够自动化生成这三层的代码,极大地提高了...

    ibatis-dao-2.jar

    ibatis-dao-2.jar gggggggggggg

    ibatis-api中文(真的中文)

    其次,`iBATIS-DAO-2_en.pdf`是关于iBATIS DAO层的英文文档。DAO(Data Access Object)模式是一种常用的设计模式,用于隔离应用程序与数据存储之间的交互。在iBATIS中,DAO层可以帮助你创建可重用的对象,这些对象...

Global site tag (gtag.js) - Google Analytics