java JDBC通用BaseDao升级版0.2

来源:互联网 发布:金融大数据.pdf 编辑:程序博客网 时间:2024/05/22 04:36

,此次升级为了解决链接数据库时每次都要传用户名和密码的烦恼,添加了…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

0 0