数据表多字段时数据插入的总结
2016-11-23 19:40
162 查看
在开发中我们需要经常使用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; } }
这是今天的总结,虽然不是那么牛,也许效率不高,但是解决了大量手工输入的问题。
相关文章推荐
- SQL Server编程必知必会(插入/删除/更新数据,视图) -- (80-85 点总结)
- Sqlite 常用函数封装:修改密码,创建数据库、获取表段、字段,取值、插入、删除数据、执行Sqlite指令
- c#向数据库中插入xml数据类型的字段
- Swift - SQLite中Data类型数据的插入、读取(BLOB类型字段)
- PHP ThinkPHP补充。插入(修改)数据时,对默认字段进行自动填充;form表单字段映射成合法字段;"瞻前顾后机制"
- 在向"带有自增字段的数据库表"中插入数据时,自定义"该自增字段"的数据
- [转] 用ROW_NUMBER()实现取指定行的数据 和从一个表中向另一个表中插入数据并实现某字段每行递增
- 把表中的某个字段格式如:2,3,4的数据分别插入到另一个表中
- sql server 中遇到表中有自动增长的字段,如何插入数据
- mysql中如何判断指定字段的重复数据则不插入?
- 在JAVA中,把数据插入数据库字段类型为DATA方法
- mysql5.7基础 insert 插入int类型的字段中的数据可以用单引号包裹
- mysql5.7基础 insert 表中含有自动增长的字段,插入数据时用NULL
- JDBC 3种获得mysql插入数据的自增字段值的方法
- mysql 触发器 监听这个表插入时增加数据 在某字段变动时进行触发
- (转)MyBatis在插入的数据有空值时,可能为空的字段都要设置jdbcType
- iOS 将一个数组中的数据插入到另一个数组中~总结
- Mybatis_插入数据后返回主键ID_返回数据字段与类中字段相对应
- 如何字段是关键字的情况下向Mysql中插入数据
- 并发下,使用redis防止数据重复插入(数据库未对表字段设置唯一情况下)