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


  • 相关阅读:
    Python学习 之 文件
    Python学习 之 对内存的使用(浅拷贝和深拷贝)
    Python学习 之 爬虫
    Python学习 之 正则表达式
    为何现在的网页广告都是有关你搜索或者购买过的商品 2015-08-22 22:06 1534人阅读 评论(35) 收藏
    Junit使用注意点
    用递归方式在JSON中查找对象
    利用StringBuffer来替换内容
    使用ant时 出现 java.lang.OutOfMemoryErro r: Java heap space的解决办法
    python-re使用举例
  • 原文地址:https://www.cnblogs.com/wode007/p/13385839.html
Copyright © 2020-2023  润新知