自已动手写ORM框架(3)——封装JdbcUtil

来源:互联网 发布:java web licence 编辑:程序博客网 时间:2024/05/16 00:58
自已动手写ORM框架(3)——封装JdbcUtil

    在阐述了ORM思想后,我们就可以真正的动手写自已的简易ORM框架了,ORM层是解决类的对像的数据表中记录的映射关系问题的,本章要解决的JdbcUtil是封装底层SQL语句执行的操作的。在ORM层构建好SQL语句后直接扔给JdbcUtil层来执行。
    
    思考一下,JdbcUtil需要提供哪些方法呢?
    我们按照PreparedStatement提供的两个方法来封装出JdbcUtil的两个方法:executeUpdate和executeQuery,其中前者用于执行DML语句(insert, delete, update),后者用于查询(select)。
    
    1. DML语句的执行接口
/** * 执行一条需要Connection的SQL语句 * @param conn数据库连接 * @param sqlSQL语句 * @param paramsSQL语句的参数 * @return执行语句后影响的记录的行数 * @throws SQLException  */public static int executeUpdate(Connection conn,String sql,Object...params)           throws SQLException{PreparedStatement pstmt = null;int rows = 0;//重组SQL语句执行try{pstmt = conn.prepareStatement(sql);for(int i=0; i<params.length; i++){pstmt.setObject(i+1, params[i]);}rows = pstmt.executeUpdate();}finally{IOUtil.close(pstmt);}return rows;}
    2. 查询语句的执行接口    
/** * 执行需要Connection的查询语句 * @param conn数据库连接 * @param sqlSQL语句 * @param paramsSQL语句参数列表 * @return查询结果集 * @throws SQLException */public static ResultSet executeQuery(Connection conn,String sql,Object...params)     throws SQLException{PreparedStatement pstmt = null;try{//执行SQL语句预编译pstmt = conn.prepareStatement(sql);//赋值参数for(int i=0; i<params.length; i ++){pstmt.setObject(i+1, params[i]);}//执行查询return pstmt.executeQuery();}catch(SQLException e){IOUtil.close(pstmt);throw new RuntimeException("SQL查询出错!",e);}}

    3. IOUtil的封装
    Connection,PreparedStatement,ResultSet对像的关闭,类似如下:    
/** * 关闭数据库连接 * @param conn 需要关闭的数据库连接对像 */public static void close(Connection conn){if(conn != null){try{conn.close();} catch (SQLException e){e.printStackTrace();}}}
    
    当然,在JdbcUtil里面还要处理从配置文件得到数据库的drivername,username,password,url等,这些放在静态初始化块里面。


0 0
原创粉丝点击