关闭

java JDBC通用BaseDao升级版0.2

标签: java数据库jdbc
370人阅读 评论(0) 收藏 举报
分类:

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15309次
    • 积分:571
    • 等级:
    • 排名:千里之外
    • 原创:41篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论