JDBC工具类—如何封装JDBC
“获得数据库连接”操作,将在以后的增删改查所有功能中都存在,可以封装工具类JDBCUtils。提供获取连接对象的方法,从而达到代码的重复利用。
该工具类提供方法:public static Connection getConn ()。代码如下:
package com.oracle.tools; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class JDBCUtils { public static <PreparedStatement> Connection getConn(){ Connection conn=null; try { //注册 Class.forName("com.mysql.jdbc.Driver"); //获取链接地址(URL, USER, PASSWORD); conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/oa?" + "characterEncoding=utf8", "root", "123456"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //返回连接 return conn; } //释放资源 public static void close(Connection conn,PreparedStatement pst){ if(pst!=null){ try { pst.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(conn!=null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //释放资源2,这里利用了方法重载 public static void close(Connection conn,PreparedStatement pst,ResultSet rs){ if(rs!=null){ try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(pst!=null){ try { pst.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(conn!=null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
try...catch方法写的过程中可以使用快捷方式直接点出来,节省代码时间,
当然,需要大家先熟记这种方法之后,在使用快捷方式。
JDBC类封装之后,用的时候需要先进行导包,然后再调用里面的方法
//导包 import com.oracle.tools.JDBCU; public class AdminDao { //以下是sql新增语句 public int ryadd(Emp emp) throws SQLException{ //调用JDBC类注册、链接方法 Connection conn=JDBCUtils.getConn(); // 获得预处理对象 String sql="insert into emp(enumber,epwd,ename,esex,edate,ehome,ephone,did,erank) values(?,?,?,?,?,?,?,?,?)"; PreparedStatement pst=conn.prepareStatement(sql); //SQL语句占位符设置实际参数 pst.setString(1, emp.getEnumber()); pst.setString(2, emp.getEpwd()); pst.setString(3, emp.getEname()); pst.setString(4, emp.getEsex()); pst.setDate(5, emp.getEdate()); pst.setString(6, emp.getEhome()); pst.setString(7, emp.getEphone()); pst.setInt(8, emp.getDid()); pst.setString(9, emp.getErank()); // 执行SQL语句 int row=pst.executeUpdate(); // 调用JDBC类释放资源方法 JDBCUtils.close(conn, pst); return row; } } }