| 限定符和类型 | 字段和说明 |
|---|---|
protected Connection |
connection |
protected DataSource |
dataSource |
protected Map<String,String> |
fieldMapping
字段映射
|
protected SQLHelper |
sqlHelper
SQL语句
|
boolean |
startTranscation
是否开启事务
|
protected SyntaxHandler |
syntaxHandler
差异语法
|
| 构造器和说明 |
|---|
AbstractDAO(DataSource dataSource) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
autoBuildDatabase() |
long |
clear(Class _class)
清空表
|
void |
commit()
事务提交
|
void |
create(Class _class)
建表
|
protected abstract void |
createForeignKey()
创建外键约束
|
protected void |
createIndex(Entity entity)
创建索引
|
protected abstract void |
createTable(Entity entity)
创建新表
|
protected void |
createUniqueKey(Entity entity)
创建唯一索引
|
long |
delete(Class _class,
long id)
根据id删除
|
long |
delete(Class _class,
String field,
Object value)
根据id删除
|
void |
drop(Class _class)
删表
|
protected abstract void |
dropIndex(String tableName,
String indexName)
删除索引
|
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 abstract Entity[] |
getDatabaseInfo()
获取数据库信息
|
protected abstract boolean |
isConstraintExists(String tableName,
String constraintName)
外键是否存在
|
protected abstract boolean |
isIndexExists(String tableName,
String indexName)
索引是否存在
|
abstract <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
protected Connection connection
protected SyntaxHandler syntaxHandler
protected SQLHelper sqlHelper
public boolean startTranscation
public AbstractDAO(DataSource dataSource)
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 abstract Entity[] getDatabaseInfo() throws SQLException
SQLExceptionprotected abstract void createTable(Entity entity) throws SQLException
SQLExceptionprotected void createIndex(Entity entity) throws SQLException
SQLExceptionprotected void createUniqueKey(Entity entity) throws SQLException
SQLExceptionprotected abstract void createForeignKey()
throws SQLException
SQLExceptionprotected abstract boolean isIndexExists(String tableName, String indexName) throws SQLException
SQLExceptionprotected abstract boolean isConstraintExists(String tableName, String constraintName) throws SQLException
SQLExceptionprotected abstract void dropIndex(String tableName, String indexName) throws SQLException
SQLExceptionpublic void autoBuildDatabase()
throws SQLException
SQLExceptionCopyright © 2019. All rights reserved.