| 限定符和类型 | 类和说明 |
|---|---|
protected static class |
AbstractDAO.Syntax |
| 限定符和类型 | 字段和说明 |
|---|---|
protected DataSource |
dataSource |
protected Map<String,String> |
fieldMapping
字段映射
|
| 构造器和说明 |
|---|
AbstractDAO(DataSource dataSource) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
autoBuildDatabase() |
long |
clear(Class _class)
清空表
|
void |
commit()
事务提交
|
protected void |
compareEntityDatabase(com.alibaba.fastjson.JSONObject entity,
com.alibaba.fastjson.JSONObject dbEntity,
Connection connection)
对比实体类和数据表
|
protected void |
createForeignKey(com.alibaba.fastjson.JSONArray entityList,
Connection connection)
创建外键约束
|
protected void |
createTable(com.alibaba.fastjson.JSONObject entity,
Connection connection)
创建新表
|
protected void |
createUniqueKey(com.alibaba.fastjson.JSONObject entity,
Connection connection)
创建唯一索引
|
long |
delete(Class _class,
long id)
根据id删除
|
long |
delete(Class _class,
String field,
Object value)
根据id删除
|
void |
endTransaction()
结束事务
|
<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)
根据属性查询记录
|
protected com.alibaba.fastjson.JSONArray |
getDatabaseInfo()
获取数据库信息
|
protected com.alibaba.fastjson.JSONArray |
getEntityInfo()
获取实体类信息同时过滤
|
protected abstract String |
getSyntax(AbstractDAO.Syntax syntax,
Object... values)
提取各个数据库产品的SQL差异部分的语法
|
protected com.alibaba.fastjson.JSONObject |
getValue(com.alibaba.fastjson.JSONArray array,
String propertyName,
String value) |
<T> Condition<T> |
query(Class<T> _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 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 在接口中 DAOprotected com.alibaba.fastjson.JSONArray getEntityInfo()
throws IOException,
ClassNotFoundException
protected com.alibaba.fastjson.JSONArray getDatabaseInfo()
throws SQLException
SQLExceptionpublic void autoBuildDatabase()
protected void createTable(com.alibaba.fastjson.JSONObject entity,
Connection connection)
throws SQLException
SQLExceptionprotected void compareEntityDatabase(com.alibaba.fastjson.JSONObject entity,
com.alibaba.fastjson.JSONObject dbEntity,
Connection connection)
throws SQLException
SQLExceptionprotected void createUniqueKey(com.alibaba.fastjson.JSONObject entity,
Connection connection)
throws SQLException
SQLExceptionprotected void createForeignKey(com.alibaba.fastjson.JSONArray entityList,
Connection connection)
throws SQLException
SQLExceptionCopyright © 2019. All rights reserved.