public class NutDao extends DaoSupport implements Dao
_interceptors, autoTransLevel, dataSource, executor, expert, holder, meta, pojoMaker, runner, sqlManager
Constructor and Description |
---|
NutDao() |
NutDao(DataSource dataSource) |
NutDao(DataSource dataSource,
EntityMaker maker) |
NutDao(DataSource dataSource,
SqlManager sqlManager) |
Modifier and Type | Method and Description |
---|---|
protected Object |
_fetchLinks(Object t,
String regex,
boolean visitOne,
boolean visitMany,
boolean visitManyMany,
Condition cnd) |
int |
clear(Class<?> classOfT)
清除对象所有的记录
|
int |
clear(Class<?> classOfT,
Condition cnd)
根据一个 WHERE 条件,清除一组对象。只包括对象本身,不包括关联字段
|
int |
clear(String tableName)
清除数据表所有记录
|
int |
clear(String tableName,
Condition cnd)
根据一个 WHERE 条件,清除一组记录
|
<T> T |
clearLinks(T obj,
String regex)
根据正则表达式,清除对象的关联。
|
int |
count(Class<?> classOfT)
计算某个对象在数据库中有多少条记录
|
int |
count(Class<?> classOfT,
Condition cnd)
根据条件,计算某个对象在数据库中有多少条记录
|
int |
count(String tableName)
计算某个数据表或视图中有多少条记录
|
int |
count(String tableName,
Condition cnd)
根据条件,计算某个数据表或视图中有多少条记录
|
<T> Entity<T> |
create(Class<T> classOfT,
boolean dropIfExists)
根据一个实体的配置信息为其创建一张表
|
Pager |
createPager(int pageNumber,
int pageSize)
根据数据源的类型,创建一个翻页对象
|
int |
delete(Class<?> classOfT,
long id)
根据对象 ID 删除一个对象。它只会删除这个对象,关联对象不会被删除。
|
int |
delete(Class<?> classOfT,
String name)
根据对象 Name 删除一个对象。它只会删除这个对象,关联对象不会被删除。
|
int |
delete(Object obj)
自动判断如何删除一个对象。
|
int |
deleteLinks(Object obj,
String regex)
根据一个正则表达式,仅删除对象所有的关联字段,并不包括对象本身。
|
int |
deleteWith(Object obj,
String regex)
将对象删除的同时,也将符合一个正则表达式的所有关联字段关联的对象统统删除
|
<T> int |
deletex(Class<T> classOfT,
Object... pks)
根据复合主键,删除一个对象。该对象必须声明 '@PK',并且,给定的参数顺序 必须同 '@PK' 中声明的顺序一致,否则会产生不可预知的错误。
|
boolean |
drop(Class<?> classOfT)
如果一个实体的数据表存在,移除它
|
boolean |
drop(String tableName)
如果一个数据表存在,移除它
|
<T> int |
each(Class<T> classOfT,
Condition cnd,
Each<T> callback)
对一组对象进行迭代,这个接口函数非常适用于很大的数据量的集合,因为你不可能把他们都读到内存里
|
<T> int |
each(Class<T> classOfT,
Condition cnd,
Pager pager,
Each<T> callback)
对一组对象进行迭代,这个接口函数非常适用于很大的数据量的集合,因为你不可能把他们都读到内存里
|
int |
each(String tableName,
Condition cnd,
Each<Record> callback)
对一组对象进行迭代,这个接口函数非常适用于很大的数据量的集合,因为你不可能把他们都读到内存里
|
int |
each(String tableName,
Condition cnd,
Pager pager,
Each<Record> callback)
对一组对象进行迭代,这个接口函数非常适用于很大的数据量的集合,因为你不可能把他们都读到内存里
|
int |
each(String tableName,
Condition cnd,
Pager pager,
Each<Record> callback,
String fields)
对一组对象进行迭代,这个接口函数非常适用于很大的数据量的集合,因为你不可能把他们都读到内存里
|
Sql |
execute(Sql sql)
执行单条自定义SQL
|
boolean |
exists(Class<?> classOfT) |
boolean |
exists(String tableName) |
<T> T |
fastInsert(T obj)
快速插入一个对象。 对象的 '@Prev' 以及 '@Next' 在这个函数里不起作用。
|
<T> T |
fetch(Class<T> classOfT)
随便获取一个对象。某些时候,你的数据表永远只有一条记录,这个操作就很适合你
|
<T> T |
fetch(Class<T> classOfT,
Condition cnd)
根据 WHERE 条件获取一个对象。如果有多个对象符合条件,将只获取 ResultSet 第一个记录
|
<T> T |
fetch(Class<T> classOfT,
long id)
根据对象 ID 获取一个对象。它只会获取这个对象,关联对象不会被获取。
|
<T> T |
fetch(Class<T> classOfT,
String name)
根据对象 Name 获取一个对象。它只会获取这个对象,关联对象不会被获取。
|
Record |
fetch(String tableName,
Condition cnd)
根据条件获取一个 Record 对象
|
Record |
fetch(String tableName,
Condition cnd,
String fields) |
<T> T |
fetch(T obj)
根据一个参考对象自动判断如何获取一个对象。
|
<T> T |
fetchByJoin(Class<T> classOfT,
String regex,
Condition cnd)
根据查询条件获取一个对象.注意: 条件语句需要加上表名!!!
这个方法是让@One关联的属性,通过left join一次性取出.
|
<T> T |
fetchByJoin(Class<T> klass,
String regex,
Entity<T> en,
MappingField mf,
Object value) |
<T> T |
fetchByJoin(Class<T> klass,
String regex,
long id)
根据对象 ID 获取一个对象。它只会获取这个对象,关联对象不会被获取。
|
<T> T |
fetchByJoin(Class<T> klass,
String regex,
String name)
根据对象 NAME 获取一个对象。它只会获取这个对象,关联对象不会被获取。
|
<T> T |
fetchLinks(T obj,
String regex)
根据一个正则表达式,获取对象所有的关联字段
|
<T> T |
fetchLinks(T obj,
String regex,
Condition cnd)
根据一个正则表达式,获取对象所有的关联字段, 并按Condition进行数据过滤排序
严重提醒,当使用Condition进行数据过滤排序时,应当使regex只匹配特定的映射字段
|
<T> T |
fetchx(Class<T> classOfT,
Object... pks)
根据复合主键,获取一个对象。该对象必须声明 '@PK',并且,给定的参数顺序 必须同 '@PK' 中声明的顺序一致,否则会产生不可预知的错误。
|
int |
func(Class<?> classOfT,
String funcName,
String fieldName)
对某一个对象字段,进行计算。
|
int |
func(Class<?> classOfT,
String funcName,
String colName,
Condition cnd)
对某一个对象字段,进行计算。
|
int |
func(String tableName,
String funcName,
String colName)
对某一个数据表字段,进行计算。
|
int |
func(String tableName,
String funcName,
String colName,
Condition cnd)
对某一个数据表字段,进行计算。
|
Object |
func2(Class<?> classOfT,
String func2Name,
String fieldName)
对某一个对象字段,进行计算。
|
Object |
func2(Class<?> classOfT,
String func2Name,
String colName,
Condition cnd)
对某一个对象字段,进行计算。
|
Object |
func2(String tableName,
String func2Name,
String colName)
对某一个数据表字段,进行计算。
|
Object |
func2(String tableName,
String func2Name,
String colName,
Condition cnd)
对某一个数据表字段,进行计算。
|
<T> Entity<T> |
getEntity(Class<T> classOfT)
获取实体描述, 其中包含了Java Pojo<-->数据库的全部映射信息
|
EntityHolder |
getEntityHolder() |
int |
getMaxId(Class<?> classOfT)
获取某个对象,最大的 ID 值。这个对象必须声明了 '@Id'
|
<T> T |
getObject(Class<T> classOfT,
ResultSet rs,
FieldMatcher fm)
从一个 ResultSet 中获取一个对象。
|
<T> T |
getObject(Class<T> classOfT,
ResultSet rs,
FieldMatcher fm,
String prefix) |
void |
insert(Class<?> classOfT,
Chain chain)
与 insert(String tableName, Chain chain) 一样,不过,数据表名,将取自 POJO 的数据表声明,请参看
'@Table' 注解的详细说明
|
void |
insert(String tableName,
Chain chain)
自由的向一个数据表插入一条数据。数据用名值链描述
|
<T> T |
insert(T obj)
将一个对象插入到一个数据源。
|
<T> T |
insert(T t,
boolean ignoreNull,
boolean ignoreZero,
boolean ignoreBlankStr)
以特殊规则执行insert
|
<T> T |
insert(T obj,
FieldFilter filter)
将一个对象按FieldFilter过滤后,插入到一个数据源。
dao.insert(pet, FieldFilter.create(Pet.class, FieldMatcher.create(false))); |
<T> T |
insert(T obj,
String actived) |
<T> T |
insertLinks(T obj,
String regex)
根据一个正则表达式,仅将对象所有的关联字段插入到数据库中,并不包括对象本身
|
<T> T |
insertOrUpdate(T t)
根据对象的主键(@Id/@Name/@Pk)先查询, 如果存在就更新, 不存在就插入
|
<T> T |
insertOrUpdate(T t,
FieldFilter insertFieldFilter,
FieldFilter updateFieldFilter)
根据对象的主键(@Id/@Name/@Pk)先查询, 如果存在就更新, 不存在就插入
|
<T> T |
insertRelation(T obj,
String regex)
将对象的一个或者多个,多对多的关联信息,插入数据表
|
<T> T |
insertWith(T obj,
String regex)
将对象插入数据库同时,也将符合一个正则表达式的所有关联字段关联的对象统统插入相应的数据库
|
<T> List<T> |
query(Class<T> classOfT,
Condition cnd)
查询一组对象。你可以为这次查询设定条件
|
<T> List<T> |
query(Class<T> classOfT,
Condition cnd,
Pager pager)
查询一组对象。你可以为这次查询设定条件,并且只获取一部分对象(翻页)
|
<T> List<T> |
query(Class<T> classOfT,
Condition cnd,
Pager pager,
FieldMatcher matcher) |
<T> List<T> |
query(Class<T> classOfT,
Condition cnd,
Pager pager,
String regex) |
List<Record> |
query(String tableName,
Condition cnd)
查询出一组记录。
|
List<Record> |
query(String tableName,
Condition cnd,
Pager pager)
查询出一组记录。
|
List<Record> |
query(String tableName,
Condition cnd,
Pager pager,
String fields)
查询出一组记录。
|
<T> List<T> |
queryByJoin(Class<T> classOfT,
String regex,
Condition cnd)
根据查询条件获取所有对象.注意: 条件语句需要加上表名!!!
这个方法是让@One关联的属性,通过left join一次性取出.
|
<T> List<T> |
queryByJoin(Class<T> classOfT,
String regex,
Condition cnd,
Pager pager)
根据查询条件获取分页对象.注意: 条件语句需要加上表名!!!
这个方法是让@One关联的属性,通过left join一次性取出.
|
void |
setExpert(Object obj)
设置数据库方言.
|
void |
truncate(Class<?> klass) |
void |
truncate(String tableName) |
int |
update(Class<?> classOfT,
Chain chain,
Condition cnd)
与 update(String tableName, Chain chain, Condition cnd) 一样,不过,数据表名,将取自
POJO 的数据表声明,请参看 '@Table' 注解的详细说明
|
int |
update(Object obj)
更新一个对象。对象必须有 '@Id' 或者 '@Name' 或者 '@PK' 声明。
|
int |
update(Object obj,
Condition cnd) |
int |
update(Object obj,
FieldFilter fieldFilter) |
int |
update(Object obj,
FieldFilter fieldFilter,
Condition cnd) |
int |
update(Object obj,
String actived)
更新对象一部分字段
|
int |
update(Object obj,
String actived,
String locked,
boolean ignoreNull)
更新对象一部分字段
|
int |
update(String tableName,
Chain chain,
Condition cnd)
自由的更新多条数据
|
int |
updateAndIncrIfMatch(Object obj,
FieldFilter fieldFilter,
String fieldName)
乐观锁, 以特定字段的值作为限制条件,更新对象,并自增该字段.
|
int |
updateIgnoreNull(Object obj)
更新一个对象,并且忽略所有 null 字段。
|
<T> T |
updateLinks(T obj,
String regex)
根据一个正则表达式,仅更新对象所有的关联字段,并不包括对象本身
|
int |
updateRelation(Class<?> classOfT,
String regex,
Chain chain,
Condition cnd)
多对多关联是通过一个中间表将两条数据表记录关联起来。
|
<T> T |
updateWith(T obj,
String regex)
将对象更新的同时,也将符合一个正则表达式的所有关联字段关联的对象统统更新
|
int |
updateWithVersion(Object obj)
基于版本的更新,版本不一样无法更新到数据
|
int |
updateWithVersion(Object obj,
FieldFilter fieldFilter)
基于版本的更新,版本不一样无法更新到数据
|
_exec, addInterceptor, createEntityMaker, execute, getDataSource, getJdbcExpert, makeInterceptor, meta, pojoMaker, run, setAutoTransLevel, setDataSource, setDataSource, setExecutor, setInterceptors, setPojoMaker, setRunner, setSqlManager, sqls
public NutDao()
public NutDao(DataSource dataSource)
public NutDao(DataSource dataSource, SqlManager sqlManager)
public NutDao(DataSource dataSource, EntityMaker maker)
public <T> T getObject(Class<T> classOfT, ResultSet rs, FieldMatcher fm)
Dao
因为 Dao 接口可以知道一个 POJO 的映射细节,这个函数可以帮你节省一点体力。
public <T> T getObject(Class<T> classOfT, ResultSet rs, FieldMatcher fm, String prefix)
public <T> T insert(T obj)
Dao
声明了 '@Id'的字段会在插入数据库时被忽略,因为数据库会自动为其设值。如果想手动设置,请设置 '@Id(auto=false)'
插入之前,会检查声明了 '@Default(@SQL("SELECT ..."))' 的字段,预先执行 SQL 为字段设置。
插入之后,会检查声明了 '@Next(@SQL("SELECT ..."))' 的字段,通过执行 SQL 将值取回
如果你的字段仅仅声明了 '@Id(auto=true)',没有声明 '@Next',则认为你还是想取回插入后最新的 ID 值,因为 自动为你添加类似 @Next(@SQL("SELECT MAX(id) FROM tableName")) 的设置
public <T> T insert(T obj, FieldFilter filter)
Dao
dao.insert(pet, FieldFilter.create(Pet.class, FieldMatcher.create(false)));
insert
in interface Dao
obj
- 要被插入的对象filter
- 字段过滤器, 其中FieldMatcher.isIgnoreId生效Dao.insert(Object)
public void insert(String tableName, Chain chain)
Dao
public void insert(Class<?> classOfT, Chain chain)
Dao
public <T> T fastInsert(T obj)
Dao
即,你必须为其设置好值,它会统一采用 batch 的方法插入
fastInsert
in interface Dao
obj
- 要被插入的对象
它可以是:
public <T> T insertWith(T obj, String regex)
Dao
关于关联字段更多信息,请参看 '@One' | '@Many' | '@ManyMany' 更多的描述
insertWith
in interface Dao
obj
- 数据对象regex
- 正则表达式,描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被插入One
,
Many
,
ManyMany
public <T> T insertLinks(T obj, String regex)
Dao
insertLinks
in interface Dao
obj
- 数据对象regex
- 正则表达式,描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被插入One
,
Many
,
ManyMany
public <T> T insertRelation(T obj, String regex)
Dao
insertRelation
in interface Dao
obj
- 对象regex
- 正则表达式,描述了那种多对多关联字段将被执行该操作ManyMany
public int update(Object obj)
Dao
并且调用这个函数前, 主键的值必须保证是有效,否则会更新失败
这个对象所有的字段都会被更新,即,所有的没有被设值的字段,都会被置成 NULL,如果遇到 NOT NULL 约束,则会引发异常。 如果想有选择的更新个别字段,请使用 org.nutz.dao.FieldFilter
如果仅仅想忽略所有的 null 字段,请使用 updateIgnoreNull 方法更新对象
update
in interface Dao
obj
- 要被更新的对象
它可以是:
FieldFilter
public int update(Object obj, String actived)
Dao
public int update(Object obj, String actived, String locked, boolean ignoreNull)
Dao
public int update(Object obj, FieldFilter fieldFilter)
public int update(Object obj, FieldFilter fieldFilter, Condition cnd)
public int updateIgnoreNull(Object obj)
Dao
注意: 基本数据类型都是不可能为null的,这些字段肯定会更新
updateIgnoreNull
in interface Dao
obj
- 要被更新的对象
它可以是:
public int update(String tableName, Chain chain, Condition cnd)
Dao
public int update(Class<?> classOfT, Chain chain, Condition cnd)
Dao
public <T> T updateWith(T obj, String regex)
Dao
关于关联字段更多信息,请参看 '@One' | '@Many' | '@ManyMany' 更多的描述
updateWith
in interface Dao
obj
- 数据对象regex
- 正则表达式,描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被更新One
,
Many
,
ManyMany
public <T> T updateLinks(T obj, String regex)
Dao
updateLinks
in interface Dao
obj
- 数据对象regex
- 正则表达式,描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被更新One
,
Many
,
ManyMany
public int updateRelation(Class<?> classOfT, String regex, Chain chain, Condition cnd)
Dao
而这个中间表可能还有其他的字段,比如描述关联的权重等
这个操作可以让你一次更新某一个对象中多个多对多关联的数据
updateRelation
in interface Dao
classOfT
- 对象类型regex
- 正则表达式,描述了那种多对多关联字段将被执行该操作chain
- 针对中间关联表的名值链。cnd
- 针对中间关联表的 WHERE 条件ManyMany
public int delete(Class<?> classOfT, long id)
Dao
你的对象必须在某个字段声明了注解 '@Id',否则本操作会抛出一个运行时异常
如果你设定了外键约束,没有正确的清除关联对象会导致这个操作失败
public int delete(Class<?> classOfT, String name)
Dao
你的对象必须在某个字段声明了注解 '@Name',否则本操作会抛出一个运行时异常
如果你设定了外键约束,没有正确的清除关联对象会导致这个操作失败
public <T> int deletex(Class<T> classOfT, Object... pks)
Dao
public int delete(Object obj)
Dao
如果声明了 '@Id' 则相当于 delete(Class
如果声明了 '@Name',则相当于 delete(Class
如果声明了 '@PK',则 deletex(Class
如果没声明任何上面三个注解,则会抛出一个运行时异常
public int deleteWith(Object obj, String regex)
Dao
注意:
Java 对象的字段会被保留,这里的删除,将只会删除数据库中的记录
关于关联字段更多信息,请参看 '@One' | '@Many' | '@ManyMany' 更多的描述
deleteWith
in interface Dao
obj
- 数据对象regex
- 正则表达式,描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被删除One
,
Many
,
ManyMany
public int deleteLinks(Object obj, String regex)
Dao
注意:
Java 对象的字段会被保留,这里的删除,将只会删除数据库中的记录
关于关联字段更多信息,请参看 '@One' | '@Many' | '@ManyMany' 更多的描述
deleteLinks
in interface Dao
obj
- 数据对象regex
- 正则表达式,描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被删除One
,
Many
,
ManyMany
public <T> List<T> query(Class<T> classOfT, Condition cnd, Pager pager)
Dao
public <T> List<T> query(Class<T> classOfT, Condition cnd)
Dao
public <T> int each(Class<T> classOfT, Condition cnd, Pager pager, Each<T> callback)
Dao
public <T> int each(Class<T> classOfT, Condition cnd, Each<T> callback)
Dao
public List<Record> query(String tableName, Condition cnd, Pager pager)
Dao
query
in interface Dao
tableName
- 表名 - 格式为 tableName[:idName] 比如 : t_pet 或者
t_pet:id 尤其在 SqlServer2005 的环境下,需要用 t_pet:id 的形式来指明 ID
字段,否则 不能分页cnd
- 条件 - 请注意: 你传入的 Criteria 实现必须考虑到 没有
'Entity>' 传入。即 toSql 函数的参数永远为 null。pager
- 翻页信息Condition
public List<Record> query(String tableName, Condition cnd, Pager pager, String fields)
Dao
query
in interface Dao
tableName
- 表名 - 格式为 tableName[:idName] 比如 : t_pet 或者
t_pet:id 尤其在 SqlServer2005 的环境下,需要用 t_pet:id 的形式来指明 ID
字段,否则 不能分页cnd
- 条件 - 请注意: 你传入的 Criteria 实现必须考虑到 没有
'Entity>' 传入。即 toSql 函数的参数永远为 null。pager
- 翻页信息fields
- 需要查询的列, 将直接拼入SQL中.由于不会提前探知表结构,所以这fields并非正则表达式,务必留意.public List<Record> query(String tableName, Condition cnd)
Dao
query
in interface Dao
tableName
- 表名 - 格式为 tableName[:idName] 比如 : t_pet 或者
t_pet:id 尤其在 SqlServer2005 的环境下,需要用 t_pet:id 的形式来指明 ID
字段,否则 不能分页cnd
- 条件 - 请注意: 你传入的 Criteria 实现必须考虑到 没有
'Entity>' 传入。即 toSql 函数的参数永远为 null。Condition
public int each(String tableName, Condition cnd, Pager pager, Each<Record> callback, String fields)
Dao
each
in interface Dao
tableName
- 表名 - 格式为 tableName[:idName] 比如 : t_pet 或者
t_pet:id 尤其在 SqlServer2005 的环境下,需要用 t_pet:id 的形式来指明 ID
字段,否则 不能分页cnd
- WHERE 条件。如果为 null,将获取全部数据,顺序为数据库原生顺序callback
- 处理回调fields
- 需要查询的列, 将直接拼入SQL中.由于不会提前探知表结构,所以这fields并非正则表达式,务必留意.public int each(String tableName, Condition cnd, Pager pager, Each<Record> callback)
Dao
public int each(String tableName, Condition cnd, Each<Record> callback)
Dao
public <T> T fetch(Class<T> classOfT, long id)
Dao
你的对象必须在某个字段声明了注解 '@Id',否则本操作会抛出一个运行时异常
public <T> T fetch(Class<T> classOfT, String name)
Dao
你的对象必须在某个字段声明了注解 '@Name',否则本操作会抛出一个运行时异常
public <T> T fetchx(Class<T> classOfT, Object... pks)
Dao
public <T> T fetch(Class<T> classOfT, Condition cnd)
Dao
public Record fetch(String tableName, Condition cnd)
Dao
public <T> T fetch(T obj)
Dao
如果声明了 '@Id' 则相当于 fetch(Class
如果声明了 '@Name',则相当于 fetch(Class
如果声明了 '@PK',则 fetchx(Class
如果没声明任何上面三个注解,则会抛出一个运行时异常
public <T> T fetch(Class<T> classOfT)
Dao
public <T> T fetchLinks(T obj, String regex)
Dao
fetchLinks
in interface Dao
obj
- 数据对象,不可以是Class啊!!!传对象或集合啊!!!regex
- 正则表达式,描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被查询One
,
Many
,
ManyMany
public <T> T fetchLinks(T obj, String regex, Condition cnd)
Dao
fetchLinks
in interface Dao
obj
- 数据对象,可以是普通对象或集合,但不是类regex
- 正则表达式,描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被查询cnd
- 关联字段的过滤(排序,条件语句,分页等)public int clear(Class<?> classOfT, Condition cnd)
Dao
public int clear(String tableName, Condition cnd)
Dao
public <T> T clearLinks(T obj, String regex)
Dao
对于 '@One' 和 '@Many',对应的记录将会删除
而 '@ManyMay' 对应的字段,只会清除关联表中的记录
clearLinks
in interface Dao
obj
- 数据对象regex
- 正则表达式,描述了什么样的关联字段将被关注。如果为 null,则表示全部的关联字段都会被清除public <T> Entity<T> getEntity(Class<T> classOfT)
Dao
public int count(Class<?> classOfT, Condition cnd)
Dao
public int count(String tableName, Condition cnd)
Dao
public int getMaxId(Class<?> classOfT)
Dao
public int func(Class<?> classOfT, String funcName, String fieldName)
Dao
public int func(String tableName, String funcName, String colName)
Dao
public int func(Class<?> classOfT, String funcName, String colName, Condition cnd)
Dao
public int func(String tableName, String funcName, String colName, Condition cnd)
Dao
public Object func2(Class<?> classOfT, String func2Name, String fieldName)
Dao
public Object func2(String tableName, String func2Name, String colName)
Dao
public Object func2(Class<?> classOfT, String func2Name, String colName, Condition cnd)
Dao
public Object func2(String tableName, String func2Name, String colName, Condition cnd)
Dao
public Pager createPager(int pageNumber, int pageSize)
Dao
createPager
in interface Dao
pageNumber
- 第几页 ,从 1 开始。pageSize
- 每页可以有多少条记录public <T> Entity<T> create(Class<T> classOfT, boolean dropIfExists)
Dao
public boolean exists(Class<?> classOfT)
public boolean exists(String tableName)
public void setExpert(Object obj) throws Exception
Dao
public <T> T insert(T t, boolean ignoreNull, boolean ignoreZero, boolean ignoreBlankStr)
Dao
public <T> List<T> query(Class<T> classOfT, Condition cnd, Pager pager, FieldMatcher matcher)
public <T> T insertOrUpdate(T t)
Dao
insertOrUpdate
in interface Dao
t
- 对象public <T> T insertOrUpdate(T t, FieldFilter insertFieldFilter, FieldFilter updateFieldFilter)
Dao
insertOrUpdate
in interface Dao
t
- 对象insertFieldFilter
- 插入时的字段过滤, 可以是nullupdateFieldFilter
- 更新时的字段过滤,可以是nullpublic int updateAndIncrIfMatch(Object obj, FieldFilter fieldFilter, String fieldName)
Dao
update t_user set age=30, city="广州", version=version+1 where name="wendal" and version=124;
updateAndIncrIfMatch
in interface Dao
obj
- 需要更新的对象, 必须带@Id/@Name/@Pk中的其中一种.fieldFilter
- 需要过滤的属性. 若设置了哪些字段不更新,那务必确保过滤掉fieldName的字段fieldName
- 参考字段的Java属性名.默认是"version",可以是任意数值字段public int updateWithVersion(Object obj)
Dao
updateWithVersion
in interface Dao
obj
- 需要更新的对象, 必须有version属性public int updateWithVersion(Object obj, FieldFilter fieldFilter)
Dao
updateWithVersion
in interface Dao
obj
- 需要更新的对象, 必须有version属性fieldFilter
- 需要过滤的字段设置public <T> T fetchByJoin(Class<T> klass, String regex, long id)
Dao
你的对象必须在某个字段声明了注解 '@Id',否则本操作会抛出一个运行时异常
这个方法是让@One关联的属性,通过left join一次性取出. 与fetch+fetchLinks是等价的fetchByJoin
in interface Dao
klass
- 实体类regex
- 需要取出的关联属性,是正则表达式哦,匹配的是Java属性名id
- 对象idpublic <T> T fetchByJoin(Class<T> klass, String regex, String name)
Dao
你的对象必须在某个字段声明了注解 '@Name',否则本操作会抛出一个运行时异常
这个方法是让@One关联的属性,通过left join一次性取出. 与fetch+fetchLinks是等价的fetchByJoin
in interface Dao
klass
- 实体类regex
- 需要取出的关联属性,是正则表达式哦,匹配的是Java属性名name
- 对象namepublic <T> T fetchByJoin(Class<T> klass, String regex, Entity<T> en, MappingField mf, Object value)
public <T> T fetchByJoin(Class<T> classOfT, String regex, Condition cnd)
Dao
fetchByJoin
in interface Dao
classOfT
- 实体类regex
- 需要过滤的关联属性,可以是null,取出全部关联属性.cnd
- 查询条件,必须带表名!!!public <T> List<T> queryByJoin(Class<T> classOfT, String regex, Condition cnd)
Dao
queryByJoin
in interface Dao
classOfT
- 实体类regex
- 需要过滤的关联属性,可以是null,取出全部关联属性.cnd
- 查询条件,必须带表名!!!public <T> List<T> queryByJoin(Class<T> classOfT, String regex, Condition cnd, Pager pager)
Dao
queryByJoin
in interface Dao
classOfT
- 实体类regex
- 需要过滤的关联属性,可以是null,取出全部关联属性.cnd
- 查询条件,必须带表名!!!pager
- 分页对象 注意: 分页不要在cnd中传入!protected Object _fetchLinks(Object t, String regex, boolean visitOne, boolean visitMany, boolean visitManyMany, Condition cnd)
public EntityHolder getEntityHolder()
getEntityHolder
in interface Dao
Copyright © 2017. All rights reserved.