`
hcmfys
  • 浏览: 357745 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

我的jdbc帮助类(SqlHelper)

    博客分类:
  • java
阅读更多
package com.jxr.database;

import java.sql.*;
import java.io.FileInputStream;
import java.util.Calendar;

/**
 * User: hcmfys@163.com
 * Date: 2009-11-20
 * Time: 20:03:45
 * To change
 */
public abstract class SqlHelper {

    private Connection con;
    private Statement stmt;
    private DataType type;


    public SqlHelper(String connectionString, DataType type, String userName, String passWord) throws SQLException,
            ClassNotFoundException, IllegalAccessException, InstantiationException {
        setDataType(type);
        switch (getDataType()) {
            case Acess:
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
                break;
            case MySql:
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                break;
            case SQL:
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
                break;
            case Orace:
                Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
                break;
        }
        con = DriverManager.getConnection(connectionString, userName, passWord);
    }

    public SqlHelper(String connectionString, DataType type) throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException {
        this(connectionString, type, "", "");
    }

    public SqlHelper(String connectionString) throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException {
        this(connectionString, DataType.Acess, "", "");
    }


    protected SqlHelper(Connection con) {
        this.con = con;
    }

    protected ResultSet ExecuteSql(String sql) throws SQLException {
        stmt = GetStatement();
        return stmt.executeQuery(sql);
    }

    protected Statement GetStatement() throws SQLException {
        return con.createStatement(/*ResultSet.TYPE_SCROLL_INSENSITIVE,
                ResultSet.CONCUR_UPDATABLE */);
    }

    /*
    * 执行存储过程
    */
    public ResultSet ExecuteProcedure(String sql, SqlParamater... pars) throws SQLException {
        CallableStatement stmt = con.prepareCall(sql);
        for (SqlParamater sp : pars) {
            switch (sp.getType()) {
                case INTEGER: {
                    switch (sp.getInputType()) {
                        case OutPut:
                            stmt.registerOutParameter(sp.getName(), Types.INTEGER);
                            break;
                        default:
                            stmt.setInt(sp.getName(), Integer.parseInt(sp.getValue().toString()));
                            break;
                    }
                    break;
                }
                case VARCHAR: {
                    switch (sp.getInputType()) {
                        case OutPut:
                            stmt.registerOutParameter(sp.getName(), Types.VARCHAR);
                            break;
                        default:
                            stmt.setString(sp.getName(), String.valueOf(sp.getValue()));
                            break;
                    }
                    break;
                }
                case BOOLEAN: {
                    switch (sp.getInputType()) {
                        case OutPut:
                            stmt.registerOutParameter(sp.getName(), Types.BOOLEAN);
                            break;
                        default:
                            stmt.setBoolean(sp.getName(), Boolean.valueOf(sp.getValue().toString()));
                            break;
                    }
                    break;
                }
                case Float: {
                    switch (sp.getInputType()) {
                        case OutPut:
                            stmt.registerOutParameter(sp.getName(), Types.FLOAT);
                            break;
                        default:
                            stmt.setFloat(sp.getName(), Float.valueOf(sp.getValue().toString()));
                            break;
                    }
                    break;
                }
                case DOUBLE: {
                    switch (sp.getInputType()) {
                        case OutPut:
                            stmt.registerOutParameter(sp.getName(), Types.DOUBLE);
                            break;
                        default:
                            stmt.setDouble(sp.getName(), Double.valueOf(sp.getValue().toString()));
                            break;
                    }
                    break;
                }
                case BLOB: {
                    FileInputStream fin = (FileInputStream) sp.getValue();
                    stmt.setBlob(sp.getName(), fin, sp.getLength());
                    break;
                }

                case BIT: {
                    switch (sp.getInputType()) {
                        case OutPut:
                            stmt.registerOutParameter(sp.getName(), Types.BIT);
                            break;
                        default:
                            stmt.setByte(sp.getName(), Byte.valueOf(sp.getValue().toString()));
                            break;
                    }
                    break;
                }
                case DATE: {
                    switch (sp.getInputType()) {
                        case OutPut:
                            stmt.registerOutParameter(sp.getName(), Types.DATE);
                            break;
                        default:
                            stmt.setDate(sp.getName(), Date.valueOf(sp.getValue().toString()));
                            break;
                    }
                    break;
                }
                case BINARY:
                    break;
                case CLOB:
                    break;
                case DECIMAL:
                    break;
                case OutPut:
                    break;
                case SQLXML:
                    break;
                case TIME:
                    break;
                case TINYINT:
                    break;
                case VARBINARY:
                    break;
            }
        }
        return stmt.executeQuery();
    }

    protected boolean ExecuteQuery(String sql) throws SQLException {

        return GetStatement().execute(sql);
    }

    private void setDataType(DataType type) {
        this.type = type;
    }

    private DataType getDataType() {
        if (this.type == null)
            return DataType.Acess;
        else
            return this.type;
    }

    public enum CommandType {
        Transport,
        Text
    }

    public enum DataType {
        SQL,
        Acess,
        MySql,
        Orace,
        IBM_DB2
    }

    /*
    * 必须调用释放资源
    */
    protected void dispose() {
        if (stmt != null)
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        if (con != null)
            try {
                if (!con.isClosed())
                    try {
                        con.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
            } catch (SQLException e) {
                e.printStackTrace();
            }
    }


}
分享到:
评论

相关推荐

    韩顺平SQLHelper类

    总的来说,"韩顺平SQLHelper类"是一个针对Oracle 10g数据库的便捷工具,它封装了JDBC操作,帮助开发者快速进行数据库操作。虽然现代开发中可能有更多先进的选择,但在学习和理解JDBC原理,或者在不使用ORM框架的小型...

    SQLHelper类(Java版)

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

    SQLhelper文件

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

    DbUtils.java SqlHelper.java

    总的来说,`DbUtils` 和 `SqlHelper` 是Java Web开发中非常实用的工具,它们帮助开发者专注于业务逻辑,而不是底层的数据库操作,提高了开发效率,降低了出错的可能性。理解并熟练运用这两个工具,对于提升Java Web...

    dao工具类(sqlhelper)

    通过以上介绍,我们可以看到`SqlHelper`工具类为初学者提供了一个良好的学习资源,帮助他们理解如何在Java中使用DAO模式进行数据库操作。此外,该工具类也具备一定的实用性,可以作为项目中的基础组件,方便快速地...

    JAVA的SQL帮助类,帮助快速使用SQL语句更新,删除,查询数据

    本篇文章将详细探讨Java中的SQL帮助类以及如何利用JDBC(Java Database Connectivity)进行数据库交互。 首先,JDBC是Java平台的标准API,它允许Java程序与各种数据库进行通信。通过JDBC,开发者可以创建数据库连接...

    韩顺平 sqlHelper 工具包

    SqlHelper.java 是一个 SQL 帮助类,用于执行 SQL 语句。 2. 配置文件 工具包使用一个配置文件 dbInfo.properties,用于存储数据库连接信息。该文件包含四个参数:url、driver、username 和 password。这四个参数...

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

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

    sqlhelper.java

    数据库连接帮助你快速开发ublic class Sqlhelper { private static Connection con=null; private static PreparedStatement ps=null; private static ResultSet rs=null; private static String user=""; ...

    增删改查方法和helper类

    在Java编程中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的标准API。它提供了连接、查询、更新数据库的能力。...在实际项目中,`Helper类`可以帮助我们编写更加整洁、易于维护的代码。

    java连接oracle工具类

    在SQLHelper类中,定义了一个close方法用于统一关闭资源,并且在finally块中调用close方法,确保无论是否发生异常,资源都能被正确关闭。 5. JDBC驱动和连接字符串:在建立数据库连接时,需要指定JDBC驱动和数据库...

    数据库操作类

    这里我们讨论的"数据库操作类"主要包括三个关键文件:`SqlHelper.cs`、`AccessHelper.cs`和`ConfigHelper.cs`。这三个类在C#编程中通常用于协助开发者高效、安全地与各种数据库进行交互。 1. **SqlHelper.cs**: `...

    JAVA连接数据库封装(mysql)

    在Java编程中,连接数据库是常见的任务,而MySQL作为一个广泛使用的...`DBUtil`类的封装使得数据库连接的管理和操作更加便捷,而遵循JavaBean规范的实体类则帮助我们将数据库记录映射到Java对象,简化了数据处理流程。

    数据库类A

    例如,开发者可以创建一个SqlHelper实例,然后调用其方法执行SQL,无需直接与JDBC接口打交道,降低了出错的可能性。 总结起来,数据库类A是一个实用的工具,它抽象了数据库操作的复杂性,提供了一套简洁的API供...

    学生信息管理系统,简化(学习用)

    5. `SqlHelper.java`:这是一个SQL辅助类,可能包含了处理数据库操作的通用方法,如连接数据库、执行SQL语句、处理结果集等。这个类是整个系统与数据库交互的核心,它抽象了数据库操作,使得其他组件可以更专注于...

    职工管理系统源代码(Java+Sql server)

    "SqlHelper.java"是数据库操作工具类,它封装了JDBC(Java Database Connectivity)接口,简化了数据库连接、查询、插入、更新和删除等操作。开发者无需直接编写繁琐的SQL语句,而是通过调用SqlHelper提供的方法,就...

    java学生成绩管理系统界面设计

    Java提供了JDBC(Java Database Connectivity)API,可以连接到各种关系型数据库,如MySQL、Oracle等。你需要学习如何创建表、执行SQL语句以及处理结果集。 6. **数据访问对象(DAO)模式**:为了分离业务逻辑和...

    springboot+mybatis+sqlserver

    MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。在这个...

Global site tag (gtag.js) - Google Analytics