@Service public class DaoService extends Object
如执行查询/更新,根据数据源编号获取数据库连接等。
| 限定符和类型 | 字段和说明 |
|---|---|
static String |
ATTR_DS_NAME
实体的属性中放置数据源id的名称。
|
static String |
EC_DB_OTHER
错误码, 其他数据库问题。
|
static String |
EC_NONE_DB
错误码, 不存在默认数据源,无法开启集群的定时任务
|
| 构造器和说明 |
|---|
DaoService() |
| 限定符和类型 | 方法和说明 |
|---|---|
boolean |
beginTrans(String dsId)
已过时。
|
self.micromagic.eterna.dao.ResultIterator |
doQuery(self.micromagic.eterna.dao.Query query,
self.micromagic.eterna.model.AppData appData)
执行一个query,并获取其返回结果。
|
self.micromagic.eterna.dao.ResultIterator |
doQueryWithEnv(DaoParam param,
self.micromagic.eterna.dao.Query query,
self.micromagic.eterna.model.AppData appData)
执行查询,在需要获取所有行时根据配置带上环境。
|
int |
doUpdate(self.micromagic.eterna.dao.Update update,
self.micromagic.eterna.model.AppData appData)
执行一个update,并获取其返回受影响的记录数。
|
void |
endTrans(self.micromagic.eterna.model.AppData appData,
boolean success)
结束一个事务。
|
void |
endTrans(boolean success)
结束一个事务。
|
Connection |
getConnection(boolean needTrans)
获取一个当前应用的数据库连接。
|
Connection |
getConnection(String dsId)
获取一个数据库连接。
|
Connection |
getConnection(String dsId,
boolean needTrans)
获取一个数据库连接。
|
long |
getDataBaseTime()
获取数据库的时间。
|
long |
getDataBaseTime(String dsId)
获取数据库的时间。
|
static DataSource |
getDataSource(String dsId)
获取一个数据源。
|
String |
getDataSourceId(self.micromagic.eterna.share.EternaFactory factory)
获取设置的数据源id。
|
static String |
getDefaultDataSourceId()
获取默认的数据源id。
|
void |
lock(String name)
加数据库锁。
|
void |
lock(String name,
String dsId)
加数据库锁。
|
<T> T |
lockAndInvoke(String name,
String dsId,
Callable<T> callback)
加上数据库锁并执行回调。
|
static SubScript |
makeRowPermissionSub(IUser user,
DataInfo key,
int type)
根据当前的登录用户及数据信息的键值, 获取权限子句.
|
static <T> T |
newTransInvoke(Callable<T> callback)
强制开始一个新的事务并执行回调函数。
|
static <T> T |
newTransInvoke(String dsId,
Callable<T> callback)
强制开始一个新的事务并执行回调函数。
|
void |
setParams(self.micromagic.eterna.dao.Dao dao,
Map<String,?> params,
self.micromagic.eterna.model.AppData appData)
根据一个map设置参数。
|
public void lock(String name, String dsId)
如果是第一次调用此方法会提交之前的事务,因为会先创建表。
name - 锁的名称dsId - 数据源public void lock(String name)
使用当前应用的数据源加数据库锁。 如果是第一次调用此方法会提交之前的事务,因为会先创建表。
name - 锁的名称public <T> T lockAndInvoke(String name, String dsId, Callable<T> callback)
这里使用了新的事务,不会影响之前的事务。 如果之后的操作使用的数据源与加锁的数据源相同,那么这些操作将会在新的事务上执行。
T - 返回类型name - 锁的名称dsId - 数据源callback - 回调函数public long getDataBaseTime(String dsId)
dsId - 数据源public long getDataBaseTime()
使用当前应用的数据源获取数据库的时间。
public self.micromagic.eterna.dao.ResultIterator doQuery(self.micromagic.eterna.dao.Query query,
self.micromagic.eterna.model.AppData appData)
query - 查询对象appData - 线程变量public int doUpdate(self.micromagic.eterna.dao.Update update,
self.micromagic.eterna.model.AppData appData)
update - 更新对象appData - 线程变量public static <T> T newTransInvoke(Callable<T> callback)
T - 返回类型callback - 回调对象public static <T> T newTransInvoke(String dsId, Callable<T> callback)
T - 返回类型dsId - 数据源的idcallback - 回调对象@Deprecated public boolean beginTrans(String dsId)
getConnection(String, boolean)dsId - 数据源的idpublic void endTrans(self.micromagic.eterna.model.AppData appData,
boolean success)
appData - 线程变量success - true则进行提交,false则进行回滚public void endTrans(boolean success)
success - true则进行提交,false则进行回滚public Connection getConnection(boolean needTrans) throws SQLException
needTrans - 是否需要开启事务SQLException - errpublic Connection getConnection(String dsId, boolean needTrans) throws SQLException
dsId - 数据源的idneedTrans - 是否需要开启事务SQLException - errpublic Connection getConnection(String dsId) throws SQLException
注:通过此方式创建的数据库连接默认是不带事务的,除非之前已创建了带事务的连接。
dsId - 数据源的idSQLException - errpublic String getDataSourceId(self.micromagic.eterna.share.EternaFactory factory)
factory - 工厂public static DataSource getDataSource(String dsId)
注:如果通过这个数据源创建的数据库连接需要自行关闭。
dsId - 数据源的idpublic static String getDefaultDataSourceId()
public static SubScript makeRowPermissionSub(IUser user, DataInfo key, int type)
如果用户没有权限则返回null.
user - 当前登录的用户key - 数据信息的键值type - 行权限因子的类型public void setParams(self.micromagic.eterna.dao.Dao dao,
Map<String,?> params,
self.micromagic.eterna.model.AppData appData)
dao - 数据操作对象params - 参数appData - 线程变量public self.micromagic.eterna.dao.ResultIterator doQueryWithEnv(DaoParam param, self.micromagic.eterna.dao.Query query, self.micromagic.eterna.model.AppData appData)
param - 参数query - 查询对象appData - 线程变量Copyright © 2022. All rights reserved.