com.github.drinkjava2.jsqlbox
Class SqlBoxContext

java.lang.Object
  extended by org.apache.commons.dbutils.AbstractQueryRunner
      extended by org.apache.commons.dbutils.QueryRunner
          extended by com.github.drinkjava2.jdbpro.ImprovedQueryRunner
              extended by com.github.drinkjava2.jdbpro.DbPro
                  extended by com.github.drinkjava2.jsqlbox.SqlBoxContext
All Implemented Interfaces:
NormalJdbcTool

public class SqlBoxContext
extends DbPro

SqlBoxContext is extended from DbPro, DbPro is extended from QueryRunner, by this way SqlBoxContext have all JDBC methods of QueryRunner and DbPro.
As a ORM tool, SqlBoxContext focus on ORM methods like entity bean's CRUD methods and EntityNet methods.

Since:
1.0.0
Author:
Yong Zhu

Field Summary
protected  Dialect dialect
          Dialect of current SqlBoxContext, optional
protected static Dialect globalNextDialect
           
protected static ShardingTool[] globalNextShardingTools
           
protected static SnowflakeCreator globalNextSnowflakeCreator
           
protected static Object[] globalNextSsModels
           
protected static SqlBoxContext globalSqlBoxContext
           
static String NO_GLOBAL_SQLBOXCONTEXT_FOUND
           
protected  ShardingTool[] shardingTools
           
protected  SnowflakeCreator snowflakeCreator
           
protected  TableModel[] tailModels
           
 
Fields inherited from class com.github.drinkjava2.jdbpro.ImprovedQueryRunner
allowShowSQL, batchSize, connectionManager, globalNextAllowShowSql, globalNextBatchSize, globalNextConnectionManager, globalNextLogger, globalNextMasterSlaveOption, globalNextSqlHandlers, globalNextTemplateEngine, logger, masters, masterSlaveOption, name, slaves, sqlHandlers, sqlTemplateEngine
 
Fields inherited from class org.apache.commons.dbutils.AbstractQueryRunner
ds
 
Constructor Summary
SqlBoxContext()
           
SqlBoxContext(DataSource ds)
           
 
Method Summary
 EntityNet autoNet(Class<?>... entityClass)
          Build a entityNet, only give both between start class and end classes
protected  boolean dealOneSqlItem(boolean iXxxStyle, PreparedSQL ps, Object item)
          Override DbPro's dealOneSqlItem method to deal SqlBoxContext's SqlItem
protected  void dialectShortcutMethods__________________________()
           
 int eCountAll(Class<?> entityClass, Object... optionItems)
          Return how many records for current entity class
 void eDelete(Object entity, Object... optionItems)
          Delete entity in database, if not 1 row deleted, throw SqlBoxException
 void eDeleteById(Class<?> entityClass, Object id, Object... optionItems)
          Delete entity by given id, if not 1 row deleted, throw SqlBoxException
 int eDeleteByIdTry(Class<?> entityClass, Object id, Object... optionItems)
          Delete entity by given id, return how many rows deleted
 int eDeleteTry(Object entity, Object... optionItems)
          Delete entity in database, return how many rows affected
 boolean eExist(Object entity, Object... optionItems)
          Check if entity exist by its id
 boolean eExistById(Class<?> entityClass, Object id, Object... optionItems)
          Check if entity exist by given id
<T> List<T>
eFindAll(Class<T> entityClass, Object... optionItems)
          Find all entity of given entity class as List, if not found, return empty list
<T> List<T>
eFindBySample(Object sampleBean, Object... optionItems)
          Find entity according a sample bean, ignore null fields, if not found, return empty list
<T> List<T>
eFindBySQL(Object... optionItems)
          Find entity according SQL, if not found, return empty list
<E> List<E>
eFindRelatedList(Object entityOrIterable, Object... sqlItems)
          Find related entity list by given entity or Iterable
<E> Map<Object,E>
eFindRelatedMap(Object entity, Object... sqlItems)
          Find related entity map(key is entityID) by given entity or Iterable
<E> E
eFindRelatedOne(Object entity, Object... sqlItems)
          Find one related entity by given entity
<E> Set<E>
eFindRelatedSet(Object entity, Object... sqlItems)
          Find related entity set by given entity or Iterable
<T> T
eInsert(T entity, Object... optionItems)
          Insert entity to database, if not 1 row updated, throw SqlBoxException
<T> T
eLoad(T entity, Object... optionItems)
          Load entity according its id, if not 1 row round, throw SqlBoxException
<T> T
eLoadById(Class<T> entityClass, Object entityId, Object... optionItems)
          Load entity by given id, if not 1 row found, throw SqlBoxException
<T> T
eLoadByIdTry(Class<T> entityClass, Object entityId, Object... optionItems)
          Load entity by given id, if not found, return null
<T> T
eLoadBySQL(Object... optionItems)
          Load one entity according SQL, if not found, return null
 int eLoadTry(Object entity, Object... optionItems)
          Load entity according its id, return how many rows found
 void ensureTailModelLoaded()
          If dbModels not loaded, loaded from database
protected  void entityCrudMethods______________________________()
           
<T> T
eUpdate(Object entity, Object... optionItems)
          Update entity in database, if not 1 row updated, throw SqlBoxException
 int eUpdateTry(Object entity, Object... optionItems)
          Update entity in database, return how many rows affected
static SqlBoxContext gctx()
          Shortcut method equal to getGlobalSqlBoxContext()
 Dialect getDialect()
           
static Dialect getGlobalNextDialect()
           
static ShardingTool[] getGlobalNextShardingTools()
           
static SnowflakeCreator getGlobalNextSnowflakeCreator()
           
static SqlBoxContext getGlobalSqlBoxContext()
          Get the global static SqlBoxContext instance
 SqlBoxContext getShardedDB(Object entityOrClass, Object... shardvalues)
          Get the sharded DB(=SqlBoxContext) instance by given shard values
 String getShardedTB(Object entityOrClass, Object... shardvalues)
          Get the sharded table name by given shard values
 ShardingTool[] getShardingTools()
           
 SnowflakeCreator getSnowflakeCreator()
           
 TableModel[] getTailModels()
           
protected  void getteSetters__________________________()
           
protected  DbPro handleShardDatabase(PreparedSQL predSQL, SqlItem item)
           
protected  String handleShardTable(PreparedSQL predSQL, SqlItem item)
           
<T> List<T>
iQueryForEntityList(Object... optionItems)
          Use i style to query for an entity list
protected  void miscMethods______________________________()
           
 String pagin(int pageNumber, int pageSize, String sql)
          Shortcut call to dialect.pagin method
 String paginAndTrans(int pageNumber, int pageSize, String sql)
          Shortcut call to dialect.paginAndTrans method
<T> List<T>
pQueryForEntityList(Object... optionItems)
          Use p style to query for an entity list
 void reloadTailModels()
          Manually call this method to reload tail TableModels when database structure be changed by DDL command
static void resetGlobalVariants()
          Reset all global SqlBox variants to default values
 void setDialect(Dialect dialect)
          This method is not thread safe, suggest only use at program starting
static void setGlobalNextDialect(Dialect dialect)
           
static void setGlobalNextShardingTools(ShardingTool[] shardingTools)
           
static void setGlobalNextSnowflakeCreator(SnowflakeCreator snowflakeCreator)
           
static void setGlobalSqlBoxContext(SqlBoxContext globalSqlBoxContext)
           
 void setShardingTools(ShardingTool[] shardingTools)
          This method is not thread safe, suggest only use at program starting
 void setSnowflakeCreator(SnowflakeCreator snowflakeCreator)
          This method is not thread safe, suggest only use at program starting
 void setTailModels(TableModel[] tailModels)
           
protected  void staticGlobalNextMethods______________________()
           
 String[] toCreateDDL(Class<?>... entityClasses)
          Shortcut call to dialect.toCreateDDL method
 String[] toCreateDDL(TableModel... tables)
          Shortcut call to dialect.toCreateDDL method
 String[] toDropAndCreateDDL(Class<?>... entityClasses)
          Shortcut call to dialect.toDropAndCreateDDL method
 String[] toDropAndCreateDDL(TableModel... tables)
          Shortcut call to dialect.toDropAndCreateDDL method
 String[] toDropDDL(Class<?>... entityClasses)
          Shortcut call to dialect.toDropDDL method
 String[] toDropDDL(TableModel... tables)
          Shortcut call to dialect.toDropDDL method
<T> List<T>
tQueryForEntityList(Object... optionItems)
          Use t style to query for an entity list
 String trans(String sql)
          Shortcut call to dialect.trans method
 
Methods inherited from class com.github.drinkjava2.jdbpro.DbPro
________iXxxxStyles________, ________nXxxxStyles________, ________prepareMethods________, ________pXxxxStyles________, ________tXxxxStyles________, dealSqlItems, iExecute, iInsert, iPrepare, iQuery, iQueryForLongValue, iQueryForMapList, iQueryForObject, iQueryForString, iUpdate, nExecute, nExecute, nExecute, nExecute, nInsert, nInsert, nQuery, nQuery, nQueryForLongValue, nQueryForLongValue, nQueryForMapList, nQueryForMapList, nQueryForObject, nQueryForObject, nQueryForString, nQueryForString, nUpdate, nUpdate, pExecute, pInsert, pPrepare, pQuery, pQueryForLongValue, pQueryForMapList, pQueryForObject, pQueryForString, pUpdate, quiteExecute, tExecute, tInsert, tQuery, tQueryForLongValue, tQueryForMapList, tQueryForObject, tQueryForString, tUpdate
 
Methods inherited from class com.github.drinkjava2.jdbpro.ImprovedQueryRunner
close, fillStatement, formatParametersForLoggerOutput, formatSqlForLoggerOutput, getAllowShowSQL, getBatchSize, getConnectionManager, getGlobalNextAllowShowSql, getGlobalNextBatchSize, getGlobalNextConnectionManager, getGlobalNextLogger, getGlobalNextMasterSlaveOption, getGlobalNextSqlHandlers, getGlobalNextTemplateEngine, getLogger, getMasters, getMasterSlaveOption, getName, getSlaves, getSqlBatchCache, getSqlHandlers, getSqlTemplateEngine, getThreadLocalSqlHandlers, isBatchEnabled, listListToArray2D, nBatch, nBatch, nBatchBegin, nBatchEnd, nBatchFlush, nInsertBatch, nInsertBatch, objectsListToArray2D, prepareCall, prepareConnection, prepareStatement, queryForLongValue, queryForLongValue, queryForObject, queryForObject, runExecute, runInsert, runPreparedSQL, runQuery, runRealSqlMethod, runUpdate, setAllowShowSQL, setBatchSize, setConnectionManager, setGlobalNextAllowShowSql, setGlobalNextBatchSize, setGlobalNextConnectionManager, setGlobalNextLogger, setGlobalNextMasterSlaveOption, setGlobalNextSqlHandlers, setGlobalNextTemplateEngine, setLogger, setMasters, setMasterSlaveOption, setName, setSlaves, setSqlHandlers, setSqlTemplateEngine, setThreadLocalSqlHandlers, staticGlobalNextMethods_____________________
 
Methods inherited from class org.apache.commons.dbutils.QueryRunner
batch, batch, execute, execute, execute, execute, insert, insert, insert, insert, insertBatch, insertBatch, query, query, query, query, query, query, query, query, update, update, update, update, update, update
 
Methods inherited from class org.apache.commons.dbutils.AbstractQueryRunner
close, close, fillStatementWithBean, fillStatementWithBean, getDataSource, isPmdKnownBroken, prepareStatement, rethrow, wrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

globalNextDialect

protected static Dialect globalNextDialect

globalNextShardingTools

protected static ShardingTool[] globalNextShardingTools

globalNextSnowflakeCreator

protected static SnowflakeCreator globalNextSnowflakeCreator

globalNextSsModels

protected static Object[] globalNextSsModels

NO_GLOBAL_SQLBOXCONTEXT_FOUND

public static final String NO_GLOBAL_SQLBOXCONTEXT_FOUND
See Also:
Constant Field Values

globalSqlBoxContext

protected static SqlBoxContext globalSqlBoxContext

dialect

protected Dialect dialect
Dialect of current SqlBoxContext, optional


shardingTools

protected ShardingTool[] shardingTools

snowflakeCreator

protected SnowflakeCreator snowflakeCreator

tailModels

protected TableModel[] tailModels
Constructor Detail

SqlBoxContext

public SqlBoxContext()

SqlBoxContext

public SqlBoxContext(DataSource ds)
Method Detail

miscMethods______________________________

protected void miscMethods______________________________()

resetGlobalVariants

public static void resetGlobalVariants()
Reset all global SqlBox variants to default values


gctx

public static SqlBoxContext gctx()
Shortcut method equal to getGlobalSqlBoxContext()


getGlobalSqlBoxContext

public static SqlBoxContext getGlobalSqlBoxContext()
Get the global static SqlBoxContext instance


dealOneSqlItem

protected boolean dealOneSqlItem(boolean iXxxStyle,
                                 PreparedSQL ps,
                                 Object item)
Override DbPro's dealOneSqlItem method to deal SqlBoxContext's SqlItem

Overrides:
dealOneSqlItem in class DbPro

getShardedTB

public String getShardedTB(Object entityOrClass,
                           Object... shardvalues)
Get the sharded table name by given shard values


getShardedDB

public SqlBoxContext getShardedDB(Object entityOrClass,
                                  Object... shardvalues)
Get the sharded DB(=SqlBoxContext) instance by given shard values


handleShardTable

protected String handleShardTable(PreparedSQL predSQL,
                                  SqlItem item)

handleShardDatabase

protected DbPro handleShardDatabase(PreparedSQL predSQL,
                                    SqlItem item)

iQueryForEntityList

public <T> List<T> iQueryForEntityList(Object... optionItems)
Use i style to query for an entity list


pQueryForEntityList

public <T> List<T> pQueryForEntityList(Object... optionItems)
Use p style to query for an entity list


tQueryForEntityList

public <T> List<T> tQueryForEntityList(Object... optionItems)
Use t style to query for an entity list


autoNet

public EntityNet autoNet(Class<?>... entityClass)
Build a entityNet, only give both between start class and end classes


ensureTailModelLoaded

public void ensureTailModelLoaded()
If dbModels not loaded, loaded from database


reloadTailModels

public void reloadTailModels()
Manually call this method to reload tail TableModels when database structure be changed by DDL command


entityCrudMethods______________________________

protected void entityCrudMethods______________________________()

eInsert

public <T> T eInsert(T entity,
                     Object... optionItems)
Insert entity to database, if not 1 row updated, throw SqlBoxException


eUpdate

public <T> T eUpdate(Object entity,
                     Object... optionItems)
Update entity in database, if not 1 row updated, throw SqlBoxException


eUpdateTry

public int eUpdateTry(Object entity,
                      Object... optionItems)
Update entity in database, return how many rows affected


eDelete

public void eDelete(Object entity,
                    Object... optionItems)
Delete entity in database, if not 1 row deleted, throw SqlBoxException


eDeleteTry

public int eDeleteTry(Object entity,
                      Object... optionItems)
Delete entity in database, return how many rows affected


eDeleteById

public void eDeleteById(Class<?> entityClass,
                        Object id,
                        Object... optionItems)
Delete entity by given id, if not 1 row deleted, throw SqlBoxException


eDeleteByIdTry

public int eDeleteByIdTry(Class<?> entityClass,
                          Object id,
                          Object... optionItems)
Delete entity by given id, return how many rows deleted


eExist

public boolean eExist(Object entity,
                      Object... optionItems)
Check if entity exist by its id


eExistById

public boolean eExistById(Class<?> entityClass,
                          Object id,
                          Object... optionItems)
Check if entity exist by given id


eCountAll

public int eCountAll(Class<?> entityClass,
                     Object... optionItems)
Return how many records for current entity class


eLoad

public <T> T eLoad(T entity,
                   Object... optionItems)
Load entity according its id, if not 1 row round, throw SqlBoxException


eLoadTry

public int eLoadTry(Object entity,
                    Object... optionItems)
Load entity according its id, return how many rows found


eLoadById

public <T> T eLoadById(Class<T> entityClass,
                       Object entityId,
                       Object... optionItems)
Load entity by given id, if not 1 row found, throw SqlBoxException


eLoadBySQL

public <T> T eLoadBySQL(Object... optionItems)
Load one entity according SQL, if not found, return null


eLoadByIdTry

public <T> T eLoadByIdTry(Class<T> entityClass,
                          Object entityId,
                          Object... optionItems)
Load entity by given id, if not found, return null


eFindAll

public <T> List<T> eFindAll(Class<T> entityClass,
                            Object... optionItems)
Find all entity of given entity class as List, if not found, return empty list


eFindBySQL

public <T> List<T> eFindBySQL(Object... optionItems)
Find entity according SQL, if not found, return empty list


eFindBySample

public <T> List<T> eFindBySample(Object sampleBean,
                                 Object... optionItems)
Find entity according a sample bean, ignore null fields, if not found, return empty list


eFindRelatedOne

public <E> E eFindRelatedOne(Object entity,
                             Object... sqlItems)
Find one related entity by given entity


eFindRelatedList

public <E> List<E> eFindRelatedList(Object entityOrIterable,
                                    Object... sqlItems)
Find related entity list by given entity or Iterable


eFindRelatedSet

public <E> Set<E> eFindRelatedSet(Object entity,
                                  Object... sqlItems)
Find related entity set by given entity or Iterable


eFindRelatedMap

public <E> Map<Object,E> eFindRelatedMap(Object entity,
                                         Object... sqlItems)
Find related entity map(key is entityID) by given entity or Iterable


dialectShortcutMethods__________________________

protected void dialectShortcutMethods__________________________()

pagin

public String pagin(int pageNumber,
                    int pageSize,
                    String sql)
Shortcut call to dialect.pagin method


trans

public String trans(String sql)
Shortcut call to dialect.trans method


paginAndTrans

public String paginAndTrans(int pageNumber,
                            int pageSize,
                            String sql)
Shortcut call to dialect.paginAndTrans method


toCreateDDL

public String[] toCreateDDL(Class<?>... entityClasses)
Shortcut call to dialect.toCreateDDL method


toDropDDL

public String[] toDropDDL(Class<?>... entityClasses)
Shortcut call to dialect.toDropDDL method


toDropAndCreateDDL

public String[] toDropAndCreateDDL(Class<?>... entityClasses)
Shortcut call to dialect.toDropAndCreateDDL method


toCreateDDL

public String[] toCreateDDL(TableModel... tables)
Shortcut call to dialect.toCreateDDL method


toDropDDL

public String[] toDropDDL(TableModel... tables)
Shortcut call to dialect.toDropDDL method


toDropAndCreateDDL

public String[] toDropAndCreateDDL(TableModel... tables)
Shortcut call to dialect.toDropAndCreateDDL method


getteSetters__________________________

protected void getteSetters__________________________()

staticGlobalNextMethods______________________

protected void staticGlobalNextMethods______________________()

getGlobalNextDialect

public static Dialect getGlobalNextDialect()

setGlobalNextDialect

public static void setGlobalNextDialect(Dialect dialect)

getGlobalNextShardingTools

public static ShardingTool[] getGlobalNextShardingTools()

setGlobalNextShardingTools

public static void setGlobalNextShardingTools(ShardingTool[] shardingTools)

getGlobalNextSnowflakeCreator

public static SnowflakeCreator getGlobalNextSnowflakeCreator()

setGlobalNextSnowflakeCreator

public static void setGlobalNextSnowflakeCreator(SnowflakeCreator snowflakeCreator)

getDialect

public Dialect getDialect()

setDialect

public void setDialect(Dialect dialect)
This method is not thread safe, suggest only use at program starting


getShardingTools

public ShardingTool[] getShardingTools()

setShardingTools

public void setShardingTools(ShardingTool[] shardingTools)
This method is not thread safe, suggest only use at program starting


getSnowflakeCreator

public SnowflakeCreator getSnowflakeCreator()

setSnowflakeCreator

public void setSnowflakeCreator(SnowflakeCreator snowflakeCreator)
This method is not thread safe, suggest only use at program starting


setGlobalSqlBoxContext

public static void setGlobalSqlBoxContext(SqlBoxContext globalSqlBoxContext)

getTailModels

public TableModel[] getTailModels()

setTailModels

public void setTailModels(TableModel[] tailModels)


Copyright © 2018. All rights reserved.