jdbc 将一个表中的数据提出插入另一个新的表中。菜鸟求解答。

publicclassfprojectcon{//创建数据库连接publicstaticConnectiongetConnection()throwsSQLExcepti... public class fprojectcon {
//创建数据库连接
public static Connection getConnection() throws SQLException,
java.lang.ClassNotFoundException{

return con;

}
public static void main(String[] args){

// TODO Auto-generated method stub

//creat con to get sql_statement

try{

Connection con = getConnection();
//创建第一个事件,用于查询第一个表中的数据
Statement sql_statement = con.createStatement();

// sql语句在表apv中查找所有tools类的app
String query = "SELECT * from apv_2013all where category = 'TOOLS' ";
//sql语句,将得到的数据插入新的表单中
String query1 = "insert into app_tools (package_name,category) values ('";

//执行查找语句
ResultSet result = sql_statement.executeQuery(query);

System.out.println("here is the data:");
int a = 0;

while (result.next()){

//提出想要的字段packagename以及category
String packagename = result.getString("package_name");
String category = result.getString("category");

//完整新的sql语句用于插入新表apptools
String query_insert = query1+ packagename+"','"+category+"')";
System.out.println(query_insert);

//语句执行完毕后,等待命令
result.last();

//创建一个新的事件,用于插入表单sql语句
Statement sql_statement1 = con.createStatement();

System.out.println("---------" + a++);

}

sql_statement.close();
con.close();

} catch (java.lang.ClassNotFoundException e){

System.err.println("ClassNotFoundException");

System.err.println(e.getMessage());

} catch(SQLException ex){

System.err.println("SQLException " + ex.getMessage());
}
}
}

这里面有个逻辑错误,当我查询,插入第一条数据的时候实际上事物就已经关闭了,无法继续进行。
请问如何更正?
展开
 我来答
开发者经验库
2014-04-12 · TA获得超过383个赞
知道小有建树答主
回答量:465
采纳率:0%
帮助的人:293万
展开全部
你不能一边查询一边插入的。
可以把查询与插入的句子合并成一句。
SELECT *
INTO new_table_name
FROM old_tablename
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
thinking___
2018-07-27 · TA获得超过565个赞
知道小有建树答主
回答量:357
采纳率:100%
帮助的人:100万
展开全部
while (result.next()){
//提出想要的字段packagename以及category
String packagename = result.getString("package_name");
String category = result.getString("category");
//完整新的sql语句用于插入新表apptools
String query_insert = query1+ packagename+"','"+category+"')";
System.out.println(query_insert);
//语句执行完毕后,等待命令
result.last(); <---------【执行这一句的意思是跳到结尾,自然就没有next()了;不知道这句本意是啥,删掉吧】
//创建一个新的事件,用于插入表单sql语句
Statement sql_statement1 = con.createStatement();
System.out.println("---------" + a++);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-04-11
展开全部
select a,c INTO Table2 from Table1
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式