java JDBC通用BaseDao升级版0.2

,此次升级为了解决链接数据库时每次都要传用户名和密码的烦恼,添加了…obj表示数组和变量。(JDK1.5增加功能)

package com.sun.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Map;

public class BaseDao {
    final String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    private String ip="localhost"; 
    private String databaseName;
    private String user="sa";
    private String password="123456";
    /** * 用于构建连接数据库 * @param ip * 数据库地址 * @param databaseName * 数据库的库名 * @param user * 数据库登陆用户名 * @param password * 数据库密码 */
    public BaseDao(String ip, String databaseName, String user, String password) {
        super();
        this.ip = ip;
        this.databaseName = databaseName;
        this.user = user;
        this.password = password;
    }
    /** * 这个构造用于连接本机的数据库 * @param databaseName :数据库名 */
    public BaseDao(String databaseName) {
        super();
        this.databaseName = databaseName;
    }
    /** * 用于创建连接对象 * @return * Connection * @throws SQLException */
    private Connection createConnection() throws SQLException{

            return DriverManager.getConnection("jdbc:sqlserver://"+ip+":1433;database="+databaseName,user,password);

    }
    /** * 此方法只能用于查询 * @param sql * :查询sql语句 * @param obj * :SQL语句给值 * @return :list: * 在list 里面装的MAP:在map中放的是一行表数据 */
    public ArrayList<Map<String, Object>> excuteQuery(String sql,Object ...obj)
    {
        Connection con=null;
        PreparedStatement ps=null;
        ResultSet rs=null;
        try{
        Class.forName(driver);
        con=createConnection();
        ps=con.prepareStatement(sql);
        if(obj!=null&& obj.length>0)
        {
            for (int i = 0; i < obj.length; i++) {

                ps.setObject(i+1, obj[i]);
            }
        }
        rs=ps.executeQuery();
        ArrayList<Map<String, Object>> list=ResultSetToList.resultSetToList(rs);

        if(list.size()>0)
        {
            return list;

        }else{
            return null;
        }

        }catch(Exception e){
            e.printStackTrace();
            return null;
        }finally{
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    /** * 此方法只能执行增删改 * @param sql * :查询sql语句 * @param obj * :SQL语句给值 * @return * 真假: */
    public boolean excuteUpdate(String sql,Object ...obj)
    {
        Connection con=null;
        PreparedStatement ps=null;
        try{
        Class.forName(driver);
        con=createConnection();
        ps=con.prepareStatement(sql);
        if(obj!=null&& obj.length>0)
        {
            for (int i = 0; i < obj.length; i++) {

                ps.setObject(i+1, obj[i]);
            }
        }
        int a=ps.executeUpdate();

        if(a>0)
        {
            return true;

        }else{
            return false;
        }

        }catch(Exception e){
            e.printStackTrace();
            return false;
        }finally{

            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

}
``

package com.sun.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class ResultSetToList {
public static ArrayList

你可能感兴趣的:(java,数据库,jdbc)