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;
    }
    }
}        

 



posted @ 2020-07-27 15:51  01zh  阅读(328)  评论(1编辑  收藏  举报