JDBC BaseDao工具类

package dao;

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

public class BaseDao {
	
	private static final String URL;
	private static final String DRIVER;
	private static final String USERNAME;
	private static final String PASSWORD;
	
	// 读取properties
	static {
		Properties properties = new Properties();
		InputStream is = BaseDao.class.getResourceAsStream("/db.properties");
		try {
			properties.load(is);
		} catch (IOException e) {
			e.printStackTrace();
		}
		// 赋值
		URL = properties.getProperty("URL");
		DRIVER = properties.getProperty("DRIVER");
		USERNAME = properties.getProperty("USERNAME");
		PASSWORD = properties.getProperty("PASSWORD");
		try {
			// 释放InputStream
			is.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	
	private Connection conn = null;
	private PreparedStatement pstmt = null;
	private ResultSet rs = null;
	
	/**
	 * 
	 * 	获取Sql连接
	 * @return
	 */
	public Connection getConn() {
		Connection conn = null;
		try {
			Class.forName(DRIVER);
			conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return conn;
	}
	
	/**
	 * 	修改
	 * @param sql
	 * @param obj
	 * @return
	 */
	public int executeUpdate(String sql,Object[] obj) {
		// 获取MySql连接
		conn = this.getConn();
		
		int j = 0;
		try {
			conn.setAutoCommit(false);
			pstmt = conn.prepareStatement(sql);
			if(obj!=null) {
				for (int i = 0; i < obj.length; i++) {
					pstmt.setObject(i+1, obj[i]);
				}
			}
			j = pstmt.executeUpdate();
			conn.commit();
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			try {
				conn.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}finally {
			closeAll(conn, pstmt, rs);
		}
		
		
		return j;
	}
	/**
	 * 	查询
	 * @param sql
	 * @param obj
	 * @return
	 */
	public ResultSet executeQuery(String sql,Object[] obj) {
		conn = this.getConn();
		try {
			pstmt = conn.prepareStatement(sql);
			if(obj!=null) {
				for (int i = 0; i < obj.length; i++) {
					pstmt.setObject(i+1, i);
				}
			}
			rs = pstmt.executeQuery();
			
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return rs;
	}
	/**
	 * 	释放
	 * @param conn
	 * @param pstmt
	 * @param rs
	 */
	public void closeAll(Connection conn,PreparedStatement pstmt,ResultSet rs) {
		try {
			if(rs!=null) {
				rs.close();
			}
			if(pstmt!=null) {
				pstmt.close();
			}
			if(rs!=null) {
				rs.close();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	
	
	
	
}

  

猜你喜欢

转载自www.cnblogs.com/CanBlog/p/10627260.html