public abstract class GenericServiceImpl<T> implements GenericService<T>
{
private final static GyLogger logger = GyLogger.getLogger(GenericServiceImpl.class);
@Autowired
SolrServerService solrServerService;
String coreName = null;
public GenericServiceImpl() {
initCoreName();
}
/**
* It used to obtain current core name
*/
protected abstract void initCoreName();
/**
*
* @param coreName
*/
protected void setCoreName(String coreName) {
this.coreName = coreName;
}
@Override
public void add(T obj)
{
try
{
solrServerService.add(coreName, obj);
logger.info("Success to add index ["+obj.toString()+ "] for core "+coreName);
} catch (Exception e)
{
logger.error("Fail to add index ["+obj.toString()+ "] for core "+coreName+" due to:"+e.toString());
}
}
@Override
public void delete(String id)
{
try
{
solrServerService.delete(coreName, id);
logger.info("Success to delete index ["+id+ "] for core "+coreName);
}
catch (Exception e)
{
logger.error("Fail to delete index ["+id+ "] for core "+coreName+" due to:"+e.toString());
}
}
@Override
public void batchAdd(List<T> list)
{
try
{
solrServerService.batchAdd(coreName, list);
logger.info("Success to batchAdd index ["+list.size()+ "] for core "+coreName);
}
catch (Exception e)
{
logger.error("Fail to batchAdd ["+list.size()+ "] index for core "+coreName+" due to:"+e.toString());
}
}
@Override
public void batchDelete(List<String> idList)
{
try
{
solrServerService.batchDelete(coreName, idList);
logger.info("Success to batchDelete ["+idList.size()+ "] index for core "+coreName);
}
catch (Exception e)
{
logger.error("Fail to batchDelete ["+idList.size()+ "] index for core "+coreName+" due to:"+e.toString());
}
}
@Override
public void batchUpdate(List<IndexUpdate> updateModels)
{
if(updateModels == null || updateModels.isEmpty())
{
return ;
}
List<SolrInputDocument> solrDocs = new ArrayList<SolrInputDocument>();
for(IndexUpdate model: updateModels)
{
SolrInputDocument solrDoc = new SolrInputDocument();
for(Label field:model.getFields())
{
Map<String, Object> map = new HashMap<String, Object>();
map.put(model.getMode().getValue(), field.getValue());
solrDoc.addField(field.getKey(), map);
}
solrDoc.addField("id", model.getId());
solrDocs.add(solrDoc);
}
try
{
solrServerService.updateValues(coreName, solrDocs);
logger.info("Success to batchUpdate ["+solrDocs.size()+ "] index for core "+coreName);
}
catch (Exception e)
{
logger.error("Fail to batchUpdate ["+solrDocs.size()+ "] index for core "+coreName+" due to:"+e.toString());
}
}
@Override
public void update(IndexUpdate updateModel)
{
if(updateModel == null)
{
return ;
}
SolrInputDocument solrDoc = new SolrInputDocument();
for(Label field:updateModel.getFields())
{
Map<String, Object> map = new HashMap<String, Object>();
map.put(updateModel.getMode().getValue(), field.getValue());
solrDoc.addField(field.getKey(), map);
}
solrDoc.addField("id", updateModel.getId());
List<SolrInputDocument> solrDocs = new ArrayList<SolrInputDocument>();
solrDocs.add(solrDoc);
try
{
solrServerService.updateValues(coreName, solrDocs);
logger.info("Success to update ["+solrDoc.toString()+ "] index for core "+coreName);
}
catch (Exception e)
{
logger.error("Fail to update ["+solrDoc.toString()+ "] index for core "+coreName+" due to:"+e.toString());
}
}
}
相关推荐
-- 首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba --然后,解除对scott用户的锁 alter user scott account unlock; ... --(默认全局数据库名orcl) 1、select ename, sal * 12 from ...
BACKUP DATABASE database-name TO backup-device; ``` - **示例**: ```sql USE master; EXEC sp_addumpdevice 'disk', 'testBackup', 'c:\mssql7backup\MyNwind_1.dat'; BACKUP DATABASE pubs TO testBackup...
- 删除索引:`drop index idx_id on table1;` 或 `alter table table1 drop index ind_id;` 11. 字符串函数与查询操作 - 使用`concat`函数联合字符或多个列:`select concat(id, ':', name, '=') from students;`...
CREATE INDEX idx_username ON users(username); ``` **4.4 事务** - **语法**: ```sql START TRANSACTION; -- 执行一系列更新操作 COMMIT; ``` - **示例**: ```sql START TRANSACTION; UPDATE users ...
- `db2 "BACKUP DATABASE DATABASE_NAME TO backup_directory"`:备份数据库。 - `db2 "RESTORE DATABASE DATABASE_NAME FROM backup_directory"`:恢复数据库。 - `db2 "RESTORE TABLESPACE tablespace_name ...
- 创建索引使用`CREATE INDEX`,如`CREATE INDEX idx_name ON mytable (name);` 7. **视图(View)** - 视图是虚拟表,不存储数据,而是基于一个或多个表的查询结果。视图可以简化复杂的查询并提供数据的安全性。...
3. 删除索引:`DROP INDEX idx_name ON table_name;` 七、事务处理 MySQL支持事务,用于确保数据的一致性和完整性。例如: ```sql START TRANSACTION; -- 执行SQL操作 COMMIT; -- 提交事务 ROLLBACK; -- 回滚事务 `...
CREATE INDEX idx_student_name ON student (name); ``` #### 二、SQL Server 2000 中的数据类型与 T-SQL 数据定义语句 **1. 数据类型** - **CHAR**: 定长字符串。 - **VARCHAR**: 变长字符串。 - **INT**: ...
exp username/password@instance buffer=buffer_size file=backup_file_path full=y [ignore=y] [compress=y] [log=log_file_path] ``` - **参数说明**: - `username/password`: 登录用户名和密码。 - `...
创建一个备份设备,例如 EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'; 2. 开始备份:BACKUP DATABASE database_name TO device_name 开始备份数据库,例如 BACKUP DATABASE pubs TO...
- `BACKUP DATABASE databaseName TO DISK = 'backup_path\file_name.bak'` 创建数据库备份。 18. **修复和日志管理**: - `DBCC CHECKDB (databaseName)` 检查数据库完整性。 - `DBCC LOGINFO` 显示日志文件...
- `mysqldump -u username -p db_name > backup.sql` 备份数据库。 - `mysql -u username -p db_name 从备份文件恢复。 11. **权限管理** - `GRANT ALL PRIVILEGES ON db_name.* TO 'username'@'localhost' ...
CREATE INDEX idx_name ON Students (name); ``` - 主键约束:`PRIMARY KEY`确保列的唯一性。 - 外键约束:SQLite3支持外键,但需要开启特定的编译选项。 ``` CREATE TABLE Courses ( id INTEGER PRIMARY KEY, ...
- **命令**:`db2 "BACKUP DATABASE <databasename> ONLINE TO <path> WITH 2 BUFFERS BUFFER 1024 INCLUDE LOGS WITHOUT PROMPTING"` - **说明**:在数据库不停机的情况下进行备份。 - **恢复数据库** - **...
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'; ``` - 执行备份: ``` BACKUP DATABASE pubs TO testBack; ``` - **说明**: - **创建备份设备**: 在执行备份之前需要先创建一个...
EXEC sp_addumpdevice 'disk', 'testBackup', 'C:\mssql7backup\MyNewWin_1.dat'; ``` - **备份数据库** ```sql BACKUP DATABASE pubs TO testBackup; ``` - **创建表** ```sql CREATE TABLE tab_name ( ...
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat';` - **执行备份**: 使用`BACKUP DATABASE`语句进行备份。 - 命令格式: `BACKUP DATABASE db_name TO device_name;` - **示例**: `...
- 例如:`CREATE INDEX idx_students_name ON students (name);`。 #### 七、备份与恢复 - **备份数据库**: - 使用`mysqldump`工具进行备份。 - 例如:`mysqldump -u 用户名 -p mydb > backup.sql`。 - **...
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat';` - 执行备份: `BACKUP DATABASE pubs TO testBack;` - **说明**: 这些命令用于备份SQL Server数据库到指定的位置。 - **示例**: - ...