NutzCN Logo
问答 目前项目是先加载数据库里面的数据,后创建bean对象的注入的表.但是我希望先创建表,后再加载数据库的东西
发布于 2355天前 作者 qq_e86802e0 1743 次浏览 复制 上一个帖子 下一个帖子
标签:
public class MainSetup implements Setup{

	private static final Logger log = Logger.getLogger(MainSetup.class);

	@Override
	public void destroy(NutConfig conf) {
		// TODO Auto-generated method stub

	}

	@Override
	public void init(NutConfig conf) {
		log.info("MainSetup init ----------------------");
		Ioc ioc = conf.getIoc();
		Dao backendDao = ioc.get(Dao.class,"backendDao");//后台数据库连接

		log.info("后台数据库连接 配置读取 backendDao:" + backendDao);

		Dao publicServerDao = ioc.get(Dao.class,"daoPublic");//公共数据库
		Daos.createTablesInPackage(backendDao, "com.backend", false);
		ioc.get(NutQuartzCronJobFactory.class);

		log.info("公共数据库 配置读取 publicServerDao:" + publicServerDao);

		//计时任务处理
		TaskTimerService taskTimer = ioc.get(TaskTimerService.class);
		LoginServerManager.getInstance().init(backendDao,publicServerDao);//初始化LS长连接
		PlatformServerManager.getInstance().init(backendDao,publicServerDao);//初始化平台信息
		LogUtil.getInstance().init(backendDao);//初始化后台操作日志
		ServerListManager.getInstance().init(backendDao);
		PermitIpListManager.getInstance().init(backendDao);
		DayBuyRechargeManager.getInstance().init(backendDao);
		CyAnnouceManager.getInstance().initData(backendDao);
		LogFieldManager.getInstance().load();
		ItemManger.getInstance().init(backendDao);
		MoneyManager.getInstance().init(backendDao);
		RankManager.getInstance().init(backendDao);
		TaskManager.getInstance().init(backendDao); 
		SoulManager.getInstance().init(backendDao);
		CopyMapManager.getInstance().init(backendDao); 
		WingManager.getInstance().init(publicServerDao); 
		DailyActivityManager.getInstance().init(backendDao); 
		QueryUtil.getInstance().init(backendDao);
		ChangeReasonManager.getInstance().init(backendDao);
		ServerSwitchManager.getInstance().init(backendDao);
		LanguageManger.getInstance().init(backendDao);
		
		List<Integer> list = new ArrayList<>();
		list.addAll(CyAnnouceManager.getInstance().getAnnouceList().keySet());

		for( Integer nn : list){
			taskTimer.StartAnnounceTask(1,nn);//启动计时线程
		}
		

		log.info("MainSetup success ----------------------");

	}

这是我启动的时候需要加载的东西,现目前项目是先加载数据库里面的数据,后创建bean对象的注入的表.但是我希望先创建表,后再加载数据库的东西,但是不知道在哪里弄,还请老师指教一下

4 回复

不知道你这样想的目的是什么

@Table("t_wing")
public class WingInfo{

	@Id
	@Column
	@Comment("翅膀配置ID")
	private int id;
	
	@Column
	@Comment("翅膀名")
	private String name;
}

比如说,这样的对象,如果数据库里面没有这个t_wing表的话,会先创建这个表.然后现目前我的项目是是先去数据库查询这个表,但是程序还没运行到创建这个表这个里,所以会异常,也就说,我希望先创建这个表,然后在进行数据库的查询处理,但是不知道在那里处理这个事情

Daos.createTablesInPackage(backendDao, "com.backend", false);

这不已经有建表的语句吗? 难道你的某些操作在这个createTablesInPackage之前???

谢谢老师,我找到原因了,

添加回复
请先登陆
回到顶部