java DBHelper

package db;

import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

import javax.servlet.ServletContext;

public class DBHelper {
	private Connection conn=null; 
	private PreparedStatement stm=null;
	private ResultSet rs=null;
	private String stringurl=null;
	public DBHelper(ServletContext ser)
		{
			sqlGetConnection(ser);
			sqlGetConnectionstr();
		}
	public DBHelper(String stringurl)
		{
			this.stringurl=stringurl;
			 sqlGetConnectionstr();
		}
		private void sqlGetConnection(ServletContext ser)
		{
			ServletContext servletContext = ser; 
			String path=servletContext.getRealPath("/db.conf");
			String url=null;
			InputStream in=null;
			Properties prop=new Properties();
			try {
				in=new FileInputStream(path);
				prop.load(in);
				String IP=prop.getProperty("IP");
				String port=prop.getProperty("Port");
				String username=prop.getProperty("UserName");
				String password=prop.getProperty("PassWord");
				String dbname=prop.getProperty("DBName");
				String defaultdb=prop.getProperty("DefaultDB");
				url="jdbc:"+dbname+"://"+IP+":"+port+"/"+defaultdb+"?user="+username+"&password"+password;
				this.stringurl=url;
				in.close();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		private void sqlGetConnectionstr()
		{
			try {
				//装载驱动
				try {
					Class.forName("com.mysql.jdbc.Driver");
				} catch (ClassNotFoundException e) {
					System.out.println("数据库驱动连接错去");
				}
				conn=DriverManager.getConnection(this.stringurl,"root","");
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		public void sqlClose()
		{
			try {
				if(rs!=null)
				{
					rs.close();
				}
				if(conn!=null)
				{
				conn.close();
				
				}
				if(stm!=null)
				{
					stm.close();
				}
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		public void AddParameter(Object...setvalue)
		{
			
			try {
			int i=1;
			for(Object setv : setvalue)
			{
				if(setv.getClass().getName()=="java.lang.String")
		    	{
						stm.setString(i, setv.toString());
					
		    	}
				System.out.println(setv.getClass().getName());
		    	if(setv.getClass().getName()=="java.lang.Integer")
		    	{
		    		
						stm.setInt(i,Integer.parseInt(setv.toString()));
					
		    	}
					i++;
			}

			} catch (SQLException e) {
					// TODO Auto-generated catch block
				sqlClose();
					e.printStackTrace();
				}
		}
	    public int sqlExcuteQuery(String stringsql,Object...setvalue)
	    {
	    	sqlGetConnectionstr();
	    	int i=0;
	    	try {
	    		stm=conn.prepareStatement(stringsql);
	    		AddParameter(setvalue);
				i=stm.executeUpdate();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	    	finally
	    	{
	    		sqlClose();
	    	}
	    	return i;
	    }
	    private ResultSet sqlResultSet(String stringsql,Object...setvalue)
	    {
	    	sqlGetConnectionstr();
			try {
				stm=conn.prepareStatement(stringsql);
				AddParameter(setvalue);
				rs=stm.executeQuery();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				sqlClose();
				e.printStackTrace();
		    		
			}
			
			return rs;
			
	    }
	    public ResultSet sqlExcuteQueryResultSet(String stringsql,Object...setvalue)
	    {
	    	sqlGetConnectionstr();
			try {
				return sqlResultSet(stringsql,setvalue);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				sqlClose();
				e.printStackTrace();
		    		
			}
			finally
	    	{
	    		sqlClose();
	    	
	    	}
			return rs;
	    }
	    public int sqlExcuteQueryResultSetRow(String stringsql,Object...setvalue)
	    {
	    	int countrow=0;
	    	try {
	    		sqlResultSet(stringsql,setvalue);
				while(rs.next())
				{
					countrow++;
				}
			} catch (SQLException e) {
				sqlClose();
				e.printStackTrace();
			}
	    	finally
	    	{
	    		sqlClose();
	    	}
	    	return countrow;
	    }
	    public List<List<Object>> sqlExcuteQueryList(String stringsql,Object...setvalue)
	    {
	    	sqlGetConnectionstr();
	    	List<List<Object>> list=null;
	    	int countrow=0;
	    	try {
	    		list=new ArrayList<List<Object>>();
	    		sqlResultSet(stringsql,setvalue);
	    		//查看元数据
				ResultSetMetaData rsmd=rs.getMetaData();
				int countcloumn=rsmd.getColumnCount();
				while(rs.next())
				{
					List<Object> listrow=new ArrayList<Object>();
					for(int i=1;i<=countcloumn;i++){
						listrow.add(rs.getString(i));
					}
					list.add(listrow);
					countrow++;
				}
			} catch (SQLException e) {
				sqlClose();
				e.printStackTrace();
			}
	    	finally
	    	{
	    		sqlClose();
	    	}
	    	if(countrow==0)
			{
				return null;
			}
			else
			{
				return list;
			}
}
	 
}


你可能感兴趣的:(DbHelper)