import java.io.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Demo {
//獲取輸入
static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
menu();
}
// 菜單欄
public static void menu() {
boolean istrue = true;
do {
System.out.println();
System.out.println("************技能編排*************");
System.out.println("1.查詢");
System.out.println("2.刪除");
System.out.println("3.下載");
System.out.println("4.退出");
System.out.println("請進行操作選擇!");
String chance = input.next();
switch (chance) {
case "1":
//查詢
query();
break;
case "2":
//刪除
del();
break;
case "3":
//下載
download();
break;
case "4":
istrue = false;
quit();
break;
default:
break;
}
} while (istrue);
}
// 查詢
public static void query() {
System.out.println("請輸入要查詢的userId");
String userId = input.next();
List<Skill> skillList = getSkillList(userId);
if (!skillList.isEmpty()) {
System.out.println("你要查詢的信息已找到!");
System.out.println("|userId|shareId|skillLIst|");
for (Skill skill : skillList) {
System.out.println("|" + skill.getUserId() + "|"
+ skill.getShareId() + "|" + skill.getSkillList() + "|");
}
} else {
System.out.println("你要查詢的userId 無數據!");
}
}
// 下載
public static void download() {
System.out.println("請輸入要下載的userId");
String userId = input.next();
//查詢數據
List<Skill> skillList = getSkillList(userId);
if (!skillList.isEmpty()) {
System.out.println("請設置文件名稱,同名文件會覆蓋哦");
//字段名列
List<Object> exportData = new ArrayList<Object>();
exportData.add("userId");
exportData.add("shareId");
exportData.add("skillList");
//數據列
List<List<Object>> datalist = new ArrayList<List<Object>>();
for (Skill skill : skillList) {
List<Object> data=new ArrayList<Object>();
data.add(skill.getUserId());
data.add(skill.getShareId());
data.add(skill.getSkillList());
datalist.add(data);
}
String fileName = input.next();
String path = "/Users/lidoujiao/Desktop";
createCSVFile(exportData,datalist,path,fileName);
System.out.println("OK!");
} else {
System.out.println("你要查詢的userId 無數據!");
}
}
// 刪除
public static void del() {
System.out.println("請輸入刪除的userId");
String userId = input.next();
//todo 根據用戶ID查詢list (count)
if (true) {
System.out.println("刪除成功");
} else {
System.out.println("你要查詢的userId 無數據!");
}
}
// 退出
private static void quit() {
System.out.println("拜拜~");
System.exit(0);
}
/**
* 獲取列表
* @param userId
* @return
*/
private static List<Skill> getSkillList(String userId) {
String sql = "select * from hwSkill where share_id = " + userId;//SQL語句
DBHelper db1 = new DBHelper(sql);//創建DBHelper對象
List<Skill> skillList = new ArrayList<>();
try {
ResultSet ret = db1.pst.executeQuery();//執行語句,得到結果集
while (ret.next()) {
Skill skill = new Skill();
skill.setUserId(ret.getString(1));
skill.setShareId(ret.getString(2));
skill.setSkillList(ret.getString(3));
skillList.add(skill);
}
ret.close();
db1.close();//關閉連接
} catch (SQLException e) {
e.printStackTrace();
}
return skillList;
}
/**
* CSV文件生成方法
* @param head 文件頭
* @param dataList 數據列表
* @param outPutPath 文件輸出路徑
* @param filename 文件名
* @return
*/
public static File createCSVFile(List<Object> head, List<List<Object>> dataList, String outPutPath, String filename) {
File csvFile = null;
BufferedWriter csvWtriter = null;
try {
csvFile = new File(outPutPath + File.separator + filename + ".csv");
File parent = csvFile.getParentFile();
if (parent != null && !parent.exists()) {
parent.mkdirs();
}
csvFile.createNewFile();
// GB2312使正確讀取分隔符","
csvWtriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(
csvFile), "GB2312"), 1024);
// 寫入文件頭部
writeRow(head, csvWtriter);
// 寫入文件內容
for (List<Object> row : dataList) {
writeRow(row, csvWtriter);
}
csvWtriter.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
csvWtriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return csvFile;
}
/**
* 寫一行數據方法
* @param row
* @param csvWriter
* @throws IOException
*/
private static void writeRow(List<Object> row, BufferedWriter csvWriter) throws IOException {
// 寫入文件頭部
for (Object data : row) {
StringBuffer sb = new StringBuffer();
String rowStr = sb.append("\"").append(data).append("\",").toString();
csvWriter.write(rowStr);
}
csvWriter.newLine();
}
static class Skill {
String userId;
String shareId;
String skillList;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getShareId() {
return shareId;
}
public void setShareId(String shareId) {
this.shareId = shareId;
}
public String getSkillList() {
return skillList;
}
public void setSkillList(String skillList) {
this.skillList = skillList;
}
}
}
黑框交互工具-dataCopy
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.