package com.yanzuoguang.mq.dao.impl; import com.yanzuoguang.dao.impl.BaseDaoImpl; import com.yanzuoguang.db.DbExecute; import com.yanzuoguang.mq.dao.QueueServerDao; import com.yanzuoguang.mq.vo.QueueServerVo; import com.yanzuoguang.util.vo.MapRow; import org.springframework.stereotype.Component; import java.util.List; /** * 服务器关联消息队列 * * @author 颜佐光 */ @Component public class QueueServerDaoImpl extends BaseDaoImpl implements QueueServerDao { private static final String QUERY_TABLE_SQL = "SHOW TABLES LIKE 'queue_server'"; private static final String CREATE_TABLE_SQL = "CREATE TABLE `queue_server` (" + " `serverId` varchar(32) NOT NULL COMMENT '服务Id'," + " `queueName` varchar(255) NOT NULL DEFAULT '' COMMENT '消息编号'," + " `queueServer` varchar(255) NOT NULL DEFAULT '' COMMENT '交换器'," + " PRIMARY KEY (`serverId`)," + " KEY `IndexNameServer` (`queueName`,`queueServer`)" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='服务器关联消息队列'"; @Override protected void init() { cacheList.setClearSecond(2); register(QueueServerVo.class); } @Override protected void initExecute(DbExecute db) { List<MapRow> tables = db.query(QueueServerDaoImpl.class, "QUERY_TABLE_SQL", QUERY_TABLE_SQL); if (tables.isEmpty()) { db.update(QueueServerDaoImpl.class, "CREATE_TABLE_SQL", CREATE_TABLE_SQL); } } }