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());
}
}
}
这里面有个逻辑错误,当我查询,插入第一条数据的时候实际上事物就已经关闭了,无法继续进行。
请问如何更正? 展开
//创建数据库连接
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());
}
}
}
这里面有个逻辑错误,当我查询,插入第一条数据的时候实际上事物就已经关闭了,无法继续进行。
请问如何更正? 展开
3个回答
展开全部
你不能一边查询一边插入的。
可以把查询与插入的句子合并成一句。
SELECT *
INTO new_table_name
FROM old_tablename
可以把查询与插入的句子合并成一句。
SELECT *
INTO new_table_name
FROM old_tablename
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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++);
}
//提出想要的字段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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询