代码改进背景介绍:V1版本
使用JDBC操作数据库,我们会发现有些固有不变的代码,我们不需要每次都实现一遍,
为了提高代码的复用性与避免编写重复的代码,我们可以将JDBC固有操作封装成一个工具类,
在使用到时调用其中静态方法即可。
/** * 该类用来管理数据库连接 * @author Cher_du * */ public class DBUtil { private static String driverClass ="oracle.jdbc.driver.OracleDriver"; private static String url = "jdbc:oracle:thin:@localhost:1521:orcl"; private static String user ="learn"; private static String password = "learn"; //1.加载驱动 static{ try { Class.forName(driverClass); } catch (ClassNotFoundException e) { e.printStackTrace(); throw new RuntimeException("加载驱动错误!",e); } } //2.创建连接 /* * 如何定义一个创建连接的方法 * * 返回值类型: * 是否有运算结果,如果有, * 结果的类型即为返回值类型。 * 参数列表: * 功能中,是否有不确定的数据参与运算 * 如果有,即为参数列表 */ public static Connection getConnection() throws SQLException{ Connection conn = DriverManager.getConnection(url,user,password); return conn; } //3.关闭连接 public static void close(Connection conn){ if(conn !=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("关闭连接错误!",e); } } } //测试 public static void main(String[] args) throws SQLException { System.out.println(getConnection()); } }
我们编写任何一个工具类都要有对应测试用例,以便别人方便快捷的知道如何正确使用。
案例中只是为了方便理解JDBC知识简单的使用了main方法做测试,正规的测试应当使用单元测试框架。(Juint等)
下面我们使用DBUtil工具类演示一下数据库操作:
/** * 演示:使用DBUtil类删除员工信息 * delete from emp * where empno = 1000; * @author Cher_du * */ public class JdbcDemo03 { public static void main(String[] args) { Connection conn = null; try { conn = DBUtil.getConnection(); Statement stmt = conn.createStatement(); String sql = "delete from emp "+ "where empno = 1000 "; int count= stmt.executeUpdate(sql); if(count >0){ System.out.println("删除成功!"); } } catch (SQLException e) { e.printStackTrace(); }finally{ DBUtil.close(conn); } } }
执行程序后数据库表中数据变化-[鲁迅 数据已经被删除了]