`
kevin_wanwei
  • 浏览: 115244 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jdbc工具类(2) (JDBC模板类)

阅读更多

这是我个人采用策略模式设计JDBC模板类:(供大家参考)

package daoUtil.daoTemplate;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;

import jdbcUtil.JdbcUtil;
import daoUtil.DAO;
import daoUtil.PrimaryKeyer;
import daoUtil.RowMapper;

public class DAOTemplate implements DAO{
	/**jdbc工具类*/
	private JdbcUtil jdbcUtil=JdbcUtil.getInstance();
	
	public  int delete(String sql, Object[] args) throws SQLException {
		if(args==null||args.length==0){
			return 0;
		}
		Connection conn=null;
		PreparedStatement ps=null;
		ResultSet rs=null;
		try {
			conn=jdbcUtil.getConnection();
			ps=jdbcUtil.scrollReadOnlyResultSet(sql,conn);
			for(int i=0;i<args.length;i++){
				ps.setObject(i+1,args[i]);
			}
			return ps.executeUpdate();
		}finally{
			jdbcUtil.free(rs,ps,conn);
		}
	}

	public int update(String sql, Object[] args) throws SQLException {
		if(args==null||args.length==0){
			return 0;
		}
		Connection conn=null;
		PreparedStatement ps=null;
		ResultSet rs=null;
		try {
			conn=jdbcUtil.getConnection();
			ps=jdbcUtil.scrollReadOnlyResultSet(sql,conn);
			for(int i=0;i<args.length;i++){
				ps.setObject(i+1,args[i]);
			}
			return ps.executeUpdate();
		}finally{
			jdbcUtil.free(rs,ps,conn);
		}
	}

	public Object find(String sql, Object[] args,RowMapper rowMapper) throws SQLException {
		if(args==null||args.length==0){
			return 0;
		}
		Connection conn=null;
		PreparedStatement ps=null;
		ResultSet rs=null;
		try {
			conn=jdbcUtil.getConnection();
			ps=jdbcUtil.scrollReadOnlyResultSet(sql,conn);
			for(int i=0;i<args.length;i++){
				ps.setObject(i+1,args[i]);
			}
			rs=ps.executeQuery();
			Object obj=null;
			while(rs.next()){
				obj=rowMapper.rowMapping(rs);
			}
			return obj;
		}finally{
			jdbcUtil.free(rs,ps,conn);
		}
	}


	public int getRecordCount(String tableName) throws SQLException {
		if(tableName==null||tableName.equals("")){
			return 0;
		}
		int count=0;
		Connection conn=null;
		PreparedStatement ps=null;
		ResultSet rs=null;
		try {
			conn=jdbcUtil.getConnection();
			String sql="select count(*) from "+tableName;
			ps=jdbcUtil.scrollReadOnlyResultSet(sql,conn);
			if(rs.next()){
				count=rs.getInt(1);
			}
		}finally{
			jdbcUtil.free(rs,ps,conn);
		}
		return count;
	}

	public int insert(String sql, Object[] args, int primaryKeyIndex,PrimaryKeyer primaryKeyer) throws SQLException {
		if(args==null||args.length==0){
			return 0;
		}
		Connection conn=null;
		PreparedStatement ps=null;
		ResultSet rs=null;
		try {
			conn=jdbcUtil.getConnection();
			ps=jdbcUtil.scrollReadOnlyResultSet(sql,conn);
			if(primaryKeyIndex<=-1){
				for(int i=0;i<args.length;i++){
					ps.setObject(i+1,args[i]);
				}
			}else if(primaryKeyIndex>-1&&primaryKeyIndex<args.length){
				for(int i=0;i<args.length;i++){
					if(i==primaryKeyIndex){
						ps.setObject(i+1,primaryKeyer.getPrimaryKey());
					}else{
						ps.setObject(i+1,args[i]);
					}
				}
			}else{
				throw new IllegalArgumentException("设置主键位置不正确!");
			}
			return ps.executeUpdate();
		}finally{
			jdbcUtil.free(rs,ps,conn);
		}
	}


	public Collection ObjectList(String sql, Object[] args,RowMapper rowMapper) throws SQLException {
		if(args==null||args.length==0){
			return null;
		}
		Connection conn=null;
		PreparedStatement ps=null;
		ResultSet rs=null;
		Collection list=null;
		try {
			conn=jdbcUtil.getConnection();
			ps=jdbcUtil.scrollReadOnlyResultSet(sql,conn);
			for(int i=0;i<args.length;i++){
				ps.setObject(i+1,args[i]);
			}
			list=new ArrayList();
			rs=ps.executeQuery();
			while(rs.next()){
				Object obj=rowMapper.rowMapping(rs);
				list.add(obj);
			}
		}finally{
			jdbcUtil.free(rs,ps,conn);
		}
		return list;
	}

}

 

分享到:
评论

相关推荐

    Spring JDBC模板类—org.springframework.jdbc.core.JdbcTemplate

    NULL 博文链接:https://just-do-myself.iteye.com/blog/663368

    JDBC 3.0数据库开发与设计

    第2章 JDBC开发环境及配置 2.1 数据库系统 2.1.1 SQL数据库数据库基本操作语句 2.1.2 Microsoft SQL Server数据库设计及ODBC配置 2.1.3 Oracle 数据库的基本说明及其使用简介 2.1.4 MySQL的安装及使用简介 ...

    jar包和工具类.zip

    包含c3p0-0.9.1.2.jar,commons-beanutils-1.8.3.jar,commons-dbutils-1.6.jar,commons-fileupload-1.2.1.jar,commons-io-1.4.jar, 等mysql和jstl的jar包。还含有jquery-1.8.2.min.js以及c3p0.xml模板和jdbc工具类。

    玩转模板--自动代码生成工程

    工程中会大量使用apache基金会的通用工具类,使代码更加简洁高效,在其提供的工具类没有的情况下或方法不全(如,对汉字的处理)的情况 增加/扩展某一工具类,一般xxxUtilsExt为文件后缀 随便提一下使用第三方工具类的...

    java代码自动生成工具

    java代码自动生成工具: 1.根据Mysql数据库的表生成java实体类,包括注释 2.将Excel表格数据生成java实体类,包括注释 3.包括源文件和生成好的jar工具...java、log4j、poi表格操作、jdbc数据库操作、freeMarker模板使用

    mybatis generator

    软件最大的特色就是操作SQL类的Assist查询帮助类(Assist是特别定制的查询工具,使用该工具一切操作都会变得超简单,比如:分页通过Assist只需要设置2个参数就可以实现,比如参数1=10,参数2=5,查询出来就是第10行到15行的...

    软件工程课程设计-基于java+jsp+jdbc实现的学生信息管理系统+文档说明+安装教学,可一键运行

    jdbcutil工具类 与前端的操作部分 servlet层 filter层 单元测试 前端 全局页面 登录页面 找回密码页面 修改密码页面 学生页面 教师页面 教务员页面 管理员页面 - 不懂运行,下载完可以私聊问,可远程教学 该资源内...

    dy.jar

    自己写的Web开发工具包。具体包含下面4个部分: &lt;br&gt; 1. 一个简单的servlet+javabean+view的框架,并支持了Freemarker模板;... 对jakarta commons-fileupload封装便于上传下载的工具类。 &lt;br&gt;

    基于SSM+FreeMarker搭建的Java后台工程模板+源代码+文档说明

    其中,common中主要放一些全局会使用到的类,例如我会将工具类、默认的controller、pojo、dao放在里面;core中主要是放集成的工具,例如我这里放了对FreeMarkerView的扩展,可以将mybatis的相关类,或者以后集成更多...

    Spring-Generator

    软件最大的特色就是操作SQL类的Assist查询帮助类(Assist是特别定制的查询工具,使用该工具一切操作都会变得超简单,比如:分页通过Assist只需要设置2个参数就可以实现,比如参数1=10,参数2=5,查询出来就是第10行到15行的...

    SqlMap自动生成小工具SqlMapAutoGen1.0

    2)根据字段的java类型获取jdbc类型 我只定义了以下规则 // javaType --&gt; jdbcType rules.put("java.lang.String", "VARCHAR"); rules.put("java.lang.Long", "DECIMAL"); rules.put("java.lang.Integer", ...

    spring jar 包详解

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

    基于javafx8开发的图形界面Vert.x代码生成器,用户可以一键将数据库中的表生成为任意风格的.java代码文件

    软件最大的特色就是操作SQL类的SqlAssist查询帮助类(Assist是特别定制的查询工具,使用该工具一切操作都会变得超简单,比如:分页通过Assist只需要设置2个参数就可以实现,比如参数1=10,参数2=5,查询出来就是第10行到15...

    最新最全的spring开发包

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

    Spring-generator一键生成数据库文件

    软件最大的特色就是操作 SQL 类的 Assist 查询帮助类(Assist 是特别定制的查询工具,使用该工具一切操作都会变得超简单,比如:分页通过 Assist 只需要设置2个参数就可以实现,比如参数1=10,参数2=5,查询出来就是第10行...

    JSP 程序设计从入门到精通 PDF 教程

     附录2 java常用开发工具介绍 332  附录3 图解利用Eclipse3+Lomboz3+Tomcat开发JSP 335    本书较为全面地介绍了JSP技术,由浅入深、循序渐进地介绍了JSP的运行系统,基本概念,语法规范及其相关内容,从基本...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    1.3 JavaWeb开发的基石-开发工具包JrDK 1.3.1 下载JDK 1.3.2 JDK的安装 1.3.3 配置和测试JDK 1.4 JavaWeb应用的Web服务器Tomcat 1.4.1 Web应用服务工作原理 1.4.2 web应用服务器汇总 1.4.3 获取Tomcat 1.4.4 熟悉...

    asp.net mvc框架编写的绩效考评系统(可做毕业设计或课程设计)

    开发环境:windows8,工具vs2012,数据库sqlserver2008 需求如下:绩效考评 标准:指标。 基础数据: ①评分结果分布等级(比如60~70为等级C),2 ②指标,用来考核。 1方向(比如JAVA,ASP.NET) 2类别(比如J2EE,...

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例

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

    Java Web程序设计教程

    15.4.2工具类的实现 304 15.4.3管理员登录与退出实现 306 15.4.4系统管理实现 313 15.4.5图书管理实现 319 15.4.6读者管理实现 329 15.4.7借还管理实现 333 15.4.8前台功能实现 336 本章小结 342

Global site tag (gtag.js) - Google Analytics