JDBCUtils

抽取JDBCUtils工具类简化开发

package utils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * JDBCUtils工具类
 * @author me
 *
 */

public class JDBCUtils {
    
    //构造方法私有
    private JDBCUtils() {}
    
    /**
     * 注册驱动
     */
    public static void loadDriver() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    
    /**
     * 获取数据库链接对象
     * @return  链接对象
     */
    public static Connection getConnection() {
        try {
            return DriverManager.getConnection("jdbc:mysql:///testjdbc", "root", "123");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
    
    /**
     * 释放资源
     * @param conn数据库链接对象
     * @param stat执行SQL语句的对象
     * @param rs结果集对象
     */
    public static void release(Connection conn, Statement stat, ResultSet rs) {
        try {
            if(rs != null) {
                rs.close();
                rs = null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if(stat != null) {
                    stat.close();
                    stat = null;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                try {
                    if(conn != null) {
                        conn.close();
                        conn = null;
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    
    /**
     * 释放资源
     * @param conn数据库链接对象
     * @param stat执行SQL语句的对象
     */
    public static void release(Connection conn, Statement stat) {
        try {
            if(stat != null) {
                stat.close();
                stat = null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if(conn != null) {
                    conn.close();
                    conn = null;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

通过JDBCUtils进行增删改查:

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.junit.Test;

import utils.JDBCUtils;

public class JDBC_Utils_CURD {
    /**
     * 增加
     */
    @Test
    public void method1() {
        JDBCUtils.loadDriver();
        Connection conn = null;
        Statement stat = null;
        try {
            conn = JDBCUtils.getConnection();
            stat = conn.createStatement();
            String sql = "insert into student values(null, 'zhangsan1')";
            int r = stat.executeUpdate(sql);
            if(r > 0) {
                System.out.println("添加成功");
                System.out.println(r + "行受到影响");
            } else {
                System.out.println("添加失败");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.release(conn, stat);
        }
        
    }
    
    /**
     * 删除
     */
    @Test
    public void method2() {
        JDBCUtils.loadDriver();
        Connection conn = null;
        Statement stat = null;
        try {
            conn = JDBCUtils.getConnection();
            stat = conn.createStatement();
            String sql = "delete from student where name = 'zhangsan'";
            int r = stat.executeUpdate(sql);
            if(r > 0) {
                System.out.println("删除成功");
                System.out.println(r + "行受到影响");
            } else {
                System.out.println("删除失败");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    
    /**
     * 修改
     */
    @Test
    public void method3() {
        JDBCUtils.loadDriver();
        Connection conn = null;
        Statement stat = null;
        try {
            conn = JDBCUtils.getConnection();
            stat = conn.createStatement();
            String sql = "update student set name = 'zhangsan' where name = 'zhangsan1'";
            int r = stat.executeUpdate(sql);
            if(r > 0) {
                System.out.println("修改成功");
                System.out.println(r + "行受到影响");
            } else {
                System.out.println("修改失败");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.release(conn, stat);
        }
    }
    
    /**
     * 查询
     */
    @Test
    public void method4() {
        JDBCUtils.loadDriver();
        Connection conn = null;
        Statement stat = null;
        ResultSet rs = null;
        try {
            conn = JDBCUtils.getConnection();
            stat = conn.createStatement();
            String sql = "select * from student";
            rs = stat.executeQuery(sql);
            while(rs.next()) {
                System.out.println(rs.getInt("id") + "---" + rs.getString("name"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils.release(conn, stat, rs);
        }
        
    }
}

读取配置文件版JDBCUtils2

config.properties:

driverName = com.mysql.jdbc.Driver
#url的格式:jdbc:mysql://ip:port/数据库名
url = jdbc:mysql:///testjdbc
username = root
password = 123
package utils;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/**
 * JDBCUtils读取配置文件版
 * @author me
 */
public class JDBCUtils2 {
    
    private static String driverName;
    private static String url;
    private static String username;
    private static String password;
    
    /**
     * 构造函数私有化
     */
    private JDBCUtils2() {}
    
    /**
     * 读取配置文件,然后将值赋给成员变量
     */
    public static void readConfig() {
        Properties pp = new Properties();
        try {
            pp.load(new FileInputStream("src/config.properties"));
            driverName = pp.getProperty("driverName");
            url = pp.getProperty("url");
            username = pp.getProperty("username");
            password = pp.getProperty("password");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    /**
     * 注册驱动
     */
    static {
        readConfig();
        try {
            Class.forName(driverName);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取链接对象
     * @return Connection
     */
    public static Connection getConnection() {
        try {
            return DriverManager.getConnection(url, username, password);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
    
    /**
     * 释放资源
     * @param conn
     * @param stat
     * @param rs
     */
    public static void release(Connection conn, Statement stat, ResultSet rs) {
        try {
            if(rs != null) {
                rs.close();
                rs = null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if(stat != null) {
                    stat.close();
                    stat = null;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                try {
                    if(conn != null) {
                        conn.close();
                        conn = null;
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    
    /**
     * 释放资源
     * @param conn
     * @param stat
     */
    public static void release(Connection conn, Statement stat) {
        try {
            if(stat != null) {
                stat.close();
                stat = null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if(conn != null) {
                    conn.close();
                    conn = null;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    
}

使用JDBCUtils2进行增删改查

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.junit.Test;

import utils.JDBCUtils2;

/**
 * 使用读取配置文件的JDBCUtils省去了JDBCUtils.loadDrever();
 * 读取配置文件的信息放入了静态代码块中 
 * @author me
 */
public class JDBC_Utils2_CURD {
    /**
     * 增加
     */
    @Test
    public void method1() {
        Connection conn = null;
        Statement stat = null;
        try {
            conn = JDBCUtils2.getConnection();
            stat = conn.createStatement();
            String sql = "insert into student values(null, 'zhangsansan')";
            int r = stat.executeUpdate(sql);
            if(r > 0) {
                System.out.println("插入成功");
                System.out.println(r + "条数据受到影响");
            } else {
                System.out.println("插入失败");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils2.release(conn, stat);
        }
    }

    /**
     * 删除
     */
    @Test
    public void method2() {
        Connection conn = null;
        Statement stat = null;
        try {
            conn = JDBCUtils2.getConnection();
            stat = conn.createStatement();
            String sql = "delete from student where name = 'zhangsansan'";
            int r = stat.executeUpdate(sql);
            if(r > 0) {
                System.out.println("删除成功");
                System.out.println(r + "条数据受到影响");
            } else {
                System.out.println("删除失败");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils2.release(conn, stat);
        }
    }
    
    /**
     * 修改
     */
    @Test
    public void method3() {
        Connection conn = null;
        Statement stat = null;
        try {
            conn = JDBCUtils2.getConnection();
            stat = conn.createStatement();
            String sql = "update student set name = 'zhangsansan' where name = 'zhangsan'";
            int r = stat.executeUpdate(sql);
            if(r > 0) {
                System.out.println("修改成功");
                System.out.println(r + "条数据受到影响");
            } else {
                System.out.println("修改失败");
            }
                
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils2.release(conn, stat);
        }
    }
    
    /**
     * 查询
     */
    @Test
    public void method4() {
        
        Connection conn = null;
        Statement stat = null;
        ResultSet rs = null;
        try {
            conn = JDBCUtils2.getConnection();
            stat = conn.createStatement();
            String sql = "select * from student";
            rs = stat.executeQuery(sql);
            while(rs.next()) {
                System.out.println(rs.getInt("id") + "---" + rs.getString("name"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JDBCUtils2.release(conn, stat, rs);
        }
    }
}

你可能感兴趣的:(JDBCUtils)