conn.prepareStatement("insert into MYTEST_COPY values(?,?,?,?,?)");
[code="java"]String tableName = "base_customer";
//getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern)
List columnNameList = new ArrayList();
ResultSet rs = conn.getMetaData().getColumns(null, null, tableName, "%");
while(rs.next()) {
columnNameList.add(rs.getString(4));
}
StringBuilder s = new StringBuilder("insert into ");
s.append("insert into ");
s.append(tableName);
s.append(" values(");
for(int i = 0; i < columnNameList.size(); i++) {
if(i > 0) {
s.append(",");
}
s.append("?");
}
s.append(")");
System.out.println(s.toString());[/code]
加上对应的 字段 ,这样你给表 添加相应的 字段的时候,设置一个默认值 ,就OK l
[code="java"]conn.prepareStatement("insert into MYTEST_COPY(id,name,pwd,address,user) values(?,?,?,?,?)");
[/code]
不用修改表的情况下:
SELECT vale1, value2 into Table2 from Table1
Table2 不用存在
SELECT INTO FROM语句创建表Table2并复制数据
我理解错了。。哥们表达有问题。应该这么说:
insert 怎么现在?代表的列
要么对?加上对应的字段,要么表中有几个字段,?就出现几个
ORM得了!
首先你create了一个prepareStatement,之后必然会对prepareStatement进行做set的操作的对吧,那么应该也可以知道具体要进行多少次次set,那么直接将?,?,?,?替换成根据set次数自动生成?,字符串的方法不就可以了么
只有不改变列的个数就ok了...
insert into MYTEST_COPY() values(?,?,?,?,?)
表后跟一个括号, 括号里边写字段名, 跟后边的问好一一对应即可。