⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sqlclientserviceimpl.java

📁 《j2ee开发全程实录》随书源码
💻 JAVA
字号:
package com.cownew.PIS.base.sqlClient.bizLayer;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.apache.log4j.Logger;

import com.cownew.PIS.base.sqlClient.common.ISQLClientService;
import com.cownew.PIS.framework.bizLayer.BizCtrlImpl;

import com.cownew.PIS.framework.common.metaDataMgr.EntityModelInfo;
import com.cownew.PIS.framework.common.metaDataMgr.IMetaDataLoader;
import com.cownew.PIS.framework.common.services.ISQLExecutor;
import com.cownew.PIS.framework.server.helper.LocalServiceLocator;
import com.cownew.PIS.framework.server.helper.ServerMetaDataLoaderFactory;
import com.cownew.ctk.common.ExceptionUtils;
import com.cownew.ctk.common.RandomGUID;

public class SQLClientServiceImpl extends BizCtrlImpl implements
		ISQLClientService
{
	private static Logger logger = Logger.getLogger(SQLClientServiceImpl.class);

	public void buildEntityInfoIndex()
	{
		ISQLExecutor sqle = (ISQLExecutor) LocalServiceLocator.getInstance()
				.getService(ISQLExecutor.class);

		// 清除原有数据
		try
		{
			sqle.execute("delete from T_BS_EntityInfoIndex");
			IMetaDataLoader metaDataLoader = ServerMetaDataLoaderFactory
					.getLoader();
			List ePathList = metaDataLoader.loadAllEntityPath();
			for (int i = 0, n = ePathList.size(); i < n; i++)
			{
				String path = ePathList.get(i).toString();
				EntityModelInfo eInfo = metaDataLoader
						.loadEntityByEntityPath(path);
				StringBuffer sql = new StringBuffer();
				sql.append("insert into T_BS_EntityInfoIndex\n");
				sql.append("(FId,FName,FPackageName,FALias,FTableName)\n");
				sql.append("values(?,?,?,?,?)\n");
				sqle.execute(sql.toString(), new Object[] {
						new RandomGUID().toString(), eInfo.getName(),
						eInfo.getPackageName(), eInfo.getAlias(),
						eInfo.getTableName() });
				eInfo = null;
			}
		} catch (SQLException e)
		{
			throw ExceptionUtils.toRuntimeException(e);
		}
	}

	public boolean isEntityInfoIndex()
	{
		ISQLExecutor sqle = (ISQLExecutor) LocalServiceLocator.getInstance()
				.getService(ISQLExecutor.class);

		// 实际运行的系统中不可能一条元数据都没有,因此只要T_BS_EntityInfoIndex表中没有数据,则就认为索引表没有初始化
		try
		{
			ResultSet rs = sqle
					.execute("select top 1 * from T_BS_EntityInfoIndex");
			return rs.next();
		} catch (SQLException e)
		{
			logger.error("", e);
			return false;
		}
	}

	public String[] generateCreateSQL()
	{
		IMetaDataLoader metaLoader = ServerMetaDataLoaderFactory.getLoader();
		List metaPathList = metaLoader.loadAllEntityPath();
		String[] sqls = new String[metaPathList.size()];
		for (int i = 0, n = metaPathList.size(); i < n; i++)
		{
			String metaPath = (String) metaPathList.get(i);
			EntityModelInfo eInfo = metaLoader.loadEntityByEntityPath(metaPath);
			sqls[i] = EntitySQLCreator.generateCreateSQL(eInfo);
			metaPath = null;
			eInfo = null;
		}
		return sqls;
		// Configuration config = HibernateConfig.getConfiguration();
		// Dialect dialect = config.buildSettings().getDialect();
		// return config.generateSchemaCreationScript(dialect);
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -