public interface CrudModelInf
Modifier and Type | Method and Description |
---|---|
int[] |
batchDelete(Connection conn,
Collection<? extends DBObject> modelList,
int batchSize) |
int[] |
batchDelete(Connection conn,
Collection<? extends DBObject> modelList,
int batchSize,
boolean useFirstSql) |
int[] |
batchInsert(Connection conn,
Collection<? extends DBObject> modelList,
boolean insertFast,
boolean useOptimisticLock,
int batchSize)
批量插入
|
int[] |
batchInsert(Connection conn,
Collection<? extends DBObject> modelList,
boolean insertFast,
boolean useOptimisticLock,
int batchSize,
boolean useAll)
批量插入
|
int[] |
batchUpdate(Connection conn,
Collection<? extends DBObject> modelList,
int batchSize)
更新对象,如果有乐观锁,会根据乐观锁条件更新,并会更新数据库中的乐观锁条件.但不会更新对象的乐观锁字段的值.
|
int[] |
batchUpdate(Connection conn,
Collection<? extends DBObject> modelList,
int batchSize,
boolean useNvl) |
boolean |
createTable(Connection conn,
Class<?> clz)
创建表
|
<T extends DBObject> |
delete(Connection conn,
T obj)
删除方法
|
<T extends DBObject> |
deleteByPrimaryKeys(Connection conn,
Class<T> clz,
Object... keyParams)
根据主键删除
|
<T extends DBObject> |
deleteCascade(Connection conn,
T obj,
DBCascadeField... fields)
将对象删除的同时,也将符合一个正则表达式的所有关联字段关联的对象统统删除
注意:
|
<T extends DBObject> |
deleteLinks(Connection con,
T obj,
DBCascadeField... fields)
仅删除对象所有的关联字段,并不包括对象本身。
注意:
|
<T extends DBObject> |
deleteRelation(Connection con,
T obj,
DBCascadeField... fields)
多对多关联是通过一个中间表将两条数据表记录关联起来。
|
boolean |
dropTable(Connection conn,
Class<?> clz)
删除表
|
int |
execute(Connection conn,
SQLContext context)
执行语句,非查询语句
|
<T extends DBObject> |
exists(Connection conn,
T query)
查询对象是否存在
|
<T extends DBObject> |
existsByPrimaryKeys(Connection conn,
Class<T> clz,
Object... keyParams)
根据主键查询是否存在
|
<T extends DBObject> |
fetchCascade(Connection conn,
T query,
Class<T> clz,
DBCascadeField... fields)
fixme beetsql hibernate 使用了一级缓存,导致比他们慢
根据查询条件查询列表并根据级联字段查询级联对象
|
<T extends DBObject> |
fetchLinks(Connection conn,
T obj)
根据一个正则表达式,获取对象所有的关联字段
|
<T extends DBObject> |
fetchLinks(Connection conn,
T obj,
DBCascadeField... fields)
根据字段,获取对象所有的关联字段
|
int |
insert(Connection conn,
DBObject obj)
插入
|
int |
insert(Connection conn,
DBObject obj,
boolean fast,
boolean useOptimisticLock) |
int |
insertCascade(Connection conn,
DBObject obj,
DBCascadeField... fields)
将对象插入数据库同时,也将符合一个正则表达式的所有关联字段关联的对象统统插入相应的数据库
|
<T extends DBObject> |
insertLinks(Connection con,
T obj,
DBCascadeField... fields)
仅将对象所有的关联字段插入到数据库中,并不包括对象本身
|
<T extends DBObject> |
insertRelation(Connection con,
T obj,
DBCascadeField... fields)
将对象的一个或者多个,多对多的关联信息,插入数据表
|
int |
merge(Connection conn,
DBObject obj)
合并记录
|
<T extends DBObject> |
selectByPrimaryKeys(Connection conn,
Class<T> clz,
Object... keyParams) |
<T extends DBObject> |
selectCount(Connection conn,
T query)
查询总数
|
<T extends DBObject> |
selectIterator(Connection conn,
OrmIterator<T> ormIt,
T query)
查询结果返回迭代
|
<T extends DBObject> |
selectIterator(Connection conn,
OrmIterator<T> ormIt,
T query,
long start,
int limit)
查询结果返回迭代(分页查询)
|
<T> List<T> |
selectList(Connection conn,
Class<T> beanClass,
SQLContext context) |
<T> List<T> |
selectList(Connection conn,
Class<T> beanClass,
SQLContext context,
long start,
int limit) |
<T extends DBObject> |
selectList(Connection conn,
T query)
查询列表
|
<T extends DBObject> |
selectList(Connection conn,
T query,
long start,
int limit) |
<T extends DBObject> |
selectListForUpdate(Connection conn,
T query)
悲观锁(Pessimistic Lock)
|
List<Map<String,Object>> |
selectListMap(Connection conn,
SQLContext context) |
<T> T |
selectOne(Connection conn,
Class<T> beanClass,
SQLContext context) |
<T extends DBObject> |
selectOne(Connection conn,
T query)
查询一条记录,如果结果不唯一则抛出异常
|
<T extends DBObject> |
selectOneForUpdate(Connection conn,
T query)
悲观锁(Pessimistic Lock)
|
<T> Page<T> |
selectPage(Connection conn,
long start,
int limit,
Class<T> beanClass,
SQLContext context) |
<T> Page<T> |
selectPage(Connection conn,
long start,
int limit,
Class<T> beanClass,
SQLContext context,
PageStrategy strategy) |
<T extends DBObject> |
selectPage(Connection conn,
T query,
long start,
int limit)
查询并分页
|
<T extends DBObject> |
selectStream(Connection conn,
OrmStream<T> ormStream,
T query)
查询结果返回迭代
|
<T extends DBObject> |
update(Connection conn,
T obj)
更新对象(不区分乐观锁条件)
|
<T extends DBObject> |
updateAndSet(Connection conn,
T obj)
乐观锁(Optimistic Lock), 以特定字段的值作为限制条件,更新对象,并更新该字段的值.参考字段的Java属性名.必须设置了@Version标签
注意:对于时间作为乐观锁,由于数据库和java时间存在差异,如果需要设置更新后的值,需要重新调用OptimisticLock.setNewOptimisticLockValues查询方法设置最新的值. |
int |
updateCascade(Connection conn,
DBObject obj,
DBCascadeField... fields)
将对象更新的同时,也将符合一个正则表达式的所有关联字段关联的对象统统更新
|
<T extends DBObject> |
updateLinks(Connection con,
T obj,
DBCascadeField... fields)
仅更新对象所有的关联字段,并不包括对象本身
|
<T extends DBObject> |
updateRelation(Connection con,
T obj,
DBCascadeField... fields)
多对多关联是通过一个中间表将两条数据表记录关联起来。
|
<T extends DBObject> |
updateWithVersion(Connection conn,
T obj)
乐观锁(Optimistic Lock)
根据乐观锁条件更新,并会更新数据库中的乐观锁条件.但不会更新对象的乐观锁字段的值. |
<T extends DBObject> boolean existsByPrimaryKeys(Connection conn, Class<T> clz, Object... keyParams)
T
- conn
- clz
- 实体类keyParams
- 主键列<T extends DBObject> boolean exists(Connection conn, T query)
T
- conn
- query
- 查询实体<T extends DBObject> T selectByPrimaryKeys(Connection conn, Class<T> clz, Object... keyParams)
T
- conn
- clz
- keyParams
- List<Map<String,Object>> selectListMap(Connection conn, SQLContext context)
conn
- context
- <T> T selectOne(Connection conn, Class<T> beanClass, SQLContext context)
T
- conn
- beanClass
- context
- <T> List<T> selectList(Connection conn, Class<T> beanClass, SQLContext context)
T
- conn
- beanClass
- context
- <T> List<T> selectList(Connection conn, Class<T> beanClass, SQLContext context, long start, int limit)
T
- conn
- beanClass
- context
- start
- limit
- <T> Page<T> selectPage(Connection conn, long start, int limit, Class<T> beanClass, SQLContext context)
T
- conn
- start
- limit
- beanClass
- context
- 如果为分页参数,内部的listSql--带分页参数,countSql不能为空<T> Page<T> selectPage(Connection conn, long start, int limit, Class<T> beanClass, SQLContext context, PageStrategy strategy)
T
- conn
- start
- limit
- beanClass
- context
- 如果为分页参数,内部的listSql--带分页参数,countSql不能为空strategy
- 分页策略<T extends DBObject> Long selectCount(Connection conn, T query)
T
- conn
- query
- <T extends DBObject> T selectOne(Connection conn, T query)
conn
- query
- <T extends DBObject> T selectOneForUpdate(Connection conn, T query)
T
- conn
- query
- <T extends DBObject> List<T> selectList(Connection conn, T query)
query
- 查询请求。
<T extends DBObject> List<T> selectList(Connection conn, T query, long start, int limit)
T
- conn
- query
- start
- limit
- <T extends DBObject> List<T> selectListForUpdate(Connection conn, T query)
T
- conn
- query
- <T extends DBObject> Page<T> selectPage(Connection conn, T query, long start, int limit)
query
- 查询请求start
- 起始记录,offset。从0开始。limit
- 限制记录条数。如每页10条传入10。<T extends DBObject> void selectIterator(Connection conn, OrmIterator<T> ormIt, T query)
T
- conn
- ormIt
- query
- <T extends DBObject> void selectIterator(Connection conn, OrmIterator<T> ormIt, T query, long start, int limit)
T
- conn
- ormIt
- query
- start
- limit
- <T extends DBObject> void selectStream(Connection conn, OrmStream<T> ormStream, T query)
T
- conn
- ormStream
- query
- <T extends DBObject> int update(Connection conn, T obj)
conn
- obj
- <T extends DBObject> int updateAndSet(Connection conn, T obj)
1.对于数字,则+1;
2.对于日期取当前时间戳.
3.对于字符串,取UUID的值.
执行的sql如下:
update t_user set age=30, city="广州", version=version+1 where name="wendal" and version=124;
conn
- obj
- 需要更新的对象, 必须带主键,并设置过主键的值.<T extends DBObject> int updateWithVersion(Connection conn, T obj)
conn
- obj
- 需要更新的对象, 必须有@Version属性int merge(Connection conn, DBObject obj)
conn
- obj
- <T extends DBObject> int deleteByPrimaryKeys(Connection conn, Class<T> clz, Object... keyParams)
T
- conn
- clz
- keyParams
- <T extends DBObject> int delete(Connection conn, T obj)
T
- conn
- obj
- int[] batchInsert(Connection conn, Collection<? extends DBObject> modelList, boolean insertFast, boolean useOptimisticLock, int batchSize)
conn
- modelList
- insertFast
- useOptimisticLock
- batchSize
- int[] batchInsert(Connection conn, Collection<? extends DBObject> modelList, boolean insertFast, boolean useOptimisticLock, int batchSize, boolean useAll)
conn
- modelList
- insertFast
- useOptimisticLock
- batchSize
- useAll
- 是否使用一条语句做完插入int[] batchUpdate(Connection conn, Collection<? extends DBObject> modelList, int batchSize)
conn
- modelList
- batchSize
- int[] batchUpdate(Connection conn, Collection<? extends DBObject> modelList, int batchSize, boolean useNvl)
conn
- modelList
- batchSize
- useNvl
- 是否使用数据库方法排除null值int[] batchDelete(Connection conn, Collection<? extends DBObject> modelList, int batchSize)
conn
- modelList
- batchSize
- int[] batchDelete(Connection conn, Collection<? extends DBObject> modelList, int batchSize, boolean useFirstSql)
conn
- modelList
- batchSize
- useFirstSql
- 是否使用第一个对象生成的sql语句为准boolean createTable(Connection conn, Class<?> clz)
conn
- clz
- boolean dropTable(Connection conn, Class<?> clz)
conn
- clz
- <T extends DBObject> List<T> fetchCascade(Connection conn, T query, Class<T> clz, DBCascadeField... fields)
T
- conn
- query
- clz
- fields
- <T extends DBObject> T fetchLinks(Connection conn, T obj)
T
- conn
- obj
- 数据对象,不可以是Class啊!!!传对象或集合啊!!!OneToOne
,
ManyToMany
,
OneToMany
<T extends DBObject> T fetchLinks(Connection conn, T obj, DBCascadeField... fields)
T
- conn
- obj
- 数据对象,不可以是Class啊!!!传对象或集合啊!!!fields
- OneToOne
,
ManyToMany
,
OneToMany
int insert(Connection conn, DBObject obj)
conn
- obj
- int insert(Connection conn, DBObject obj, boolean fast, boolean useOptimisticLock)
conn
- obj
- fast
- 是否是快速插入useOptimisticLock
- int insertCascade(Connection conn, DBObject obj, DBCascadeField... fields)
关于关联字段更多信息,请参看 '@One' | '@Many' | '@ManyMany' 更多的描述
conn
- obj
- fields
- 指定字段,控制力度更细,至少一个或多个 描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被插入<T extends DBObject> T insertLinks(Connection con, T obj, DBCascadeField... fields)
obj
- 数据对象fields
- 字段名称,描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被插入OneToOne
,
ManyToMany
,
OneToMany
<T extends DBObject> T insertRelation(Connection con, T obj, DBCascadeField... fields)
obj
- 对象fields
- 正则表达式,描述了那种多对多关联字段将被执行该操作ManyToMany
int updateCascade(Connection conn, DBObject obj, DBCascadeField... fields)
关于关联字段更多信息,请参看 '@One' | '@Many' | '@ManyMany' 更多的描述
conn
- obj
- 数据对象fields
- 指定字段,控制力度更细,至少一个或多个,描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被更新<T extends DBObject> int updateLinks(Connection con, T obj, DBCascadeField... fields)
T
- con
- 连接obj
- 数据对象fields
- 字段名称,描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被更新OneToOne
,
ManyToMany
,
OneToMany
<T extends DBObject> int updateRelation(Connection con, T obj, DBCascadeField... fields)
而这个中间表可能还有其他的字段,比如描述关联的权重等
这个操作可以让你一次更新某一个对象中多个多对多关联的数据
con
- 数据库连接obj
- 数据对象fields
- 字段名称,描述了那种多对多关联字段将被执行该操作ManyToMany
int execute(Connection conn, SQLContext context)
conn
- context
- <T extends DBObject> int deleteCascade(Connection conn, T obj, DBCascadeField... fields)
Java 对象的字段会被保留,这里的删除,将只会删除数据库中的记录
关于关联字段更多信息,请参看 '@One' | '@Many' | '@ManyMany' 更多的描述
T
- conn
- obj
- fields
- 指定字段,控制力度更细,至少一个或多个 描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被删除<T extends DBObject> int deleteLinks(Connection con, T obj, DBCascadeField... fields)
Java 对象的字段会被保留,这里的删除,将只会删除数据库中的记录
关于关联字段更多信息,请参看 '@One' | '@Many' | '@ManyMany' 更多的描述
obj
- 数据对象fields
- 字段名称,描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被删除OneToOne
,
ManyToOne
,
ManyToMany
<T extends DBObject> int deleteRelation(Connection con, T obj, DBCascadeField... fields)
而这个中间表可能还有其他的字段,比如描述关联的权重等
这个操作可以让你一次删除某一个对象中多个多对多关联的数据
obj
- fields
- 字段名称,描述了那种多对多关联字段将被执行该操作ManyToMany
Copyright © 2020. All rights reserved.