简单的数据模板
2、【合肥05】第M6807期 宝马X1 已回购 众筹129000元,分红2516元,万元收益195.04元,89天,年化收益率8% 5、【山东17】第M6823期 奔驰GLK300 已回购 众筹238000元,分红4590元,万元收益192.86元,88天,年化收益率8%20、第S364期 石榴计划(新手标) 已回款 众筹98000元,分红1208.22元,万元收益123.29元,30天,年化收益率15%21、第S365期 石榴计划(30天标国庆加息2%至11%) 已回款 众筹600000元,分红5424.66元,万元收益90.41元,30天,年化收益率11%22、【SWVU103】第M8523期 路虎揽胜 已回款 众筹600000元,分红6000元,万元收益100元,25天,年化收益率14.6% |
1、导入JDBC的文件Db.java,驱动包
package com.wc.daoru; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 封装整个 JDBC 操作数据库的过程 * 1.加载驱动 * 2.建立连接 * 3.声明 * 4.访问数据 * 5.关闭声明 * 6.关闭连接 * Administrator * */ class Db//数据库连接 { /** * 加载驱动 * SQLException */ protected void jiaQuDong() throws SQLException { try { //oralce 的数据库驱动 //反射 Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { System.out.println("加载驱动异常"); e.printStackTrace(); throw new SQLException("加载驱动异常"); } }/** * 建立连接方法 * * SQLException */ protected Connection jianLianJie() throws SQLException { try { // sqlserver 连接 // String url = "jdbc:jtds:sqlserver://localhost:1433/student"; // Connection conn = DriverManager.getConnection(url, "sa", "sa"); //oralce 连接 String url = "jdbc:oracle:thin::1521:xe"; //加载连接 Connection conn = DriverManager.getConnection(url, "stt", "123456"); return conn; } catch (SQLException e) { System.out.println("建立连接异常"); e.printStackTrace(); throw new SQLException("建立连接异常"); } } /** * 声明连接 * @return * @throws SQLException */ protected Statement shengMing(Connection conn) throws SQLException { try { Statement stmt = conn.createStatement(); return stmt; } catch (SQLException e) { System.out.println("stmt生成异常"); e.printStackTrace(); throw new SQLException("stmt生成异常"); } } /** * 关闭结果集信息 * @param rs * @throws SQLException */ protected void guanRS(ResultSet rs) throws SQLException { try { rs.close(); } catch (SQLException e) { System.out.println("rs关闭异常"); e.printStackTrace(); throw new SQLException("rs关闭异常"); } }/** * 执行查询数据 返回结果集 * @param stmt * @param sql * @return * @throws SQLException */ protected ResultSet zhiXingCha(Statement stmt, String sql) throws SQLException { //java Sql 通过 声明 sql 和数据 做交互 //结果 ResultSet ResultSet rs = stmt.executeQuery(sql); return rs; } /** * 执行增删改 方法 返回结果 * @param stmt * @param sql * @return * @throws SQLException */ protected int zhiXingZSG(Statement stmt, String sql) throws SQLException { try { //带着信息 访问你数据库 int tiao = stmt.executeUpdate(sql); return tiao; } catch (SQLException e) { System.out.println("执行增删改异常"); e.printStackTrace(); throw new SQLException("执行增删改异常"); } } /** * 执行sql * @param stmt * @param sql * @return * @throws SQLException */ protected boolean zhiXing(Statement stmt, String sql) throws SQLException { try { boolean ok = stmt.execute(sql); return ok; } catch (SQLException e) { System.out.println("execute异常"); e.printStackTrace(); throw new SQLException("execute异常"); } } /** * 处理结果集 信息 变为 List<Map> 内容 * @param stmt * @param sql * @return * @throws SQLException */ protected List<Map<String, String>> rs2ListMap(ResultSet rs) throws SQLException { try { List <Map<String,String>> list=new ArrayList<Map<String,String>>(); //循环 rs rs.next() 每当有循环信息的时候 我就进入循环 while (rs.next()) { Map<String,String> map=new HashMap<String, String>(); //结果集的整个数据信息 ResultSetMetaData rsmd=rs.getMetaData(); //多少个字段信息 int 数量=rsmd.getColumnCount(); //每一条数据 通过 for放置到 map for (int i = 1; i <=数量; i++) { String 字段名=rsmd.getColumnName(i); String 字段值=rs.getString(字段名); map.put(字段名, 字段值); } list.add(map); } return list; } catch (SQLException e) { System.out.println("rs2ListMap异常"); e.printStackTrace(); throw new SQLException("rs2ListMap异常"); } } /** * 关闭声明信息 * @param rs * @throws SQLException */ protected void guanStmt(Statement stmt) throws SQLException { try { stmt.close(); } catch (SQLException e) { System.out.println("stmt关闭异常"); e.printStackTrace(); throw new SQLException("stmt关闭异常"); } } /** * 关闭连接 * @param conn * @throws SQLException */ protected void guanConn(Connection conn) throws SQLException { try { conn.close(); } catch (SQLException e) { System.out.println("conn关闭异常"); e.printStackTrace(); throw new SQLException("conn关闭异常"); } } } |
2、建立txttest.java
1、读取数据txt中得数据到List中
public static List<String> txt2List(File file){ List<String> list = new ArrayList<String>(); try{ BufferedReader br = new BufferedReader(new FileReader(file));//构造一个BufferedReader类来读取文件 String s = new String(); while((s = br.readLine())!=null){//使用readLine方法,一次读一行 String [] s1=null; if(s.length()==0){ continue; } if(Character.isDigit(s.charAt(0))){ String s2 = s.substring(s.indexOf("、")+1);//将序号和空格都截取掉 s1 = s2.split("\\【|】| "); for(int i=0;i<s1.length-1;i++){//将第一行信息都放到List if(s1[i].isEmpty()){ continue; } list.add(s1[i]); } }else{ s1 = s.split("\\,"); for(int i=0;i<s1.length;i++){//将第二行信息都放到List list.add(s1[i]); } } //System.out.println(Arrays.toString(s1)); //System.out.println(s1.length); } //System.out.println(list); br.close(); }catch(Exception e){ e.printStackTrace(); } return list; } |
2、去除掉List中的不要的数据
//得到新List 去掉石榴计划等 private static List<String> newlis(List<String> list) { List<String> lis = new ArrayList<>(); for(int i=0;i<list.size();i++){ if(list.get(i).startsWith("第S")){ i+=6; continue; }; lis.add(list.get(i).trim()); } return lis; } |
3、将List中得数据插入数据库中
private static void insjk(List<String> lis) { Db db = new Db(); try { db.jiaQuDong(); Connection conn = db.jianLianJie(); Statement stmt = db.shengMing(conn); int sum = 0; String riqi = "2017-11-01"; for(int i=0;i<lis.size();i=i+8){ String sql = "insert into wclcxx (wid, riqi, cheshang, qishu, chexing, zhongchou, fenhong, shouyi,days, rate)" + "values('"+UUID.randomUUID().toString()+"','"+riqi+"'," + "'"+lis.get(i)+"','"+lis.get(i+1)+"', '"+lis.get(i+2)+"'," + "'"+lis.get(i+3)+"', '"+lis.get(i+4)+"', '"+lis.get(i+5)+"', '"+lis.get(i+6)+"', " + "'"+lis.get(i+7)+"')"; //System.out.println(sql); int tiao = db.zhiXingZSG(stmt, sql); sum+=tiao; }System.out.println(sum); db.guanStmt(stmt); db.guanConn(conn); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
|
4、主函数
public static void main(String[] args){ File file = new File("D:/维C理财数据.txt"); List<String> list = txt2List(file); List<String> lis = newlis(list); insjk(lis); //System.out.println(txt2List(file)); } |
成功!!!!