`
dragonxiong
  • 浏览: 1141 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

(转)java版sqlhelper

    博客分类:
  • JAVA
阅读更多
这次做LN系统我负责的是连接数据库部分,视频已经录制完成,也传到了网上,希望网友们能指出我的不足,拜谢。下面是这次用到的sqlhelper的代码,权当作是留作备份了。

    package sql;
    import java.sql.*;
    import java.util.logging.*;

    /**
     *  SQL 基本操作
     * 通过它,可以很轻松的使用 JDBC 来操纵数据库
     * @author 郗晓勇
     */
    public class SQLHelper
    {
        /**
         * 驱动
         */
        public static String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
        /**
         * 连接字符串
         */
        public static String url = "jdbc:microsoft:sqlserver://192.168.24.246:1433;DatabaseName=LiNing";
        /**
         * 用户名
         */
        public static String user = "sa";
        /**
         * 密码
         */
        public static String password = "123456";
        /**
         * 不允许实例化该类
         */
        private SQLHelper()
        {
        }
        /**
         * 获取一个数据库连接
         * 通过设置类的  driver / url / user / password 这四个静态变量来 设置数据库连接属性
         * @return 数据库连接
         */
        public static Connection getConnection()
        {
            try
            {
                // 获取驱动,这里使用的是 sqljdbc_1.2.2828.100_chs.exe,不同版本的驱动,语句有所不同
                Class.forName(driver);
            } catch (ClassNotFoundException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
            }
            try
            {
                return DriverManager.getConnection(url, user, password);
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
                return null;
            }
        }
        /**
         * 获取一个 Statement
         * 该 Statement 已经设置数据集 可以滚动,可以更新
         * @return 如果获取失败将返回 null,调用时记得检查返回值
         */
        public static Statement getStatement()
        {
            Connection conn = getConnection();
            if (conn == null)
            {
                return null;
            }
            try
            {
                return conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                        ResultSet.CONCUR_UPDATABLE);
            // 设置数据集可以滚动,可以更新
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
                close(conn);
            }
            return null;
        }
        /**
         * 获取一个 Statement
         * 该 Statement 已经设置数据集 可以滚动,可以更新
         * @param conn 数据库连接
         * @return 如果获取失败将返回 null,调用时记得检查返回值
         */
        public static Statement getStatement(Connection conn)
        {
            if (conn == null)
            {
                return null;
            }
            try
            {
                return conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
            // 设置数据集可以滚动,可以更新
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
                return null;
            }
        }
        /**
         * 获取一个带参数的 PreparedStatement
         * 该 PreparedStatement 已经设置数据集 可以滚动,可以更新
         * @param cmdText 需要 ? 参数的 SQL 语句
         * @param cmdParams SQL 语句的参数表
         * @return 如果获取失败将返回 null,调用时记得检查返回值
         */
        public static PreparedStatement getPreparedStatement(String cmdText, Object... cmdParams)
        {
            Connection conn = getConnection();
            if (conn == null)
            {
                return null;
            }
            PreparedStatement pstmt = null;
            try
            {
                pstmt = conn.prepareStatement(cmdText, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
                int i = 1;
                for (Object item : cmdParams)
                {
                    pstmt.setObject(i, item);
                    i++;
                }
            } catch (SQLException e)
            {
                e.printStackTrace();
                close(conn);
            }
            return pstmt;
        }
        /**
         *  获取一个带参数的 PreparedStatement
         * 该 PreparedStatement 已经设置数据集 可以滚动,可以更新
         * @param conn 数据库连接
         * @param cmdText 需要 ? 参数的 SQL 语句
         * @param cmdParams SQL 语句的参数表
         * @return 如果获取失败将返回 null,调用时记得检查返回值
         */
        public static PreparedStatement getPreparedStatement(Connection conn, String cmdText, Object... cmdParams)
        {
            if (conn == null)
            {
                return null;
            }
            PreparedStatement pstmt = null;
            try
            {
                pstmt = conn.prepareStatement(cmdText, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
                int i = 1;
                for (Object item : cmdParams)
                {
                    pstmt.setObject(i, item);
                    i++;
                }
            } catch (SQLException e)
            {
                e.printStackTrace();
                close(pstmt);
            }
            return pstmt;
        }
        /**
         * 执行 SQL 语句,返回结果为整型
         * 主要用于执行非查询语句
         * @param cmdText SQL 语句
         * @return 非负数:正常执行; -1:执行错误; -2:连接错误
         */
        public static int ExecSql(String cmdText)
        {
            Statement stmt = getStatement();
            if (stmt == null)
            {
                return -2;
            }
            int i;
            try
            {
                i = stmt.executeUpdate(cmdText);
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null,
                        ex);
                i = -1;
            }
            closeConnection(stmt);
            return i;
        }
        /**
         * 执行 SQL 语句,返回结果为整型
         * 主要用于执行非查询语句
         * @param cmdText SQL 语句
         * @return 非负数:正常执行; -1:执行错误; -2:连接错误
         */
        public static int ExecSql(Connection conn, String cmdText)
        {
            Statement stmt = getStatement(conn);
            if (stmt == null)
            {
                return -2;
            }
            int i;
            try
            {
                i = stmt.executeUpdate(cmdText);
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null,
                        ex);
                i = -1;
            }
            close(stmt);
            return i;
        }
        /**
         * 执行 SQL 语句,返回结果为整型
         * 主要用于执行非查询语句
         * @param cmdText 需要 ? 参数的 SQL 语句
         * @param cmdParams SQL 语句的参数表
         * @return 非负数:正常执行; -1:执行错误; -2:连接错误
         */
        public static int ExecSql(String cmdText, Object... cmdParams)
        {
            PreparedStatement pstmt = getPreparedStatement(cmdText, cmdParams);
            if (pstmt == null)
            {
                return -2;
            }
            int i;
            try
            {
                i = pstmt.executeUpdate();
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null,
                        ex);
                i = -1;
            }
            closeConnection(pstmt);
            return i;
        }
        /**
         * 执行 SQL 语句,返回结果为整型
         * 主要用于执行非查询语句
         * @param conn 数据库连接
         * @param cmdText 需要 ? 参数的 SQL 语句
         * @param cmdParams SQL 语句的参数表
         * @return 非负数:正常执行; -1:执行错误; -2:连接错误
         */
        public static int ExecSql(Connection conn, String cmdText, Object... cmdParams)
        {
            PreparedStatement pstmt = getPreparedStatement(conn, cmdText, cmdParams);
            if (pstmt == null)
            {
                return -2;
            }
            int i;
            try
            {
                i = pstmt.executeUpdate();
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
                i = -1;
            }
            close(pstmt);
            return i;
        }
        /**
         * 返回结果集的第一行的一列的值,其他忽略
         * @param cmdText SQL 语句
         * @return
         */
        public static Object ExecScalar(String cmdText)
        {
            ResultSet rs = getResultSet(cmdText);
            Object obj = buildScalar(rs);
            closeConnection(rs);
            return obj;
        }
        /**
         * 返回结果集的第一行的一列的值,其他忽略
         * @param conn 数据库连接
         * @param cmdText SQL 语句
         * @return
         */
        public static Object ExecScalar(Connection conn, String cmdText)
        {
            ResultSet rs = getResultSet(conn, cmdText);
            Object obj = buildScalar(rs);
            closeEx(rs);
            return obj;
        }
        /**
         * 返回结果集的第一行的一列的值,其他忽略
         * @param cmdText 需要 ? 参数的 SQL 语句
         * @param cmdParams SQL 语句的参数表
         * @return
         */
        public static Object ExecScalar(String cmdText, Object... cmdParams)
        {
            ResultSet rs = getResultSet(cmdText, cmdParams);
            Object obj = buildScalar(rs);
            closeConnection(rs);
            return obj;
        }
        /**
         * 返回结果集的第一行的一列的值,其他忽略
         * @param conn 数据库连接
         * @param cmdText 需要 ? 参数的 SQL 语句
         * @param cmdParams SQL 语句的参数表
         * @return
         */
        public static Object ExecScalar(Connection conn, String cmdText, Object... cmdParams)
        {
            ResultSet rs = getResultSet(conn, cmdText, cmdParams);
            Object obj = buildScalar(rs);
            closeEx(rs);
            return obj;
        }
        /**
         * 返回一个 ResultSet
         * @param cmdText SQL 语句
         * @return
         */
        public static ResultSet getResultSet(String cmdText)
        {
            Statement stmt = getStatement();
            if (stmt == null)
            {
                return null;
            }
            try
            {
                return stmt.executeQuery(cmdText);
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
                closeConnection(stmt);
            }
            return null;
        }
        /**
         * 返回一个 ResultSet
         * @param conn
         * @param cmdText SQL 语句
         * @return
         */
        public static ResultSet getResultSet(Connection conn, String cmdText)
        {
            Statement stmt = getStatement(conn);
            if (stmt == null)
            {
                return null;
            }
            try
            {
                return stmt.executeQuery(cmdText);
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
                close(stmt);
            }
            return null;
        }
        /**
         * 返回一个 ResultSet
         * @param cmdText 需要 ? 参数的 SQL 语句
         * @param cmdParams SQL 语句的参数表
         * @return
         */
        public static ResultSet getResultSet(String cmdText, Object... cmdParams)
        {
            PreparedStatement pstmt = getPreparedStatement(cmdText, cmdParams);
            if (pstmt == null)
            {
                return null;
            }
            try
            {
                return pstmt.executeQuery();
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
                closeConnection(pstmt);
            }
            return null;
        }
        /**
         * 返回一个 ResultSet
         * @param conn 数据库连接
         * @param cmdText 需要 ? 参数的 SQL 语句
         * @param cmdParams SQL 语句的参数表
         * @return
         */
        public static ResultSet getResultSet(Connection conn, String cmdText, Object... cmdParams)
        {
            PreparedStatement pstmt = getPreparedStatement(conn, cmdText, cmdParams);
            if (pstmt == null)
            {
                return null;
            }
            try
            {
                return pstmt.executeQuery();
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
                close(pstmt);
            }
            return null;
        }
        public static Object buildScalar(ResultSet rs)
        {
            if (rs == null)
            {
                return null;
            }
            Object obj = null;
            try
            {
                if (rs.next())
                {
                    obj = rs.getObject(1);
                }
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
            }
            return obj;
        }

      
     
    
        /**
         * 获取一个具有更新功能的数据模型 如果只要读取数据,就不要用它了
         * @param cmdText 能返回一个数据集的查询SQL 语句
         * @return 表格数据模型
         *
         *
         * DataSet 没有找到在哪个包中,因为暂时用不到所以省略此方法
        
        public static DataSet getDataSet(String cmdText)
        {
            Statement stmt = getStatement();
            DataSet dbc = new DataSet();
            if (stmt == null)
            {
                dbc.code = -2;
                return dbc;
            }
            try
            {
                // 查询语句
                dbc.rs = stmt.executeQuery(cmdText);
                dbc.model = buildTableModel(dbc.rs);
                dbc.code = dbc.model.getRowCount();
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
                dbc.code = -1;
            }
            return dbc;
        }
        */
       
        /**
         * 获取一个具有更新功能的数据模型 如果只要读取数据,就不要用它了
         * @param conn 数据库连接
         * @param cmdText 能返回一个数据集的查询SQL 语句
         * @return 表格数据模型
         *
         * 同上一个方法
        
        public static DataSet getDataSet(Connection conn, String cmdText)
        {
            Statement stmt = getStatement(conn);
            DataSet dbc = new DataSet();
            if (stmt == null)
            {
                dbc.code = -2;
                return dbc;
            }
            try
            {
                // 查询语句
                dbc.rs = stmt.executeQuery(cmdText);
                dbc.model = buildTableModel(dbc.rs);
                dbc.code = dbc.model.getRowCount();
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
                dbc.code = -1;
            }
            return dbc;
        }
        */
        /**
         * 获取一个具有更新功能的数据模型 如果只要读取数据,就不要用它了
         * @param cmdText 需要 ? 参数的 SQL 语句
         * @param cmdParams SQL 语句的参数表
         * @return 表格数据模型
         *
         *
         * 同上一个方法     *
         *
       
        public static DataSet getDataSet(String cmdText, Object... cmdParams)
        {
            PreparedStatement pstmt = getPreparedStatement(cmdText, cmdParams);
            DataSet dbc = new DataSet();
            if (pstmt == null)
            {
                dbc.code = -2;
                return dbc;
            }
            try
            {
                // 查询语句
                dbc.rs = pstmt.executeQuery();
                dbc.model = buildTableModel(dbc.rs);
                dbc.code = dbc.model.getRowCount();
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
                dbc.code = -1;
            }
            return dbc;
        }
       
         */
        /**
         * 获取一个具有更新功能的数据模型 如果只要读取数据,就不要用它了
         * @param conn 数据库连接
         * @param cmdText 需要 ? 参数的 SQL 语句
         * @param cmdParams SQL 语句的参数表
         * @return 表格数据模型
         *
         *
         * 同上
         *
        
        public static DataSet getDataSet(Connection conn, String cmdText, Object... cmdParams)
        {
            PreparedStatement pstmt = getPreparedStatement(conn, cmdText, cmdParams);
            DataSet dbc = new DataSet();
            if (pstmt == null)
            {
                dbc.code = -2;
                return dbc;
            }
            try
            {
                // 查询语句
                dbc.rs = pstmt.executeQuery();
                dbc.model = buildTableModel(dbc.rs);
                dbc.code = dbc.model.getRowCount();
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
                dbc.code = -1;
            }
            return dbc;
        }
        */
        private static void close(Object obj)
        {
            if (obj == null)
            {
                return;
            }
            try
            {
                if (obj instanceof Statement)
                {
                    ((Statement) obj).close();
                } else if (obj instanceof PreparedStatement)
                {
                    ((PreparedStatement) obj).close();
                } else if (obj instanceof ResultSet)
                {
                    ((ResultSet) obj).close();
                } else if (obj instanceof Connection)
                {
                    ((Connection) obj).close();
                }
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        private static void closeEx(Object obj)
        {
            if (obj == null)
            {
                return;
            }
            try
            {
                if (obj instanceof Statement)
                {
                    ((Statement) obj).close();
                } else if (obj instanceof PreparedStatement)
                {
                    ((PreparedStatement) obj).close();
                } else if (obj instanceof ResultSet)
                {
                    ((ResultSet) obj).getStatement().close();
                } else if (obj instanceof Connection)
                {
                    ((Connection) obj).close();
                }
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        private static void closeConnection(Object obj)
        {
            if (obj == null)
            {
                return;
            }
            try
            {
                if (obj instanceof Statement)
                {
                    ((Statement) obj).getConnection().close();
                } else if (obj instanceof PreparedStatement)
                {
                    ((PreparedStatement) obj).getConnection().close();
                } else if (obj instanceof ResultSet)
                {
                    ((ResultSet) obj).getStatement().getConnection().close();
                } else if (obj instanceof Connection)
                {
                    ((Connection) obj).close();
                }
            } catch (SQLException ex)
            {
                Logger.getLogger(SQLHelper.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

http://www.linuxso.com/linuxbiancheng/12510.html
分享到:
评论

相关推荐

    DbUtils.java SqlHelper.java

    在Java Web开发中,`DbUtils` 和 `SqlHelper` 是常见的数据库操作工具类,尤其在基于MVC(Model-View-Controller)架构的应用中,它们可以极大地简化数据访问层(DAO, Data Access Object)的代码,提高开发效率。...

    SQLHelper类(Java版)

    提供的`SQLHelper(Java版)使用说明文档.doc`应包含详细的使用示例、方法说明以及常见问题解答,对于快速上手和解决实际问题非常有帮助。 综上所述,`SQLHelper`类在Java开发中是一个实用的工具,它通过简化数据库...

    java连接oracle数据库———sqlHelper类

    本篇文章将深入探讨如何创建并使用`sqlHelper`类,以及它在Java与Oracle数据库集成中的关键作用。 首先,`sqlHelper`类通常包含以下几个核心功能: 1. **数据库连接**:使用JDBC(Java Database Connectivity)API...

    sqlhelper:基于JavaSQL工具(方言,分页,DDL转储,UrlParser,SqlStatementParser,WallFilter和BatchExecutor)。 易于集成到任何ORM框架中

    sqlhelper 基于JavaSQL工具(方言,分页, DDL转储, UrlParser , SqlStatementParser , WallFilter , BatchExecutor )模组模组sqlhelper版本JDK 框架版本描述sqlhelper-方言1.0+ 1.6+ 核心(绝大部分功能都离不...

    韩顺平SQLHelper类

    在Java编程领域,SQLHelper类通常是一个用于简化数据库操作的工具类,它封装了JDBC(Java Database Connectivity)的基本步骤,使开发者能够更方便、高效地执行SQL语句。在这个特定的“韩顺平SQLHelper类”中,我们...

    SQLhelper文件

    SQLHelper是一个在编程中常用的工具类,特别是在Java开发中,用于简化数据库操作。它提供了对SQL语句的封装,使得开发者无需直接与JDBC API打交道,可以更方便、高效地执行常见的数据库操作,如增、删、改、查。在这...

    JAVA连接数据库封装(mysql)

    在Java编程中,连接数据库是常见的任务,而MySQL作为一个广泛使用的开源关系型数据库管理系统,是很多开发者首选的数据存储解决方案。本篇文章将详细讲解如何使用Java的JDBC(Java Database Connectivity)API来连接...

    java使用JDBC和ODBC连接oracle数据库

    例如,`sqlhelper`可能是一个用于帮助执行SQL的工具类或库,它可以封装JDBC的常用操作,使代码更加简洁。 总之,Java通过JDBC直接与Oracle数据库交互更为推荐,尤其是在大型项目中。而ODBC在小型项目或已有ODBC数据...

    java实现方便、快捷的图片编辑

    10. **数据库交互**:在示例代码中提到了 `SqlHelper` 类,这可能是用来与数据库进行交互的工具类,例如存储和查找图片的信息。 11. **工具类**:`Constants` 和 `Tools` 类可能包含了通用的常量和辅助方法,用于...

    ideaSqlHelper

    用法 ... $ sql = "SELECT \n" . " HELLO WORLD \n" . "FROM \n" " DUAL\n" ; ... 插入字符串作为 Oracle EXECUTE IMMEDIATE 语句 ... 下载ideaHelpfulPlugins.jar 在 phpStorm Settings -> Plugins -> Install plugin ...

    DFSqlHelper:轻量级数据库辅助库

    DFSqlHelper是一个专门为Java开发人员设计的轻量级数据库辅助库。它旨在简化数据库操作,提高开发效率,同时保持代码的简洁性和可维护性。在Java应用中,尤其是在Web开发中,数据库操作是必不可少的部分,而...

    oracle第3讲笔记 (2).pdf

    确保Oracle的监听服务已经启动,然后可以通过创建SQLHelper工具类和配置数据库连接信息来执行CRUD操作。 JDBC-ODBC桥连接则适用于本地开发环境,它通过ODBC(Open Database Connectivity)作为中间桥梁来连接Java...

    android GreenDao,LiteOrm的使用

    3. **创建SqlHelper**:在应用启动时,创建一个SqlHelper实例,设置数据库版本、名称等信息。 4. **数据库操作**:使用LiteOrm提供的`save()`, `load()`, `update()`, `delete()`等方法进行数据操作。同时, ...

    传智播客C#/.net MVC 电商项目中用到的各种企业级Helper

    1. **SqlHelper.cs**:这是一个数据库操作助手类,通常用于简化对SQL的执行。它可能包含了执行SQL查询、存储过程的方法,如ExecuteNonQuery(执行非查询SQL)、ExecuteScalar(获取单个值)和ExecuteReader(读取...

    数据库类A

    这通常涉及到Java反射机制,通过`resultSetToArrayList(ResultSet rs, Class<T> clazz)`这样的方法,可以自动将结果集中的每一行映射到指定类型的对象实例。 此外,异常处理也是数据库类A必不可少的一部分。为了...

    SmarkFramwork:Smart Framwork框架为黄勇在开源中国发布的Jave Web框架实现 IOC、AOP、ORM轻量级解决方案。针对Smart Framwork中ORM框架设计比较简单,采用类似Mybatis重新改写Smart Framwork中的ORM部分

    SmarkFramwork Smart Framwork框架为黄勇在开源中国发布的Jave Web...然后,借助 SqlHelper 来生成具体的 SQL 语句。 最后,通过 DatabaseHelper 执行 SQL 语句并返回相应的结果。 这样做SQL语句不好维护,无法写出复杂

    基于Android OS校园信息一体化平台OA系统客户端设计.pdf

    该设计利用Android操作系统,结合Web Service技术和Java+Android架构,构建了一种B/S(Browser/Server)与C/S(Client/Server)相结合的混合模式移动OA系统。 【系统体系结构】系统采用了混合模式,服务器端利用...

    微软宠物商店代码分析

    PetShop项目最初是为了比较.NET与Java平台的性能、结构及生产力而诞生的,随着时间的发展,它逐渐成为.NET开发者的参考典范之一。 PetShop4相较于前一代产品,在用户体验、代码质量和架构设计等方面均有显著提升。...

    jquery+json实现分页效果

    - 数据库操作辅助类,如SqlHelper.cs,用于简化数据库操作。 - 服务端处理程序,如PagedService.ashx,用于处理分页逻辑并返回JSON格式数据。 - 客户端调用页面,如WSXFY.htm,用于通过jQuery发送AJAX请求并渲染数据...

Global site tag (gtag.js) - Google Analytics