用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

自己写的一个JDBC框架

2013-04-24 作者: Sommer举报

[java]代码库

package cn.itcast.utils;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSourceFactory;

public class JdbcUtils {
	
	private static DataSource ds=null;
	static {
		try {
			InputStream intput=JdbcUtils.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");
			Properties pro=new Properties();
			pro.load(intput);
			BasicDataSourceFactory factory=new BasicDataSourceFactory();
			ds=factory.createDataSource(pro);
		} catch (Exception e) {
			throw new ExceptionInInitializerError(e);
		}
	}
	
	
	public static Connection getConnection() throws SQLException{
		return ds.getConnection();
	}
	
	public static void realease(Connection conn,PreparedStatement ps,ResultSet rs){
		if(conn!=null){
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			conn=null;
		}
		
		if(ps!=null){
			try {
				ps.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			ps=null;
		}
		
		if(rs!=null){
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			rs=null;
		}
	}
	
	//用于对数据的增,删 ,改
	 public void update(String sql,Object params[]) throws SQLException{
		 Connection conn=null;
		 PreparedStatement ps=null;
		 ResultSet rs=null;	
		 try{
			 conn=getConnection();
			 ps=conn.prepareStatement(sql);
			 for(int i=0;i<params.length;i++){
				 ps.setObject(i+1, params[i]);
			 }
			 ps.executeUpdate();
		 }finally{
			 realease(conn, ps, rs);
		 }
	 }
	 
	 //用于对数据的查找
	 public static Object query(String sql,Object params[],ResultSetHandler handler) throws SQLException{
		 Connection conn=null;
		 PreparedStatement ps=null;
		 ResultSet rs=null;
		 try{
			 conn=getConnection();
			 ps=conn.prepareStatement(sql);
			 for(int i=0;i<params.length;i++){
				 ps.setObject(i+1, params[i]);
			 }
			 rs=ps.executeQuery();
			 //由于不知道对结果集的处理,这个地方就暴露一个接口,让使用者去调用。
			 return handler.handel(rs);
		 }finally{
			 realease(conn, ps, rs);
		 }	 
	 }

}


[源代码打包下载]




网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...