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

📄 abstractinsertsql.java

📁 羽量级数据持久层开发框架
💻 JAVA
字号:
package org.speedframework.sql;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

import org.speedframework.exception.SpeedFrameworkException;
import org.speedframework.utilities.PropertiesUtil;
import org.speedframework.utilities.StringUtils;

/**
 * @author lizf
 * @version 1.0
 * @created 31-ʮ��-2007 17:19:29
 */
public abstract class AbstractInsertSQL extends AbstractCommonSQL implements
		IInsertSQL {

	public String getSQL() {
		StringBuffer ins_sql = new StringBuffer();
		StringBuffer value_sql = new StringBuffer();				
		List keyList = new ArrayList();
		try {
			ins_sql.append("insert into " + this.getTableName() + "(");
			value_sql.append("(");

			Field[] fields = this.tableObject.getClass().getDeclaredFields();

			for (int i = 0; i < fields.length; i++) {
				String column_ = StringUtils.getField(fields[i]);

				if (!column_.toLowerCase().equals("serialversionuid")) {
					Object value = PropertiesUtil.getProperty(this.tableObject,
							column_);

					if ((value != null) && !value.toString().equals("")) {
						keyList.add(column_);
					}
				}
			}

			for (int i = 0; i < keyList.size(); i++) {
				if (i < (keyList.size() - 1)) {
					ins_sql.append(keyList.get(i).toString() + ",");
					value_sql.append("?,");
				} else {
					ins_sql.append(keyList.get(i).toString() + ")");
					value_sql.append("?)");
				}
			}

			ins_sql.append(" values " + value_sql.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}

		return ins_sql.toString();
	}

	public List getParam(String SQL) {
		SQL = SQL.toLowerCase();

		String body = SQL.substring(SQL.indexOf("(") + 1, SQL.indexOf(")"));
		String[] bodys = SQL.split("values");
		String parms = bodys[bodys.length - 1];
		String sub_parm = parms.substring(parms.indexOf("(") + 1, parms
				.lastIndexOf(")"));
		List parm_list = new ArrayList();
		String[] column_body = body.split(",");
		String[] parm_ = sub_parm.split(",");

		for (int i = 0; i < parm_.length; i++) {
			String column_ = parm_[i].trim();

			if (column_.indexOf("(") != -1) {
				for (int turn = 0; turn < parm_.length; turn++) {
					if (!StringUtils.checkMatching(column_)) {
						column_ = column_ + "," + parm_[i + 1];
						i = i + 1;

						continue;
					} else {
						parm_list.add(column_);
						column_ = null;

						break;
					}
				}
			} else {
				parm_list.add(column_);
				column_ = null;
			}
		}

		if (column_body.length != parm_list.size()) {
			throw new SpeedFrameworkException(
					"SQL Error:column not match the value-->" + SQL);
		}

		List set_list = new ArrayList();

		for (int i = 0; i < column_body.length; i++) {
			if (parm_list.get(i).toString().indexOf("?") != -1) {
				set_list.add(column_body[i]);
			}
		}

		return set_list;
	}

}

⌨️ 快捷键说明

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