类 SQLHelper
- java.lang.Object
-
- team.bangbang.common.sql.SQLHelper
-
public final class SQLHelper extends java.lang.Object配合team.bangbang.common.data.RecordData使用实现数据库的增删改功能,并且能够
实现单条记录的查询和多条记录的查询,多条记录查询的时候能够根据参数选择是否
进行分页处理,查询结果自动按照字段名和字段值的对应关系保存到
team.bangbang.common.data.RecordData实例中。
此外,本类也提供了一个常规的JDBC操作,即直接执行SQL语句实现增删改功能。- 版本:
- 1.0 2009-05-31
- 作者:
- 帮帮组
-
-
方法概要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 说明 voidclose()关闭数据库连接和存储过程调用句柄voidcommit()执行commit操作,仅当commit模式为false时有效。java.sql.Connectionconnection()intdelete(RecordData ds)根据数据容器中包含的指定信息删除记录。intexecuteUpdate(java.lang.String strSql)执行SQL语句,用于记录的增删改java.lang.StringformatDateField(java.lang.String fieldName)使用日期函数将DATE、DATETIME类型的字段进行格式化,格式化为yyyy-MM-dd的字符串java.lang.StringgetAlias()booleangetAutoCommit()获得commit模式java.lang.StringgetDatabaseName()获得数据库产品的名称,可能的结果有:Oracle、MySQLstatic java.lang.StringgetDBDateValue(java.lang.String dbName, java.util.Date dt)得到数据库的日期类型数据值java.lang.StringgetDBDateValue(java.util.Date dt)得到数据库的日期类型数据值static java.lang.StringgetDBTimeValue(java.lang.String dbName, java.util.Date dt)得到数据库的日期时间类型数据值java.lang.StringgetDBTimeValue(java.util.Date dt)得到数据库的日期时间类型数据值intgetRecordCount(java.lang.String strSql)通过构造SELECT COUNT(FirstField) FROM ...intinsert(RecordData ds)根据数据中的数据向数据库插入一条记录。intinsert(RecordData ds, boolean autoPK)根据数据中的数据向数据库插入一条记录。voidqueryMultipleData(java.lang.String strSql, RecordData data, boolean blFilter)执行SELECT查询操作,并把字段名和对应的查询结果自动匹配保存到数据容器中
查询结果可以为多条记录。voidquerySingleData(java.lang.String strSql, RecordData data)执行SELECT查询操作,并把字段名和对应的查询结果自动匹配保存到数据容器中 。voidrollback()数据回滚,仅当commit模式为false时有效voidsetAutoCommit(boolean autoCommit)设置commit模式intupdate(RecordData ds)根据数据容器中包含的指定信息修改一条记录。
-
-
-
构造器详细资料
-
SQLHelper
public SQLHelper()
使用team.bangbang.common.database.DBManager提供的默认数据库连接
构造数据库操作实例
-
SQLHelper
public SQLHelper(java.lang.String alias)
使用team.bangbang.common.database.DBManager提供的指定数据库连接
构造数据库操作实例。
数据库通过别名进行指定。- 参数:
alias- 数据库别名,参见config.properties文件中的数据库配置
-
SQLHelper
public SQLHelper(java.sql.Connection conn)
使用指定的数据库连接构造数据库操作器- 参数:
conn- 数据库连接
-
-
方法详细资料
-
getAlias
public java.lang.String getAlias()
- 返回:
- 当前数据库连接在config.properties中配置的数据库别名
-
connection
public java.sql.Connection connection()
- 返回:
- 数据库连接
-
getDatabaseName
public java.lang.String getDatabaseName()
获得数据库产品的名称,可能的结果有:Oracle、MySQL- 返回:
- 数据库名称
-
setAutoCommit
public void setAutoCommit(boolean autoCommit) throws java.sql.SQLException设置commit模式- 参数:
autoCommit- commit模式- 抛出:
java.sql.SQLException- SQL异常
-
getAutoCommit
public boolean getAutoCommit() throws java.sql.SQLException获得commit模式- 返回:
- commit模式
- 抛出:
java.sql.SQLException- SQL异常
-
commit
public void commit() throws java.sql.SQLException执行commit操作,仅当commit模式为false时有效。- 抛出:
java.sql.SQLException- SQL异常
-
rollback
public void rollback() throws java.sql.SQLException数据回滚,仅当commit模式为false时有效- 抛出:
java.sql.SQLException- SQL异常
-
close
public void close() throws java.sql.SQLException关闭数据库连接和存储过程调用句柄- 抛出:
java.sql.SQLException- SQL异常
-
querySingleData
public void querySingleData(java.lang.String strSql, RecordData data) throws java.sql.SQLException执行SELECT查询操作,并把字段名和对应的查询结果自动匹配保存到数据容器中 。
查询结果仅保存一条记录,如果查询结果为多条记录,则保存第一条记录。- 参数:
strSql- SELECT语句data- 数据容器- 抛出:
java.sql.SQLException- SQL异常
-
queryMultipleData
public void queryMultipleData(java.lang.String strSql, RecordData data, boolean blFilter) throws java.sql.SQLException执行SELECT查询操作,并把字段名和对应的查询结果自动匹配保存到数据容器中
查询结果可以为多条记录。同时保存到数据容器中的还有记录的总条数。
本方法中分页操作使用了JDBC通用操作,通用性强,但性能较差。如果需要针对
具体数据库提供高性能实现,则需要对在此处修改分页相关代码。- 参数:
strSql- SELECT语句data- 数据容器blFilter- 是否需要分页 true: 需要分页 false: 不需要分页- 抛出:
java.sql.SQLException- SQL异常
-
getRecordCount
public int getRecordCount(java.lang.String strSql) throws java.sql.SQLException通过构造SELECT COUNT(FirstField) FROM ... 语句得到指定SQL语句
查询产生的记录条数- 参数:
strSql- 指定SQL语句- 返回:
- 记录总条数
- 抛出:
java.sql.SQLException- SQL异常
-
delete
public int delete(RecordData ds) throws java.sql.SQLException
根据数据容器中包含的指定信息删除记录。 数据容器中必须提供的信息有,
数据库表名和条件限定数据。 本方法根据数据容器的数据进行SQL条件拼合,
而不使用数据容器的subWhere限定条件。因此本方法 仅适用于单表操作。- 参数:
ds- 数据容器- 返回:
- 删除结果 -1: 删除动作没有影响到任何记录
其它:删除掉的记录条数 - 抛出:
java.sql.SQLException- SQL异常
-
insert
public int insert(RecordData ds) throws java.sql.SQLException
根据数据中的数据向数据库插入一条记录。 执行本方法之前,必须确定已经通过
RecordData.setSingleData(Table_Field_Name, Field_Value)向数据
容器中添加相关字段的值。
本方法会自动调用SQLHelper.getSQLValue()方法来拼接SQL语句,
然后执行数据库的插入操作。所有在数据容器中不存在的字段-字段值,
都将会在执行插入过程中设置为null或者默认值。- 参数:
ds- 数据容器- 返回:
- -1: 插入失败
1: 插入成功 - 抛出:
java.sql.SQLException- SQL异常
-
insert
public int insert(RecordData ds, boolean autoPK) throws java.sql.SQLException
根据数据中的数据向数据库插入一条记录。 执行本方法之前,必须确定已经通过
RecordData.setSingleData(Table_Field_Name, Field_Value)向数据
容器中添加相关 字段的值。本方法会自动调用SQLHelper.getSQLValue()
方法来拼接SQL语句,然后执行数据库的插入操作。
所有在数据容器中不存在的字段-字段值, 都将会在执行插入过程中设置为null
或者默认值。- 参数:
ds- 数据容器autoPK- 自动产生关键字段的值- 返回:
- -1: 插入失败 1: 插入成功
- 抛出:
java.sql.SQLException- SQL异常
-
update
public int update(RecordData ds) throws java.sql.SQLException
根据数据容器中包含的指定信息修改一条记录。数据容器中必须提供的信息有,
数据库表名和条件限定语句 执行本方法之前,必须确定已经通过
RecordData.setSingleData(Table_Field_Name, Field_Value)向 数据容
器中添加相关 字段的值。本方法会自动调用SQLHelper.getSQLValue()
方法来拼接SQL语句,然后执行 数据库的修改操作。
所有在数据容器中不存在的字段-字段值,都将会在执行修改过程中维持不变。- 参数:
ds- 数据容器- 返回:
- -1: 修改失败 1: 修改成功
- 抛出:
java.sql.SQLException- SQL异常
-
executeUpdate
public int executeUpdate(java.lang.String strSql) throws java.sql.SQLException执行SQL语句,用于记录的增删改- 参数:
strSql- SQL语句- 返回:
- 影响到的记录条数,如果返回值为-1,则没有任何记录受到影响
- 抛出:
java.sql.SQLException- SQL异常
-
getDBDateValue
public java.lang.String getDBDateValue(java.util.Date dt)
得到数据库的日期类型数据值- 参数:
dt- 日期- 返回:
- 日期类型数据值
-
getDBDateValue
public static java.lang.String getDBDateValue(java.lang.String dbName, java.util.Date dt)得到数据库的日期类型数据值- 参数:
dbName- 数据库名称dt- 日期- 返回:
- 日期类型数据值
-
getDBTimeValue
public java.lang.String getDBTimeValue(java.util.Date dt)
得到数据库的日期时间类型数据值- 参数:
dt- 日期时间- 返回:
- 日期时间类型数据值
-
getDBTimeValue
public static java.lang.String getDBTimeValue(java.lang.String dbName, java.util.Date dt)得到数据库的日期时间类型数据值- 参数:
dbName- 数据库名称dt- 日期时间- 返回:
- 日期时间类型数据值
-
formatDateField
public java.lang.String formatDateField(java.lang.String fieldName)
使用日期函数将DATE、DATETIME类型的字段进行格式化,格式化为yyyy-MM-dd的字符串- 参数:
fieldName- 字段名称- 返回:
- 字段格式化函数
-
-