Java中Dao模式中两种Dao的数据库操作(BaseDao的写法)

来源:互联网 发布:kali linux 密码字典 编辑:程序博客网 时间:2024/05/22 00:23

Dao模式是Java面向设计时的一种模式。而Dao中的BaseDao无非是对数据进行CURD(增删改查),下面列出两种常用的连接,增删改的方法。
情况一:

mport java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class BaseDao {    private final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";    private final String URL= "jdbc:sqlserver://localhost:1433;databaseName=MyJava";    private final String USERNAME = "sa";    private final String PWD = "sa";    private Connection connection;    private PreparedStatement ps;    protected ResultSet rs;    public void getConnection(){        try {            Class.forName(DRIVER);            // 2在网络中查找数据库,创建连接对象            connection = DriverManager.getConnection(                    URL, USERNAME,PWD);        } catch (ClassNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        //return connection;    }    public void closeAll(){        try {            // 释放资源            if (rs != null)                rs.close();            if (ps != null)                ps.close();            if (connection != null)                connection.close();        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    /**     * 查询     * @param sql     * @param params     */    public void executeQuery(String sql , Object[] params){        try {            getConnection();            ps = connection.prepareStatement(sql);            if(params!= null){                for (int i = 0; i < params.length; i++) {                    ps.setObject(i+1, params[i]);                }            }            rs = ps.executeQuery();        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    /**     * 查询     * @param sql     * @param params     */    public void executeQuery1(String sql , Object... params){        try {            getConnection();            ps = connection.prepareStatement(sql);            if(params!= null){                for (int i = 0; i < params.length; i++) {                    ps.setObject(i+1, params[i]);                }            }            rs = ps.executeQuery();        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    /**     * 增、删、改     * @param sql     * @param params     * @return     */    public int executeUpdate(String sql , Object[] params){        int result = -1;        try {            getConnection();            ps = connection.prepareStatement(sql);            if(params!= null){                for (int i = 0; i < params.length; i++) {                    ps.setObject(i+1, params[i]);                }            }            result= ps.executeUpdate();        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }finally{            this.closeAll();        }        return result;    }    /**     * 增、删、改     * @param sql     * @param params     * @return     */    public int executeUpdate1(String sql , Object... params){        int result = -1;        try {            getConnection();            ps = connection.prepareStatement(sql);            if(params!= null){                for (int i = 0; i < params.length; i++) {                    ps.setObject(i+1, params[i]);                }            }            result= ps.executeUpdate();        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }finally{            this.closeAll();        }        return result;    }}

情况二:

package dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class BaseDao1 {    private final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";    private final String URL= "jdbc:sqlserver://localhost:1433;databaseName=MyJava";    private final String USERNAME = "sa";    private final String PWD = "sa";    protected Connection connection;    protected PreparedStatement ps;    public Connection getConnection(){        try {            Class.forName(DRIVER);            // 2在网络中查找数据库,创建连接对象            connection = DriverManager.getConnection(                    URL, USERNAME,PWD);        } catch (ClassNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return connection;    }    public void closeAll(ResultSet rs, PreparedStatement ps, Connection conn ){        try {            // 释放资源            if (rs != null)                rs.close();            if (ps != null)                ps.close();            if (conn != null)                conn.close();        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    public ResultSet executeQuery(String sql , Object[] params){        ResultSet rs = null;        try {            getConnection();            ps = connection.prepareStatement(sql);            if(params!= null){                for (int i = 0; i < params.length; i++) {                    ps.setObject(i+1, params[i]);                }            }            rs = ps.executeQuery();        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        return rs;    }    /**     * 增、删、改     * @param sql     * @param params     * @return     */    public int executeUpdate1(String sql , Object... params){        int result = -1;        try {            getConnection();            ps = connection.prepareStatement(sql);            if(params!= null){                for (int i = 0; i < params.length; i++) {                    ps.setObject(i+1, params[i]);                }            }            result= ps.executeUpdate();        } catch (SQLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }finally{            this.closeAll(null,ps,connection);        }        return result;    }}

以上两种方法都只是以个人风格而使用。这只是最基本的代码了。oK。每天至少一个知识点到此。

1 0