数据表多字段时数据插入的总结

在开发中我们需要经常使用SQL语句执行数据插入,最常出现的情况是数据表字段不多的时候,那个时候写写sql语句似乎很简单,但是有一天你会发现,你有个数据表,数据表字段有几百个,如果必须使用insert into TB_Table ('字段一','字段二','字段三',....) values(?,?,?,.....);来完成数据的插入,那么这样的sql语句难度不大,但是特别繁琐,那么有什么办法可以解决呢?

直接贴代码。。。。。。。。。。。。。。。。。。

        /**
	 * 保存数据<br>
	 * 
	 * @param tableName 表名
	 * @param data 要保存的数据
	 * @return 返回保存结果。
	 */
	public int insert(String tableName, Map<String, String> data) {
		StringBuilder sql = new StringBuilder(500);
		sql.append("select * from ").append(tableName);
		SqlRowSet srs = this.getJdbcTemplate().queryForRowSet(sql.toString());
		SqlRowSetMetaData srsmd = srs.getMetaData();
		int columnCount = srsmd.getColumnCount();
		
		StringBuilder fields = new StringBuilder(500);
		StringBuilder values = new StringBuilder(500);
		Object[] params = new Object[columnCount];
		for (int i = 1; i <= columnCount; i++) {
			String columnName = srsmd.getColumnName(i);
			String columnValue = StringUtil.formatNullString(data.get(columnName));
			
			if (i != columnCount) {
				fields.append(columnName).append(",");
				values.append("?,");
			} else {
				fields.append(columnName);
				values.append("?");
			}
			params[i - 1] = columnValue;
		}
		
		if (columnCount > 0) {
			sql = new StringBuilder(500);
			sql.append("insert into ").append(tableName).append(" (").append(fields).append(")");
			sql.append(" values (").append(values).append(")");
			return this.update(sql.toString(), params);
		} else {
			return 0;
		}
	}

这是今天的总结,虽然不是那么牛,也许效率不高,但是解决了大量手工输入的问题。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值