java中怎么执行数据库中两个表之间行的复制?

来源:百度知道 编辑:UC知道 时间:2024/05/24 12:31:45
我用java把数据库中一个表的内容显示在一个面板上,然后选中其中的一行,想把这一行存到该数据库的另一个表中,但是按照我下面的程序运行之后,却把全部的行都复制进去了,我实在看不出来怎么错了呀,求告手指教!
代码:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn1=DriverManager.getConnection("jdbc:odbc:fapiao","","");
Statement st=conn1.createStatement();
int i = table.getSelectedRow(); //找出选定的行号
String s1 = table.getValueAt(i, 4).toString(); //表中第5列是主键

String condition = "insert into fpck select * from fprk where 'fpshm=s1'"; //fprk是原表,fpck是要复制进去的表

st.executeUpdate(condition);
为什么复制进去的是整个表的结果啊?是不是sql语句有问题啊?谢谢啦!

insert into fpck select * from fprk where 'fpshm=s1'";
'fpshm=s1'这里的''应该改为fpshm='"+s1+"' 主要是s1在此处来讲是变量
要不然的话条件可能就有where 1 = 1的感觉

不清楚!
SQL加个括号试试!
insert into fpck (select * from fprk where 'fpshm=s1')

String condition = "insert into fpck select * from fprk where 'fpshm=s1'"
改为 fpshm='s1'试试,或者 表名.fpshm='s1'试试