linuxshmysqlcsv_linux环境下mysql导出CSV格式报表
javasleep方法⼀般情况下不会特意到linux系统上去使⽤mysql, 毕竟没有类似MysqlFront这样现成的操作⼯具。但是产品的线上服务器是linux服务器,没办法,只能硬着头⽪码shell语句来操作了。
⾸先要明确⼀点,拉sql的sql语句和在后台java内部调⽤sql语句的⽬标不同,所以设计⽅法也不同:拉sql注重开发sql语句效率,⽽运⾏效率不必过于在意,所以甚⾄可以⼀张表可以⽤⼏个sql语句来合成
通⽤语句如下:
mysql -u biadmin -sql.rds.aliyuncs -p -e "你需要的sql语句" > ⽂件输出位置
-u 是mysql⽤户名, -h 是主机地址(如果是在本机上操作可以写 "localhost", 远程的话好像就只能写ip地址或者域名了), -e 不在mysql 提⽰符环境下运⾏sql(当然你得每次输⼊密码!)
有⼏点是需要注意的:
1. " "内的sql语句不可以带"`",就是esc键与tab键之间的那个键,我试图把它加进去过,结果就是执⾏语句后程序⼀直suspend在那⾥,如果sql语句字段⾥有特殊意义的字符⽐如 "sum",也只好换个命名⽅式了~~
芈月传玳瑁结局2. sql语句中不可以存在回车键盘,否则系统会以回车键之前的语句作为 输⼊语句,这点⾮常坑爹,每次写好⼀个sql语句还要⼀⾏⼀⾏把它重新排列⼀次。⽬前没什么好的⽅法,我⾃⼰是⽤java把sql语句的 “\n\r” 替换成了空格~~,代码如下:
1 packageutils;
2 importjava.io.BufferedReader;
3 importjava.io.BufferedWriter;
4 importjava.io.File;5
importjava.io.FileReader;6 importjava.io.FileWriter;7 importjava.io.Reader;8 importjava.io.Writer;9
10 public classSqlExport {11怎么设置小程序
12 /**
13 * @Description 以" "拼接源⽂件各⾏并输出⾄⽬标⽂件14 *@paramsrcAddr 源⽂件地址15 *@paramdestAddr ⽬标⽂件地址16 */
17 public voidrmvEnter(String srcAddr, String destAddr) {18 File srcFile = newFile(srcAddr);19 File destFile =
newFile(destAddr);20
21 FileReader sr = null;22 FileWriter dw = null;23 BufferedReader br = null;24 BufferedWriter bw = null;25
26 try{27 if (!ists()) {ateNewFile();29 }30 if (!ists()) {ateNewFile();32 }33 sr = newFileReader(srcFile);34 dw = newFileWriter(destFile);35 br = newBufferedReader(sr);36 bw =
newBufferedWriter(dw);37
38 String str = null;39 /*读⼀⾏,写⼀⾏*/
40 while((str = br.readLine()) != null) {41 str = " " +str;42 bw.write(str);43 }44 bw.flush();45 } catch(Exception e) {46mysql面试题导图
e.printStackTrace();47 } finally{48 closeWriter(bw);49 closeReader(br);50 closeWriter(dw);51 closeReader(sr);52 }53
54 }55
56 private voidcloseReader(Reader rd) {57 if (null !=rd) {58 try{59 rd.close();60 } catch(Exception e) {61
e.printStackTrace();62 }63 }64 }65
66 private voidcloseWriter(Writer wr) {67 if (null !=wr) {68 try{69 wr.close();70 } catch(Exception e) {71
e.printStackTrace();72 }73 }74 }75
76
77 public static voidmain(String[] args) {78 String srcAddr = "C:/Users/pc/Desktop/sql语句库/推荐⼈推⼴明细.sql";79 String destAddr = "C:/Users/pc/Desktop/sql语句库/dest.sql";80
81 newSqlExport().rmvEnter(srcAddr, destAddr);82
83 }84
85 }
View Code
跨表格vlookup怎么用详细步骤3. 其中"⽂件输出位置"可以是不存在的⽂件,该语句会⾃动为你创建并注⼊查询结果,⽬前只试过CSV⽂件,xls格式⽂件还没有试过, 如果想把输出的CSV⽂件转为xls的话,先使⽤excel的⾃⽂本功能格式化CSV⽂件,之后将⽂件另存为excel格式。
4. " "内的sql语句要在最开始加上database选择语句, 否则执⾏shell命令后会报错: no database selected!
威尔斯vs英格兰比分预测
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论