public class DBClient extends DaoSupport implements DBMethod
Modifier and Type | Field and Description |
---|---|
protected ThreadLocal<DBContext> |
dbContexts
sql执行上下文.
|
protected DBDynmicSQL |
dbDynmicSQL |
protected DBJooq |
dbJooq |
protected DBQueryDSL |
dbQueryDSL |
protected MapperBuilder |
mapperBuilder |
crud, dataSource
Constructor and Description |
---|
DBClient() |
DBClient(DataSource dataSource) |
Modifier and Type | Method and Description |
---|---|
int[] |
batchDelete(Collection<? extends DBObject> modelList)
批量删除
|
int[] |
batchInsert(Collection<? extends DBObject> modelList)
批量插入
|
int[] |
batchInsert(Collection<? extends DBObject> modelList,
boolean useAll)
批量插入
|
int[] |
batchInsertFast(Collection<? extends DBObject> modelList)
快速插入方法
|
int[] |
batchInsertFast(Collection<? extends DBObject> modelList,
boolean useAll)
快速插入方法
|
int[] |
batchUpdate(Collection<? extends DBObject> modelList)
更新对象,如果有乐观锁,会根据乐观锁条件更新,并会更新数据库中的乐观锁条件.但不会更新对象的乐观锁字段的值.
|
int[] |
batchUpdate(Collection<? extends DBObject> modelList,
boolean useNvl)
更新对象,如果有乐观锁,会根据乐观锁条件更新,并会更新数据库中的乐观锁条件.但不会更新对象的乐观锁字段的值.
|
protected void |
closeConnection(Connection conn,
DataSource ds)
释放一个连接,如果 Connection 不在事务中,则关闭它,否则不处理。
|
protected void |
closeConnection(DBContext context,
Connection conn,
DataSource ds) |
boolean |
createTable(Class<?> clz)
建表
|
boolean |
createTables()
创建全部表
|
<T extends DBObject> |
delete(T obj)
删除实体,根据设置的值删除
|
<T extends DBObject> |
deleteByPrimaryKeys(Class<T> clz,
Object... keyParams)
根据主键删除实体
|
<T extends DBObject> |
deleteCascade(T obj,
DBCascadeField... fields)
将对象删除的同时,也将指定级联字段的所有关联字段关联的对象统统删除 注意:
|
<T extends DBObject> |
deleteLinks(T obj,
DBCascadeField... fields)
仅删除对象所有的关联字段,并不包括对象本身。 注意:
|
<T extends DBObject> |
deleteRelation(T obj,
DBCascadeField... fields)
多对多关联是通过一个中间表将两条数据表记录关联起来。
|
boolean |
dropTable(Class<?> clz)
删除表
|
<T> T |
execute(ConnectionCallback<T> action)
数据迭代接口
执行回调,主要是用于存储过程调用
直接获取connection,注意连接不可手动关闭
|
<T> T |
execute(ConnectionCallback<T> action,
boolean readonly)
数据迭代接口
执行回调,主要是用于存储过程调用
直接获取connection,注意连接不可手动关闭
|
<R> R |
execute(Function<DataSource,R> func,
boolean readonly) |
int |
execute(SQLContext context) |
int |
execute(String sql,
Object... parameters)
执行单一sql
|
int[] |
executeBatch(String sql,
List<Object[]> parameters)
批量执行SQL
|
int[] |
executeBatch(String sql,
List<Object[]> parameters,
boolean insertFast,
int batchSize,
List<String> pkeys,
List<Map<String,Object>> keyValues) |
int[] |
executeBatchTemplate(String sqlId,
List<Map<String,Object>> parameters) |
int[] |
executeBatchTemplate(String sqlId,
List<Map<String,Object>> parameters,
boolean insertFast,
int batchSize,
List<String> pkeys,
List<Map<String,Object>> keyValues)
批量处理,带返回主键值的功能.
|
int[] |
executeBatchTemplateSource(String sqlSource,
List<Map<String,Object>> parameters) |
int[] |
executeBatchTemplateSource(String sqlSource,
List<Map<String,Object>> parameters,
boolean insertFast,
int batchSize,
List<String> pkeys,
List<Map<String,Object>> keyValues) |
<R> R |
executeFunc(Function<Connection,R> func)
回调
|
<R> R |
executeFunc(Function<Connection,R> func,
boolean readonly)
回调
|
int |
executeTemplate(String sqlId,
Map<String,Object> paramters) |
int |
executeTemplateSource(String sqlSource,
Map<String,Object> paramters) |
<T extends DBObject> |
exists(T query) |
<T extends DBObject> |
existsByPrimaryKeys(Class<T> clz,
Object... keyParams) |
<T extends DBObject> |
fetchCascade(T query,
Class<T> clz,
DBCascadeField... fields)
查找对象列表,并查询级联字段
|
<T extends DBObject> |
fetchLinks(T obj)
根据一个正则表达式,获取对象所有的关联字段
|
<T extends DBObject> |
fetchLinks(T obj,
DBCascadeField... fields)
根据字段,获取对象所有的关联字段
|
void |
genPojoCodes(String pkg,
String srcPath,
GenConfig config)
根据表名生成对应的pojo类
|
protected Connection |
getConnection(DataSource ds)
获取一个当前线程的连接(事务中),如果没有,则新建一个。
|
protected Connection |
getConnection(DBContext context,
DataSource ds) |
protected DataSource |
getDataSource(boolean readonly)
从clz中获取数据源
|
<T extends DBObject> |
getDialect(boolean readonly)
获取dialect
|
DBDynmicSQL |
getDynmicSQL() |
DBJooq |
getJooq() |
<T> T |
getMapper(Class<T> mapperInterface)
通过mapper接口生成dao代理
|
DBQueryDSL |
getQueryDSL() |
<T extends DBObject> |
insert(T obj)
保存
|
<T extends DBObject> |
insert(T obj,
boolean fast,
boolean useOptimisticLock)
插入结果
|
int |
insertCascade(DBObject obj,
DBCascadeField... fields)
将对象插入数据库同时,也将指定级联字段的所有关联字段关联的对象统统插入相应的数据库
|
<T extends DBObject> |
insertFast(T obj)
快速插入方法,不返还主键.
|
<T extends DBObject> |
insertLinks(T obj,
DBCascadeField... fields)
仅将对象所有的关联字段插入到数据库中,并不包括对象本身
|
<T extends DBObject> |
insertRelation(T obj,
DBCascadeField... fields)
将对象的一个或者多个,多对多的关联信息,插入数据表
|
int |
insertTemplate(String sqlId,
Map<String,Object> paramters,
List<String> pkeys,
Map<String,Object> keyValues)
带主键返回的插入
|
int |
insertTemplateSource(String sqlSource,
Map<String,Object> paramters,
List<String> pkeys,
Map<String,Object> keyValues) |
<T extends DBObject> |
merge(T obj)
合并结果,根据传入主键确定是保存还是修改数据.
|
boolean |
refreshTable(Class<?> clz)
刷新某张表
|
void |
refreshTable(Class<?> clz,
MetadataEventListener listener)
检查并修改数据库中的表,使其和传入的实体模型保持一致。
|
boolean |
refreshTable(TableMapping meta,
MetadataEventListener event,
boolean modifyConstraint,
boolean modifyIndexes)
检查并修改数据库中的表,使其和传入的实体模型保持一致。
|
boolean |
refreshTables()
刷新表
|
List<Map<String,Object>> |
select(Example example) |
List<Map<String,Object>> |
select(String sql,
Object... paras)
查询 map ,注意返回结果字段不区分大小写.
|
Object[] |
selectArray(Example example) |
Object[] |
selectArray(String sql,
Object... parameters)
查询结果为数组
|
Object[] |
selectArrayTemplate(String sqlId,
Map<String,Object> parameters) |
Object[] |
selectArrayTemplateSource(String sqlSource,
Map<String,Object> parameters) |
<T extends DBObject> |
selectByPrimaryKeys(Class<T> clz,
Object... keyParams)
根据主键查询
|
<T extends DBObject> |
selectCount(T query)
查询总数
|
<T> void |
selectIterator(OrmIterator<T> ormIt,
Class<T> beanClass,
boolean usePage,
String sql,
Object... parameters)
是否使用假分页开启迭代模式
|
<T> void |
selectIterator(OrmIterator<T> ormIt,
Class<T> beanClass,
String sql,
Object... parameters)
数据迭代接口
|
<T extends DBObject> |
selectIterator(OrmIterator<T> ormIt,
T query)
查询迭代结果.回调形式.
|
<T extends DBObject> |
selectIterator(OrmIterator<T> ormIt,
T query,
long start,
int limit)
查询限制条数和起始位置的迭代结果.回调形式.
|
<T> void |
selectIteratorTemplate(OrmIterator<T> ormIt,
Class<T> beanClass,
String sqlId,
Map<String,Object> parameters) |
<T> void |
selectIteratorTemplateSource(OrmIterator<T> ormIt,
Class<T> beanClass,
String sqlSource,
Map<String,Object> parameters) |
<T> List<T> |
selectList(Class<T> beanClass,
Example example) |
<T> List<T> |
selectList(Class<T> beanClass,
long start,
int limit,
Example example) |
<T> List<T> |
selectList(Class<T> beanClass,
long start,
int limit,
String sql,
Object... parameters) |
<T> List<T> |
selectList(Class<T> beanClass,
SQLContext context) |
<T> List<T> |
selectList(Class<T> beanClass,
SQLContext context,
long start,
int limit) |
<T> List<T> |
selectList(Class<T> beanClass,
String sql,
Object... parameters)
根据sql查询,返回对应的列表
|
List<?> |
selectList(String resultSetMapping,
long start,
int limit,
String sql,
Object... parameters)
根据@SqlResultSetMapping设置返回值,返回的为单个对象,或数组对象
|
List<?> |
selectList(String resultSetMapping,
String sql,
Object... parameters)
根据@SqlResultSetMapping设置返回值,返回的为单个对象,或数组对象
|
<T extends DBObject> |
selectList(T query)
查询列表
|
<T extends DBObject> |
selectList(T query,
long start,
int limit)
查询列表
|
<T> List<T> |
selectListForUpdate(Class<T> beanClass,
Example example) |
<T extends DBObject> |
selectListForUpdate(T query)
使用select ...
|
<T> List<T> |
selectListTemplate(Class<T> beanClass,
String sqlId,
Map<String,Object> parameters) |
<T> List<T> |
selectListTemplateSource(Class<T> beanClass,
long start,
int limit,
String sqlSource,
Map<String,Object> parameters) |
<T> List<T> |
selectListTemplateSource(Class<T> beanClass,
String sqlSource,
Map<String,Object> parameters) |
<T> T |
selectOne(Class<T> beanClass,
Example example) |
<T> T |
selectOne(Class<T> clz,
SQLContext context) |
<T> T |
selectOne(Class<T> beanClass,
String sql,
Object... parameters)
查询单一对象
|
Object |
selectOne(String resultSetMapping,
String sql,
Object... parameters)
根据@SqlResultSetMapping设置返回值,返回的为单个对象,或数组对象
|
<T extends DBObject> |
selectOne(T query)
查询一条记录,如果结果不唯一则抛出异常
|
<T> T |
selectOneForUpdate(Class<T> beanClass,
Example example) |
<T extends DBObject> |
selectOneForUpdate(T query)
使用select ...
|
<T> T |
selectOneTemplate(Class<T> beanClass,
String sqlId,
Map<String,Object> parameters) |
<T> T |
selectOneTemplateSource(Class<T> beanClass,
String sqlSource,
Map<String,Object> parameters) |
<T> Page<T> |
selectPage(Class<T> clz,
SQLContext context,
long start,
int limit) |
<T> Page<T> |
selectPage(long start,
int limit,
Class<T> beanClass,
Example example) |
<T> Page<T> |
selectPage(long start,
int limit,
Class<T> beanClass,
String sql,
Object... parameters)
分页查询
|
<T extends DBObject> |
selectPage(T query,
long start,
int limit)
查询并分页
|
<T> Page<T> |
selectPageRaw(long start,
int limit,
Class<T> beanClass,
String countSql,
Object[] countParas,
String listSql,
Object[] listParas)
最原始的分页方法,假分页实现,使用result跳过数据,实现
|
<T> Page<T> |
selectPageRaw(long start,
int limit,
Class<T> beanClass,
String countSql,
Object[] countParas,
String listSql,
Object[] listParas,
PageStrategy strategy)
最原始的分页方法,假分页实现,使用result跳过数据,实现
|
<T> Page<T> |
selectPageRawTemplate(long start,
int limit,
Class<T> beanClass,
String countSqlId,
Map<String,Object> countParas,
String listSqlId,
Map<String,Object> listParas)
最原始的分页方法,使用原生sql实现
|
<T> Page<T> |
selectPageRawTemplateSource(long start,
int limit,
Class<T> beanClass,
String countSqlSource,
Map<String,Object> countParas,
String listSqlSource,
Map<String,Object> pageParas) |
<T> Page<T> |
selectPageTemplate(long start,
int limit,
Class<T> beanClass,
String sqlId,
Map<String,Object> parameters) |
<T> Page<T> |
selectPageTemplateSource(long start,
int limit,
Class<T> beanClass,
String sqlSource,
Map<String,Object> parameters) |
<T> void |
selectResultSet(ResultSetCallback<T> callback,
String sql,
Object... parameters)
数据迭代接口
|
<T> void |
selectStream(OrmStream<T> ormStream,
Class<T> beanClass,
boolean usePage,
String sql,
Object... parameters)
数据迭代接口
|
<T> void |
selectStream(OrmStream<T> ormStream,
Class<T> beanClass,
String sql,
Object... parameters)
数据迭代接口
|
<T extends DBObject> |
selectStream(OrmStream<T> ormStream,
T query)
stream lambda形式迭代结果.
|
<T> void |
selectStreamTemplate(OrmStream<T> ormStream,
Class<T> beanClass,
String sqlId,
Map<String,Object> parameters) |
<T> void |
selectStreamTemplateSource(OrmStream<T> ormStream,
Class<T> beanClass,
String sqlSource,
Map<String,Object> parameters) |
List<Map<String,Object>> |
selectTemplate(String sqlId,
Map<String,Object> parameter) |
List<Map<String,Object>> |
selectTemplateSource(String sqlSource,
Map<String,Object> parameter) |
<T extends DBObject> |
setNewOptimisticLockValues(T obj)
警告:从数据库中获取最新的乐观锁的值到对象中,一般情况下,该方法用不到.慎用.
|
<T extends DBObject> |
truncate(Class<T> clz)
清空表数据
|
int |
truncate(Connection con,
TableMapping meta)
执行 truncate table XXXX 命令,快速清光表的数据
|
<T extends DBObject> |
update(T obj)
更新对象(乐观锁不作为更新条件)
|
<T extends DBObject> |
updateAndSet(T obj)
乐观锁, 以特定字段的值作为限制条件,更新对象,并更新该字段的值.参考字段的Java属性名.必须设置了@Version标签
注意:对于时间作为乐观锁,由于数据库和java时间存在差异,如果需要设置更新后的值,需要重新调用OptimisticLock.setNewOptimisticLockValues查询方法设置最新的值.
|
int |
updateCascade(DBObject obj,
DBCascadeField... fields)
将对象更新的同时,也将指定级联字段的所有关联字段关联的对象统统更新
|
<T extends DBObject> |
updateLinks(T obj,
DBCascadeField... fields)
仅更新对象所有的关联字段,并不包括对象本身
|
<T extends DBObject> |
updateRelation(T obj,
DBCascadeField... fields)
多对多关联是通过一个中间表将两条数据表记录关联起来。
|
<T extends DBObject> |
updateWithVersion(T obj)
根据乐观锁条件更新,并会更新数据库中的乐观锁条件.但不会更新对象的乐观锁字段的值.
|
DBClient |
useContext(DBContext context)
使用上下文语境(一次性的,每次使用后必须重新设置,供以后扩展使用.)
|
getDialect, setDataSource, start
protected MapperBuilder mapperBuilder
protected volatile DBJooq dbJooq
protected volatile DBQueryDSL dbQueryDSL
protected volatile DBDynmicSQL dbDynmicSQL
protected ThreadLocal<DBContext> dbContexts
public DBClient(DataSource dataSource)
public DBClient()
public DBClient useContext(DBContext context)
useContext
in interface DBMethod
context
- 执行上下文.protected DataSource getDataSource(boolean readonly)
DaoSupport
getDataSource
in class DaoSupport
readonly
- 是否只读protected Connection getConnection(DataSource ds)
DaoSupport
getConnection
in class DaoSupport
protected Connection getConnection(DBContext context, DataSource ds)
protected void closeConnection(Connection conn, DataSource ds)
DaoSupport
closeConnection
in class DaoSupport
protected void closeConnection(DBContext context, Connection conn, DataSource ds)
public <T extends DBObject> DBDialect getDialect(boolean readonly)
DBMethod
getDialect
in interface DBMethod
readonly
- 是否只读public <T extends DBObject> boolean existsByPrimaryKeys(Class<T> clz, Object... keyParams)
existsByPrimaryKeys
in interface DBMethod
public <T extends DBObject> boolean exists(T query)
public <T extends DBObject> T selectByPrimaryKeys(Class<T> clz, Object... keyParams)
DBMethod
selectByPrimaryKeys
in interface DBMethod
T
- 泛型clz
- 实体类keyParams
- 主键参数public <T extends DBObject> long selectCount(T query)
DBMethod
selectCount
in interface DBMethod
T
- 泛型query
- 查询public <T extends DBObject> T selectOne(T query)
DBMethod
public <T extends DBObject> T selectOneForUpdate(T query)
DBMethod
selectOneForUpdate
in interface DBMethod
T
- 泛型query
- 查询条件public <T extends DBObject> List<T> selectList(T query)
DBMethod
selectList
in interface DBMethod
query
- 查询请求。
public <T extends DBObject> List<T> selectList(T query, long start, int limit)
DBMethod
selectList
in interface DBMethod
query
- 查询请求。start
- 开始条数limit
- 结束条数public <T extends DBObject> List<T> selectListForUpdate(T query)
DBMethod
selectListForUpdate
in interface DBMethod
T
- 泛型query
- 查询public <T extends DBObject> Page<T> selectPage(T query, long start, int limit)
DBMethod
selectPage
in interface DBMethod
query
- 查询请求start
- 起始记录,offset。从0开始。limit
- 限制记录条数。如每页10条传入10。public <T> Page<T> selectPage(Class<T> clz, SQLContext context, long start, int limit)
selectPage
in interface DBMethod
public <T> T selectOne(Class<T> clz, SQLContext context)
public <T> List<T> selectList(Class<T> beanClass, SQLContext context)
selectList
in interface DBMethod
public <T> List<T> selectList(Class<T> beanClass, SQLContext context, long start, int limit)
selectList
in interface DBMethod
public <T extends DBObject> void selectIterator(OrmIterator<T> ormIt, T query)
DBMethod
selectIterator
in interface DBMethod
T
- 泛型ormIt
- 迭代回调方法query
- 查询public <T extends DBObject> void selectIterator(OrmIterator<T> ormIt, T query, long start, int limit)
DBMethod
selectIterator
in interface DBMethod
T
- 泛型ormIt
- 迭代回调方法query
- 查询start
- 起始数limit
- 限制数public <T extends DBObject> void selectStream(OrmStream<T> ormStream, T query)
DBMethod
selectStream
in interface DBMethod
T
- 泛型ormStream
- 迭代回调方法query
- 查询public <T extends DBObject> int insertFast(T obj)
DBMethod
insertFast
in interface DBMethod
obj
- 实体public <T extends DBObject> int insert(T obj, boolean fast, boolean useOptimisticLock)
DBMethod
public <T extends DBObject> int merge(T obj)
DBMethod
public <T extends DBObject> int update(T obj)
DBMethod
public <T extends DBObject> int updateAndSet(T obj)
DBMethod
1.对于数字,则+1;
2.对于日期取当前时间戳.
3.对于字符串,取UUID的值.
执行的sql如下:
update t_user set age=30, city="广州", version=version+1 where name="wendal" and version=124;
updateAndSet
in interface DBMethod
obj
- 需要更新的对象, 必须带主键,并设置过主键的值.public <T extends DBObject> int updateWithVersion(T obj)
DBMethod
updateWithVersion
in interface DBMethod
obj
- 需要更新的对象, 必须有@Version属性public <T extends DBObject> void setNewOptimisticLockValues(T obj)
DBMethod
setNewOptimisticLockValues
in interface DBMethod
T
- 泛型obj
- 实体public <T extends DBObject> int deleteByPrimaryKeys(Class<T> clz, Object... keyParams)
DBMethod
deleteByPrimaryKeys
in interface DBMethod
T
- 泛型clz
- 实体类keyParams
- 主键值public <T extends DBObject> int delete(T obj)
DBMethod
public <T extends DBObject> void truncate(Class<T> clz)
DBMethod
public int truncate(Connection con, TableMapping meta)
meta
- 表名
// route
路由结果。该表对应的所有实例。public int[] batchInsert(Collection<? extends DBObject> modelList)
DBMethod
batchInsert
in interface DBMethod
modelList
- 对象列表public int[] batchInsert(Collection<? extends DBObject> modelList, boolean useAll)
DBMethod
batchInsert
in interface DBMethod
modelList
- 对象列表useAll
- 是否单一sql做完批量插入public int[] batchInsertFast(Collection<? extends DBObject> modelList)
DBMethod
batchInsertFast
in interface DBMethod
modelList
- 对象列表public int[] batchInsertFast(Collection<? extends DBObject> modelList, boolean useAll)
DBMethod
batchInsertFast
in interface DBMethod
modelList
- 对象列表useAll
- 是否单一sql做完批量插入public int[] batchUpdate(Collection<? extends DBObject> modelList)
DBMethod
batchUpdate
in interface DBMethod
modelList
- 对象列表public int[] batchUpdate(Collection<? extends DBObject> modelList, boolean useNvl)
DBMethod
batchUpdate
in interface DBMethod
modelList
- 对象列表useNvl
- 是否使用nvl函数去重public int[] batchDelete(Collection<? extends DBObject> modelList)
DBMethod
batchDelete
in interface DBMethod
modelList
- 对象列表public void genPojoCodes(String pkg, String srcPath, GenConfig config)
DBMethod
genPojoCodes
in interface DBMethod
pkg
- 包名,如 com.testconfig
- 配置生成的风格public boolean createTable(Class<?> clz)
DBMethod
createTable
in interface DBMethod
clz
- public boolean createTables()
createTables
in interface DBMethod
public boolean refreshTables()
DBMethod
refreshTables
in interface DBMethod
public boolean refreshTable(Class<?> clz)
DBMethod
refreshTable
in interface DBMethod
clz
- 实体类public void refreshTable(Class<?> clz, MetadataEventListener listener) throws SQLException
refreshTable
in interface DBMethod
clz
- 要更新的表对应的类listener
- 事件监听器,可以监听刷新过程的事件SQLException
public boolean refreshTable(TableMapping meta, MetadataEventListener event, boolean modifyConstraint, boolean modifyIndexes) throws SQLException
refreshTable
in interface DBMethod
meta
- 要更新的表的元数据event
- 事件监听器,可以监听刷新过程的事件modifyConstraint
- 更改约束modifyIndexes
- 更改索引SQLException
MetadataEventListener
public <T extends DBObject> List<T> fetchCascade(T query, Class<T> clz, DBCascadeField... fields)
DBMethod
fetchCascade
in interface DBMethod
T
- 泛型query
- 查询clz
- 实体类fields
- 级联字段public <T extends DBObject> T fetchLinks(T obj)
DBMethod
fetchLinks
in interface DBMethod
obj
- 数据对象,不可以是Class啊!!!传对象或集合啊!!!OneToOne
,
ManyToMany
,
OneToMany
public <T extends DBObject> T fetchLinks(T obj, DBCascadeField... fields)
DBMethod
fetchLinks
in interface DBMethod
obj
- 数据对象,不可以是Class啊!!!传对象或集合啊!!!OneToOne
,
ManyToMany
,
OneToMany
public int execute(SQLContext context)
public int insertCascade(DBObject obj, DBCascadeField... fields)
DBMethod
关于关联字段更多信息,请参看 '@One' | '@Many' | '@ManyMany' 更多的描述
insertCascade
in interface DBMethod
fields
- 指定字段,控制力度更细,至少一个或多个 描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被插入public <T extends DBObject> T insertLinks(T obj, DBCascadeField... fields)
DBMethod
insertLinks
in interface DBMethod
obj
- 数据对象fields
- 字段名称,描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被插入OneToOne
,
ManyToMany
,
OneToMany
public <T extends DBObject> T insertRelation(T obj, DBCascadeField... fields)
DBMethod
insertRelation
in interface DBMethod
obj
- 对象fields
- 正则表达式,描述了那种多对多关联字段将被执行该操作ManyToMany
public int updateCascade(DBObject obj, DBCascadeField... fields)
DBMethod
关于关联字段更多信息,请参看 '@One' | '@Many' | '@ManyMany' 更多的描述
updateCascade
in interface DBMethod
obj
- 数据对象fields
- 指定字段,控制力度更细,至少一个或多个,描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被更新public <T extends DBObject> int updateLinks(T obj, DBCascadeField... fields)
DBMethod
updateLinks
in interface DBMethod
obj
- 数据对象fields
- 字段名称,描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被更新OneToOne
,
ManyToMany
,
OneToMany
public <T extends DBObject> int updateRelation(T obj, DBCascadeField... fields)
DBMethod
而这个中间表可能还有其他的字段,比如描述关联的权重等
这个操作可以让你一次更新某一个对象中多个多对多关联的数据
updateRelation
in interface DBMethod
obj
- 数据对象fields
- 字段名称,描述了那种多对多关联字段将被执行该操作ManyToMany
public <T extends DBObject> int deleteCascade(T obj, DBCascadeField... fields)
DBMethod
Java 对象的字段会被保留,这里的删除,将只会删除数据库中的记录
关于关联字段更多信息,请参看 '@One' | '@Many' | '@ManyMany' 更多的描述
deleteCascade
in interface DBMethod
T
- 泛型obj
- 对象fields
- 指定字段,控制力度更细,至少一个或多个 描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被删除public <T extends DBObject> int deleteLinks(T obj, DBCascadeField... fields)
DBMethod
Java 对象的字段会被保留,这里的删除,将只会删除数据库中的记录
关于关联字段更多信息,请参看 '@One' | '@Many' | '@ManyMany' 更多的描述
deleteLinks
in interface DBMethod
obj
- 数据对象fields
- 字段名称,描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被删除OneToOne
,
ManyToOne
,
ManyToMany
public <T extends DBObject> int deleteRelation(T obj, DBCascadeField... fields)
DBMethod
而这个中间表可能还有其他的字段,比如描述关联的权重等
这个操作可以让你一次删除某一个对象中多个多对多关联的数据
deleteRelation
in interface DBMethod
fields
- 字段名称,描述了那种多对多关联字段将被执行该操作ManyToMany
public <T> Page<T> selectPage(long start, int limit, Class<T> beanClass, Example example)
selectPage
in interface DBMethod
public Object[] selectArray(Example example)
selectArray
in interface DBMethod
public <T> List<T> selectList(Class<T> beanClass, Example example)
selectList
in interface DBMethod
public <T> List<T> selectList(Class<T> beanClass, long start, int limit, Example example)
selectList
in interface DBMethod
public <T> List<T> selectListForUpdate(Class<T> beanClass, Example example)
selectListForUpdate
in interface DBMethod
public <T> T selectOneForUpdate(Class<T> beanClass, Example example)
selectOneForUpdate
in interface DBMethod
public List<Map<String,Object>> select(String sql, Object... paras)
DBMethod
public <T> T selectOne(Class<T> beanClass, String sql, Object... parameters)
DBMethod
public <T> List<T> selectList(Class<T> beanClass, String sql, Object... parameters)
DBMethod
selectList
in interface DBMethod
T
- 泛型beanClass
- 返回结果,可以为实体类,Map,List,Object[]sql
- 原始语句parameters
- 参数public <T> List<T> selectList(Class<T> beanClass, long start, int limit, String sql, Object... parameters)
selectList
in interface DBMethod
public Object[] selectArray(String sql, Object... parameters)
DBMethod
selectArray
in interface DBMethod
sql
- 原始语句parameters
- 参数public <T> Page<T> selectPage(long start, int limit, Class<T> beanClass, String sql, Object... parameters)
DBMethod
selectPage
in interface DBMethod
T
- 泛型start
- 起始位置limit
- 限制数量beanClass
- 返回结果,可以为实体类,Map,List,Object[]sql
- 原始语句parameters
- 参数public <T> Page<T> selectPageRaw(long start, int limit, Class<T> beanClass, String countSql, Object[] countParas, String listSql, Object[] listParas)
DBMethod
selectPageRaw
in interface DBMethod
T
- 泛型start
- 起始位置limit
- 限制数量beanClass
- 返回结果,可以为实体类,Map,List,Object[]countSql
- 查询总数的语句countParas
- 查询总数的参数listSql
- 查询列表的语句,不能包含限制条数(start和limit)的内容.listParas
- 查询列表的参数public <T> Page<T> selectPageRaw(long start, int limit, Class<T> beanClass, String countSql, Object[] countParas, String listSql, Object[] listParas, PageStrategy strategy)
DBMethod
selectPageRaw
in interface DBMethod
T
- 泛型start
- 起始位置limit
- 限制数量beanClass
- 返回结果,可以为实体类,Map,List,Object[]countSql
- 查询总数的语句countParas
- 查询总数的参数listSql
- 查询列表的语句listParas
- 查询列表的参数strategy
- 分页策略public <T> void selectIterator(OrmIterator<T> ormIt, Class<T> beanClass, String sql, Object... parameters)
DBMethod
selectIterator
in interface DBMethod
T
- 泛型ormIt
- 回调beanClass
- 返回结果,可以为实体类,Map,List,Object[]sql
- 原始语句parameters
- 参数public <T> void selectIterator(OrmIterator<T> ormIt, Class<T> beanClass, boolean usePage, String sql, Object... parameters)
DBMethod
selectIterator
in interface DBMethod
T
- 泛型ormIt
- 回调beanClass
- 返回结果,可以为实体类,Map,List,Object[]usePage
- 是否使用分页模式,如果为true,使用分页语句实现迭代功能sql
- 原始语句parameters
- 泛型public <T> void selectStream(OrmStream<T> ormStream, Class<T> beanClass, String sql, Object... parameters)
DBMethod
selectStream
in interface DBMethod
T
- 泛型ormStream
- 回调beanClass
- 返回结果,可以为实体类,Map,List,Object[]sql
- 原始语句parameters
- 参数public <T> void selectStream(OrmStream<T> ormStream, Class<T> beanClass, boolean usePage, String sql, Object... parameters)
DBMethod
selectStream
in interface DBMethod
T
- 泛型ormStream
- 回调beanClass
- 返回结果,可以为实体类,Map,List,Object[]usePage
- 是否使用分页语句实现迭代sql
- 原始语句parameters
- 参数public <T> void selectResultSet(ResultSetCallback<T> callback, String sql, Object... parameters)
DBMethod
selectResultSet
in interface DBMethod
T
- 泛型callback
- 回调sql
- 原始语句parameters
- 参数public <T> T execute(ConnectionCallback<T> action)
DBMethod
public <T> T execute(ConnectionCallback<T> action, boolean readonly)
DBMethod
public <R> R execute(Function<DataSource,R> func, boolean readonly)
public <R> R executeFunc(Function<Connection,R> func, boolean readonly)
DBMethod
executeFunc
in interface DBMethod
public <R> R executeFunc(Function<Connection,R> func)
DBMethod
executeFunc
in interface DBMethod
public int execute(String sql, Object... parameters)
DBMethod
public int[] executeBatch(String sql, List<Object[]> parameters)
DBMethod
executeBatch
in interface DBMethod
sql
- 原始语句parameters
- 参数public int[] executeBatch(String sql, List<Object[]> parameters, boolean insertFast, int batchSize, List<String> pkeys, List<Map<String,Object>> keyValues)
executeBatch
in interface DBMethod
public List<?> selectList(String resultSetMapping, String sql, Object... parameters)
DBMethod
selectList
in interface DBMethod
resultSetMapping
- @SqlResultSetMapping 中的namepublic List<?> selectList(String resultSetMapping, long start, int limit, String sql, Object... parameters)
DBMethod
selectList
in interface DBMethod
resultSetMapping
- @SqlResultSetMapping 中的namepublic Object selectOne(String resultSetMapping, String sql, Object... parameters)
DBMethod
public List<Map<String,Object>> selectTemplate(String sqlId, Map<String,Object> parameter)
selectTemplate
in interface DBMethod
public <T> T selectOneTemplate(Class<T> beanClass, String sqlId, Map<String,Object> parameters)
selectOneTemplate
in interface DBMethod
public Object[] selectArrayTemplate(String sqlId, Map<String,Object> parameters)
selectArrayTemplate
in interface DBMethod
public <T> Page<T> selectPageTemplate(long start, int limit, Class<T> beanClass, String sqlId, Map<String,Object> parameters)
selectPageTemplate
in interface DBMethod
public <T> Page<T> selectPageRawTemplate(long start, int limit, Class<T> beanClass, String countSqlId, Map<String,Object> countParas, String listSqlId, Map<String,Object> listParas)
DBMethod
selectPageRawTemplate
in interface DBMethod
T
- 泛型start
- 起始位置limit
- 限制数量beanClass
- 返回结果,可以为实体类,Map,List,Object[]countSqlId
- 查询总数的语句idcountParas
- 查询总数的参数listSqlId
- 分页列表查询语句id,不能包含了start和limit的内容listParas
- 分页列表查询参数public <T> void selectIteratorTemplate(OrmIterator<T> ormIt, Class<T> beanClass, String sqlId, Map<String,Object> parameters)
selectIteratorTemplate
in interface DBMethod
public <T> void selectStreamTemplate(OrmStream<T> ormStream, Class<T> beanClass, String sqlId, Map<String,Object> parameters)
selectStreamTemplate
in interface DBMethod
public int insertTemplate(String sqlId, Map<String,Object> paramters, List<String> pkeys, Map<String,Object> keyValues)
DBMethod
insertTemplate
in interface DBMethod
pkeys
- 主键列keyValues
- 可以插入值的Map,一般为new HashMap();public int executeTemplate(String sqlId, Map<String,Object> paramters)
executeTemplate
in interface DBMethod
public int[] executeBatchTemplate(String sqlId, List<Map<String,Object>> parameters)
executeBatchTemplate
in interface DBMethod
public int[] executeBatchTemplate(String sqlId, List<Map<String,Object>> parameters, boolean insertFast, int batchSize, List<String> pkeys, List<Map<String,Object>> keyValues)
DBMethod
executeBatchTemplate
in interface DBMethod
public <T> List<T> selectListTemplate(Class<T> beanClass, String sqlId, Map<String,Object> parameters)
selectListTemplate
in interface DBMethod
public List<Map<String,Object>> selectTemplateSource(String sqlSource, Map<String,Object> parameter)
selectTemplateSource
in interface DBMethod
public <T> T selectOneTemplateSource(Class<T> beanClass, String sqlSource, Map<String,Object> parameters)
selectOneTemplateSource
in interface DBMethod
public Object[] selectArrayTemplateSource(String sqlSource, Map<String,Object> parameters)
selectArrayTemplateSource
in interface DBMethod
public <T> Page<T> selectPageTemplateSource(long start, int limit, Class<T> beanClass, String sqlSource, Map<String,Object> parameters)
selectPageTemplateSource
in interface DBMethod
public <T> Page<T> selectPageRawTemplateSource(long start, int limit, Class<T> beanClass, String countSqlSource, Map<String,Object> countParas, String listSqlSource, Map<String,Object> pageParas)
selectPageRawTemplateSource
in interface DBMethod
listSqlSource
- 分页列表查询模板语句,不能包含了start和limit的内容public <T> void selectIteratorTemplateSource(OrmIterator<T> ormIt, Class<T> beanClass, String sqlSource, Map<String,Object> parameters)
selectIteratorTemplateSource
in interface DBMethod
public <T> void selectStreamTemplateSource(OrmStream<T> ormStream, Class<T> beanClass, String sqlSource, Map<String,Object> parameters)
selectStreamTemplateSource
in interface DBMethod
public int insertTemplateSource(String sqlSource, Map<String,Object> paramters, List<String> pkeys, Map<String,Object> keyValues)
insertTemplateSource
in interface DBMethod
public int executeTemplateSource(String sqlSource, Map<String,Object> paramters)
executeTemplateSource
in interface DBMethod
public int[] executeBatchTemplateSource(String sqlSource, List<Map<String,Object>> parameters)
executeBatchTemplateSource
in interface DBMethod
public int[] executeBatchTemplateSource(String sqlSource, List<Map<String,Object>> parameters, boolean insertFast, int batchSize, List<String> pkeys, List<Map<String,Object>> keyValues)
executeBatchTemplateSource
in interface DBMethod
public <T> List<T> selectListTemplateSource(Class<T> beanClass, String sqlSource, Map<String,Object> parameters)
selectListTemplateSource
in interface DBMethod
public <T> List<T> selectListTemplateSource(Class<T> beanClass, long start, int limit, String sqlSource, Map<String,Object> parameters)
selectListTemplateSource
in interface DBMethod
public DBDynmicSQL getDynmicSQL()
getDynmicSQL
in interface DBMethod
public DBQueryDSL getQueryDSL()
getQueryDSL
in interface DBMethod
Copyright © 2020. All rights reserved.