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

📄 sqlutils.java

📁 Spring JDBC的演示程序源代码
💻 JAVA
字号:
package com.xxxxx.common.utils;

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

public class SQLUtils {
	public static Object[] generateInsert(Object obj, String tableName) {
		StringBuffer columnSB = new StringBuffer();
		StringBuffer paramSB = new StringBuffer();
		List params = new ArrayList();

		List fieldList = ReflectionUtils.findNotNullField(obj);
		try {
			for (int i = 0; i < fieldList.size(); i++) {
				Field field = (Field) fieldList.get(i);
				field.setAccessible(true);

				columnSB.append(field.getName());
				if (i != fieldList.size() - 1) {
					columnSB.append(",");
				}
				paramSB.append("?");
				if (i != fieldList.size() - 1) {
					paramSB.append(",");
				}
				params.add(field.get(obj));
			}
		} catch (Exception e) {
			throw new RuntimeException(e);
		}

		StringBuffer sb = new StringBuffer();
		sb.append("insert into ");
		sb.append(tableName);
		sb.append(" (");
		sb.append(columnSB);
		sb.append(") ");
		sb.append("values");
		sb.append(" (");
		sb.append(paramSB);
		sb.append(")");

		return new Object[] { sb.toString(), params.toArray() };
	}

	public static Object[] generateUpdate(Object obj, String tableName,
			String keyColumn) {
		StringBuffer columnSB = new StringBuffer();
		List params = new ArrayList();
		Object keyValue = null;

		List fieldList = ReflectionUtils.findNotNullField(obj);
		try {
			for (int i = 0; i < fieldList.size(); i++) {
				Field field = (Field) fieldList.get(i);
				field.setAccessible(true);

				if (field.getName().equals(keyColumn)) {
					keyValue = field.get(obj);
				} else {
					columnSB.append(field.getName());
					columnSB.append("=?");
					if (i != fieldList.size() - 1) {
						columnSB.append(",");
					}
					params.add(field.get(obj));
				}
			}
		} catch (Exception e) {
			throw new RuntimeException(e);
		}

		if (keyValue == null) {
			throw new IllegalArgumentException("key value for table '" + tableName
					+ "' cannot be null.");
		}else{
			params.add(keyValue);
		}

		StringBuffer sb = new StringBuffer();
		sb.append("update ");
		sb.append(tableName);
		sb.append(" set ");
		sb.append(columnSB);
		sb.append(" ");
		sb.append("where ");
		sb.append(keyColumn);
		sb.append("=?");

		return new Object[] { sb.toString(), params.toArray() };
	}
}

⌨️ 快捷键说明

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