求教java操作数据库 我要写一个用java对mysql数据库进行备份和打包转移请问各位大大有什么源码进行参考吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 本地备份 1. public boolean backup() {//备份 2. 3. try { 4. Runtime rt = Runtime.getRuntime(); 5. 6. String mysql = "mysqldump -uroot -p123456 db"; 7. 8. // 调用 mysql 的 cmd: 9. Process child = rt 10. .exec("cmd /c "+mysql);// 设置导出编码为utf8。这里必须是utf8 11. 12. // 把进程执行中的控制台输出信息写入.sql文件,即生成了备份文件。注:如果不对控制台信息进行读出,则会导致进程堵塞无法运行 13. InputStream in = child.getInputStream();// 控制台的输出信息作为输入流 14. 15. InputStreamReader xx = new InputStreamReader(in, "utf8");// 设置输出流编码为utf8。这里必须是utf8,否则从流中读入的是乱码 16. 17. String inStr; 18. StringBuffer sb = new StringBuffer(""); 19. String outStr; 20. // 组合控制台输出信息字符串 21. BufferedReader br = new BufferedReader(xx); 22. while ((inStr = br.readLine()) != null) { 23. sb.append(inStr + "\r\n"); 24. } 25. outStr = sb.toString(); 26. 27. // 要用来做导入用的sql目标文件: 28. FileOutputStream fout = new FileOutputStream( 29. "c:/db.sql"); 30. OutputStreamWriter writer = new OutputStreamWriter(fout, "utf8"); 31. writer.write(outStr); 32. // 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免 33. writer.flush(); 34. 35. // 别忘记关闭输入输出流 36. in.close(); 37. xx.close(); 38. br.close(); 39. writer.close(); 40. fout.close(); 41. 42. System.out.println("/* Output OK! */"); 43. 44. String error="备份成功!"; 45. 46. StrError = (new String(error.getBytes("ISO-8859-1"),"UTF-8")); 47. 48. } catch (Exception e) { 49. e.printStackTrace(); 50. StrError=StrError+"failure!<br>"; 51. } 52. 53. return true; 54. } 55. 56. public boolean load() {//还原 57. 58. try { 59. 60. String fPath = "c:/db.sql"; 61. Runtime rt = Runtime.getRuntime(); 62. 63. // 调用 mysql 的 cmd: 64. Process child = rt.exec("mysql -uroot -p123456 db "); 65. OutputStream out = child.getOutputStream();//控制台的输入信息作为输出流 66. String inStr; 67. StringBuffer sb = new StringBuffer(""); 68. String outStr; 69. BufferedReader br = new BufferedReader(new InputStreamReader( 70. new FileInputStream(fPath), "utf8")); 71. while ((inStr = br.readLine()) != null) { 72. sb.append(inStr + "\r\n"); 73. } 74. outStr = sb.toString(); 75. 76. OutputStreamWriter writer = new OutputStreamWriter(out, "utf8"); 77. writer.write(outStr); 78. // 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免 79. writer.flush(); 80. // 别忘记关闭输入输出流 81. out.close(); 82. br.close(); 83. writer.close(); 84. 85. 86. System.out.println("/* Load OK! */"); 87. StrError=StrError+"备份成功!<br>".getBytes("gb2312"); 88. } catch (Exception e) { 89. e.printStackTrace(); 90. StrError=StrError+"failure!<br>"; 91. } 92. return true; 93. } java基础问题:循环以及获取某位数值。 JDK7的comparator出现未知异常,求解含义,谢谢。 求Jmock高手解答!!! 【正则表达式求助】: 寻找所有匹配 有个小问题 急问,如何判断标签的值 用java写个嗅探程序 concurrent.jar 包是做什么用的? 请教JTree中怎么任意设置TreeNode的图标? 不用JDBC-ODBC连接oracle数据库? JAVA编译中出现的问题,急急急!请指教 关于面向对象的思想解决数三退一算法
1. public boolean backup() {//备份
2.
3. try {
4. Runtime rt = Runtime.getRuntime();
5.
6. String mysql = "mysqldump -uroot -p123456 db";
7.
8. // 调用 mysql 的 cmd:
9. Process child = rt
10. .exec("cmd /c "+mysql);// 设置导出编码为utf8。这里必须是utf8
11.
12. // 把进程执行中的控制台输出信息写入.sql文件,即生成了备份文件。注:如果不对控制台信息进行读出,则会导致进程堵塞无法运行
13. InputStream in = child.getInputStream();// 控制台的输出信息作为输入流
14.
15. InputStreamReader xx = new InputStreamReader(in, "utf8");// 设置输出流编码为utf8。这里必须是utf8,否则从流中读入的是乱码
16.
17. String inStr;
18. StringBuffer sb = new StringBuffer("");
19. String outStr;
20. // 组合控制台输出信息字符串
21. BufferedReader br = new BufferedReader(xx);
22. while ((inStr = br.readLine()) != null) {
23. sb.append(inStr + "\r\n");
24. }
25. outStr = sb.toString();
26.
27. // 要用来做导入用的sql目标文件:
28. FileOutputStream fout = new FileOutputStream(
29. "c:/db.sql");
30. OutputStreamWriter writer = new OutputStreamWriter(fout, "utf8");
31. writer.write(outStr);
32. // 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免
33. writer.flush();
34.
35. // 别忘记关闭输入输出流
36. in.close();
37. xx.close();
38. br.close();
39. writer.close();
40. fout.close();
41.
42. System.out.println("/* Output OK! */");
43.
44. String error="备份成功!";
45.
46. StrError = (new String(error.getBytes("ISO-8859-1"),"UTF-8"));
47.
48. } catch (Exception e) {
49. e.printStackTrace();
50. StrError=StrError+"failure!<br>";
51. }
52.
53. return true;
54. }
55.
56. public boolean load() {//还原
57.
58. try {
59.
60. String fPath = "c:/db.sql";
61. Runtime rt = Runtime.getRuntime();
62.
63. // 调用 mysql 的 cmd:
64. Process child = rt.exec("mysql -uroot -p123456 db ");
65. OutputStream out = child.getOutputStream();//控制台的输入信息作为输出流
66. String inStr;
67. StringBuffer sb = new StringBuffer("");
68. String outStr;
69. BufferedReader br = new BufferedReader(new InputStreamReader(
70. new FileInputStream(fPath), "utf8"));
71. while ((inStr = br.readLine()) != null) {
72. sb.append(inStr + "\r\n");
73. }
74. outStr = sb.toString();
75.
76. OutputStreamWriter writer = new OutputStreamWriter(out, "utf8");
77. writer.write(outStr);
78. // 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免
79. writer.flush();
80. // 别忘记关闭输入输出流
81. out.close();
82. br.close();
83. writer.close();
84.
85.
86. System.out.println("/* Load OK! */");
87. StrError=StrError+"备份成功!<br>".getBytes("gb2312");
88. } catch (Exception e) {
89. e.printStackTrace();
90. StrError=StrError+"failure!<br>";
91. }
92. return true;
93. }