| 限定符和类型 | 类和说明 |
|---|---|
protected static class |
AbstractDAO.Syntax |
| 限定符和类型 | 字段和说明 |
|---|---|
protected DataSource |
dataSource |
protected Map<String,String> |
fieldMapping
字段映射
|
boolean |
startTranscation
是否开启事务
|
| 构造器和说明 |
|---|
AbstractDAO(DataSource dataSource) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
autoBuildDatabase() |
long |
clear(Class _class)
清空表
|
void |
commit()
事务提交
|
protected void |
compareEntityDatabase(Entity entity,
Entity dbEntity,
Connection connection)
对比实体类和数据表
|
void |
create(Class _class)
建表
|
protected void |
createForeignKey(Collection<Entity> entityList,
Connection connection)
创建外键约束
|
protected void |
createTable(Entity entity,
Connection connection)
创建新表
|
protected void |
createUniqueKey(Entity entity,
Connection connection)
创建唯一索引
|
long |
delete(Class _class,
long id)
根据id删除
|
long |
delete(Class _class,
String field,
Object value)
根据id删除
|
void |
drop(Class _class)
删表
|
void |
endTransaction()
结束事务
|
boolean |
exist(Object instance)
实体对象是否存在
|
<T> T |
fetch(Class<T> _class,
long id)
根据id查询
|
<T> T |
fetch(Class<T> _class,
String property,
Object value)
根据属性查询单个记录
若符合条件的记录有多条,则只会返回第一条记录
|
<T> List<T> |
fetchList(Class<T> _class,
String property,
Object value)
根据属性查询记录
|
Connection |
getConnection()
仅供Condition类调用
|
protected Entity[] |
getDatabaseInfo()
获取数据库信息
|
protected abstract String |
getSyntax(AbstractDAO.Syntax syntax,
Object... values)
提取各个数据库产品的SQL差异部分的语法
|
<T> Condition<T> |
query(Class<T> _class)
复杂查询接口
|
void |
rebuild(Class _class)
删表
|
void |
rollback()
事务回滚
|
void |
rollback(Savepoint savePoint)
事务回滚
|
long |
save(List instanceList)
保存对象数组
判断该实例是否有id,无id则直接插入;然后判断该实例是否有唯一性约束,若有则根据唯一性约束更新,否则根据id更新
|
long |
save(Object instance)
保存对象
判断该实例是否有id,无id则直接插入;然后判断该实例是否有唯一性约束,若有则根据唯一性约束更新,否则根据id更新
|
long |
save(Object[] instances)
保存对象数组
判断该实例是否有id,无id则直接插入;然后判断该实例是否有唯一性约束,若有则根据唯一性约束更新,否则根据id更新
|
Savepoint |
setSavePoint(String name)
设置保存点
|
void |
startTransaction()
开启事务
|
protected DataSource dataSource
public boolean startTranscation
public AbstractDAO(DataSource dataSource)
protected abstract String getSyntax(AbstractDAO.Syntax syntax, Object... values)
public <T> T fetch(Class<T> _class, String property, Object value)
DAO根据属性查询单个记录
若符合条件的记录有多条,则只会返回第一条记录
public <T> List<T> fetchList(Class<T> _class, String property, Object value)
DAO根据属性查询记录
public long save(Object instance)
DAO保存对象
判断该实例是否有id,无id则直接插入;然后判断该实例是否有唯一性约束,若有则根据唯一性约束更新,否则根据id更新
public long save(List instanceList)
DAO保存对象数组
判断该实例是否有id,无id则直接插入;然后判断该实例是否有唯一性约束,若有则根据唯一性约束更新,否则根据id更新
public long save(Object[] instances)
DAO保存对象数组
判断该实例是否有id,无id则直接插入;然后判断该实例是否有唯一性约束,若有则根据唯一性约束更新,否则根据id更新
public void startTransaction()
startTransaction 在接口中 DAOpublic Savepoint setSavePoint(String name)
setSavePoint 在接口中 DAOpublic void endTransaction()
endTransaction 在接口中 DAOpublic Connection getConnection() throws SQLException
SQLExceptionprotected Entity[] getDatabaseInfo() throws SQLException
SQLExceptionpublic void autoBuildDatabase()
throws SQLException
SQLExceptionprotected void createTable(Entity entity, Connection connection) throws SQLException
SQLExceptionprotected void compareEntityDatabase(Entity entity, Entity dbEntity, Connection connection) throws SQLException
SQLExceptionprotected void createUniqueKey(Entity entity, Connection connection) throws SQLException
SQLExceptionprotected void createForeignKey(Collection<Entity> entityList, Connection connection) throws SQLException
SQLExceptionCopyright © 2019. All rights reserved.