`

ibatis+spring操作数据库工具类

 
阅读更多
上图是大致目录结构和所需jar包,下面贴代码
实体类:SampleBean
package fdf.bean;

public class SampleBean {
private long id;
private String name;
private byte[]  blobSample;//接收blob类型字段
private String clobSample;//接收clob类型字段
public long getId() {
	return id;
}
public void setId(long id) {
	this.id = id;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public byte[] getBlobSample() {
	return blobSample;
}
public void setBlobSample(byte[] blobSample) {
	this.blobSample = blobSample;
}
public String getClobSample() {
	return clobSample;
}
public void setClobSample(String clobSample) {
	this.clobSample = clobSample;
}

}
ibatis配置文件
1、实体类映射sql的配置文件Sample.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="Sample" type="fdf.bean.SampleBean"/>
<resultMap class="Sample" id="resultSample">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="blobSample" column="blobSample"  jdbcType="BLOB"  typeHandler="com.ibatis.sqlmap.engine.type.BlobTypeHandlerCallback" />
<result property="clobSample" column="clobSample"   jdbcType="CLOB" javaType = "java.lang.String"/>
</resultMap>
<select id="findSampleList" parameterClass="Sample" resultClass="Sample" resultMap="resultSample">
		select * from ibatis_spring_util
</select>
</sqlMap>
2、加载映射配置的文件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="fdf/config/ibatis/Sample.xml"/>

</sqlMapConfig>
连接数据库配置文件(以本机oracle为例)jdbc.properties
driver=oracle.jdbc.driver.OracleDriver
url=jdbc\:oracle\:thin\:@127.0.0.1\:1521\:orcl
username=****
password=*****
Spring配置文件applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"       
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
     
     <context:component-scan base-package="fdf"></context:component-scan>
      
     <bean id="propertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location">
			<value>classpath:fdf/config/oracle/jdbc.properties</value>
		</property>
	</bean>
	 
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="${driver}"/>
		<property name="url" value="${url}"/>
		<property name="username" value="${username}"/>
		<property name="password" value="${password}"/>      
        <!--initialSize: 初始化连接-->  
		<property name="initialSize" value="2"/>  
		<!--maxIdle: 最大空闲连接-->  
		<property name="maxIdle" value="2"/>  
		<!--minIdle: 最小空闲连接-->  
		<property name="minIdle" value="2"/>  
		<!--maxActive: 最大连接数量-->  
		<property name="maxActive" value="5"/>  
		<!--removeAbandoned: 是否自动回收超时连接-->  
		<property name="removeAbandoned" value="true"/>  
		<!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->  
		<property name="removeAbandonedTimeout" value="180"/>  
		<!--maxWait: 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒-->  
		<property name="maxWait" value="3000"/>  
		<property name="poolPreparedStatements" value="false"/>
        <property name="defaultAutoCommit" value="true"/>
	</bean>   
    
    <!-- 配置数据源 -->
	
	<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
		<property name="dataSource" ref="dataSource"/>
		<property name="configLocation">
			<value>classpath:fdf/config/ibatis/SqlMapConfig.xml</value>
		</property>	
	</bean>
	
</beans>
操作接口:SampleDao

package fdf.dao;

import java.util.List;

import fdf.bean.SampleBean;

public interface SampleDao {
public List<SampleBean> findSampleList(SampleBean sampleBean);
}
ibatis基础操作接口BaseDao
package fdf.dao;

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

import javax.annotation.PostConstruct;
import javax.annotation.Resource;

import org.springframework.orm.ibatis.SqlMapClientTemplate;

import com.ibatis.sqlmap.client.SqlMapClient;



public class BaseDao<T> extends SqlMapClientTemplate{

	@Resource(name = "sqlMapClient")    
	private SqlMapClient sqlMapClient;
	
	@PostConstruct        
	public void initSqlMapClient(){         
		super.setSqlMapClient(sqlMapClient);    
	} 
	
	@SuppressWarnings("unchecked")
	public List<Object> queryListNoPage(String sqlId,Object obj){
		List<Object> list = null;
		try {
			list = (List<Object>) super.getSqlMapClient().queryForList(sqlId, obj);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return list;
	}
}
接口实现类SampleDaoImpl
package fdf.dao.impl;

import java.util.List;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;



import fdf.bean.SampleBean;
import fdf.dao.BaseDao;
import fdf.dao.SampleDao;
@Transactional
@Service @Scope("prototype")

public class SampleDaoImpl extends BaseDao<SampleBean> implements SampleDao{

	@SuppressWarnings("unchecked")
	@Override
	public List<SampleBean> findSampleList(SampleBean sampleBean) {
		// TODO Auto-generated method stub
		return (List)queryListNoPage("findSampleList",sampleBean);
	}

}
main方法入口SampleStart

package fdf.init;

import java.util.List;

import org.apache.log4j.PropertyConfigurator;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import fdf.bean.SampleBean;
import fdf.dao.SampleDao;

public class SampleStart {
	
	

	public static void  sampleExcute(SampleBean sampleBean){
		
		AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("fdf/config/spring/applicationContext.xml");
		 SampleDao sampleDao=(SampleDao)ctx.getBean("sampleDaoImpl");
		List<SampleBean>  list=sampleDao.findSampleList(sampleBean);
		for(int i=0;i<list.size();i++){
			System.out.println("id======="+list.get(i).getId());
			System.out.println("ClobSample======="+list.get(i).getClobSample());
		}
	}
	public static void main(String[] args) {
		//初始化log4j
		PropertyConfigurator.configure("log4j.properties");
		SampleBean sampleBean=new SampleBean();
		SampleStart.sampleExcute(sampleBean);
	}

}


本文是自己的慢慢积累,希望与大家共同进步,本文地址http://blog.csdn.net/wind_fdf/article/details/12889875,转载请说明,谢谢!!!




 
分享到:
评论

相关推荐

    最新最全的spring开发包

    这个jar文件包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。 (2) spring-beans.jar 这个jar文件是所有应用都要...

    java代码自动生成器(根据数据库生成数据库操作代码)

    是一个以spring为核心的项目脚手架(或者称为胶水框架),框架将各个零散的框架(struts,strust2,springmvc,hibernate,ibatis,spring_jdbc,flex)搭建好,并内置一个代码生成器,辅助项目开发,可以生成java的hibernat ...

    SSM整合开发.docx

    Spring:业务层,管理service,dao,工具类对象的。 MyBatis:持久层, 访问数据库的 用户发起请求--SpringMVC接收--Spring中的Service对象--MyBatis处理数据 SSM整合也叫做SSI (IBatis也就是mybatis的前身), 整合...

    .net源码生成工具DataBase2Sharp

    深田之星Database2Sharp,是一个NHibernate、Castle-... 11、增加Java框架(Ibatis+Spring+struts+Extjs)代码的生成;添加Java实体类快速生成。 12、增加企业级别的界面自动生成,集成了标准、美观、统一的界面元素。

    Spring-Reference_zh_CN(Spring中文参考手册)

    11.2. 利用JDBC核心类实现JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5. SQLExceptionTranslator接口 ...

    Spring 2.0 开发参考手册

    11.2. 利用JDBC核心类实现JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5. SQLExceptionTranslator接口...

    spring chm文档

    11.2. 利用JDBC核心类实现JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5. SQLExceptionTranslator接口...

    Spring中文帮助文档

    11.2. 利用JDBC核心类控制JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5. SQLExceptionTranslator接口...

    JAVA WEB典型模块与项目实战大全

    10.2 在线网上支付功能工具类  10.3 发出支付请求过程  10.4 接受支付返回过程  10.5 小结  第11章 javaweb邮件发送系统(jsp+servlet+javabean)  11.1 javaweb邮件发送系统原理  11.2 下载邮件相关jar...

    Spring API

    11.2. 利用JDBC核心类控制JDBC的基本操作和错误处理 11.2.1. JdbcTemplate类 11.2.2. NamedParameterJdbcTemplate类 11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5. SQLExceptionTranslator接口...

    springmybatis

    1.Configuration.xml 是 mybatis 用来建立 sessionFactory 用的,里面主要包含了数据库连接相关东西,还有 java 类所对应的别名,比如 &lt;typeAlias alias="User" type="com.yihaomen.mybatis.model.User"/&gt; 这个别名...

    Spring面试题

    ☆ Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。 ☆ Spring Web 模块:...

    DBKING使用指南

     dbking是鉴于我们的开发经验和考虑,权衡出来的数据库工具,其主要考虑的方向有以下几点:  1、简洁。所有的核心接口都在一个类里边,这个类是DbKing,代码不过1000行,却提供了大量的高质量功能方法,使用...

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    语言工具类库 容器类 集合 链表 map 工具类 系统类 日期类 数字类 字符串+正则 流 字符流 字节流 语言特性 继承 封装 多态 JVM 多线程与并发 GC机制 GC收集器类型 串行 CMS 并行 G1 算法 ...

    2021年最新java面试题--视频讲解(内部培训84个知识点超详细).rar

    实现一个拷贝文件的工具类要使用字节流还是字符串 Java面试题13.线程的的实现方式?怎么启动线程?怎么区分线程? Java面试题14.线程并发库和线程池的作用 Java面试题15.设计模式和常用的设计模式 Java面试题16....

    java的轻量级orm工具包jdao.zip

    jdao是一个轻量级的orm工具包,通过简单配置或者连接数据库提供表名它便可以自动生成与数据库表一一对应的dao类,生成的dao类提供了与SQL无关的增删改查的功能。在复杂的查询SQL中,我建议编程人员自己编写高效的SQL...

    Jmr - Java Code Generator:“黑科技”将使开发生产力提高1.5到5-开源

    %&gt;类似JSP)和Jmr标记(设置/获取) / for ...)模型:数据库模型(如表/视图),Java POJO模型,Xml文件模型,并包含转换/映射/转换工具操作:Java类可以将Java变量设置为模板。 支持任何类型的项目Maven,Gradle,...

Global site tag (gtag.js) - Google Analytics