java上传数据到mysql

package Test0;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FilenameFilter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.DriverManager;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.huaban.analysis.jieba.JiebaSegmenter;
import com.huaban.analysis.jieba.JiebaSegmenter.SegMode;
import com.huaban.analysis.jieba.SegToken;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.ResultSet;
import com.mysql.jdbc.Statement;

class Node {
	public int id;
	public int type;
	public String name;

	public Node(int id, int type, String name) {
		this.id = id;
		this.type = type;
		this.name = name;
	}
}

class Resource {
	public int id;
	public String name;

	public Resource(int id, String name) {
		this.id = id;
		this.name = name;
	}
}

public class Test00 {
	static Connection conn;
	static Statement st;

	public static void main(String[] args) {
		 insert();//插入数据
		//query();// 查询数据

	}

	public static Connection getConnection() {
		Connection con = null; // 创建用于连接数据库的Connection对象
		try {
			Class.forName("com.mysql.jdbc.Driver");// 加载Mysql数据驱动
			con = (Connection) DriverManager
					.getConnection("jdbc:mysql://192.168.1.125/cgdb?user=root&password=1314521&useUnicode=true&characterEncoding=utf-8");
		} catch (Exception e) {
			System.out.println("数据库连接失败" + e.getMessage());
		}
		return con;
	}

	public static void insert() {
		// String pathshell="/home/wjx/spider/baidu/java.sh";
//		String cmd = "sort /home/wjx/桌面/spider/SearchUrl_CSDN.txt | uniq >/home/wjx/桌面/spider/SearchUrl_CSDN_b.txt"
//				+ ";sort /home/wjx/桌面/spider/SearchUrl_OSchina.txt | uniq >/home/wjx/桌面/spider/SearchUrl_OSchina_b.txt"
//				+ ";sort /home/wjx/桌面/spider/SearchUrl_Sina.txt | uniq >/home/wjx/桌面/spider/SearchUrl_Sina_b.txt";
		String cmd = "sort /home/wjx/桌面/spider/SearchUrl_*.txt | uniq >/home/wjx/桌面/spider/All_b.txt";
		Process ps;
		try {
			ps = Runtime.getRuntime().exec(new String[] { "sh", "-c", cmd });
			// ps = Runtime.getRuntime().exec(pathshell);
			ps.waitFor();
			String path = "/home/wjx/桌面/spider/";
			File f = new File(path);
			String[] names = f.list(new FilenameFilter() {
				public boolean accept(File dir, String name) {
					return name.indexOf(".txt") != -1;// 等于-1,表示不存在
				}
			});
			for (String str : names) {
				//System.out.println(str);
				if (str.endsWith("_b.txt")){
					insert_b(path + str);}
					if (str.endsWith("_v.txt"))
						;
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public static void insert_b(String path) {
		try {
			conn = getConnection(); // 首先要获取连接,即连接到数据库
			st = (Statement) conn.createStatement(); // 创建用于执行静态sql语句的Statement对象
			String usesql = "use cgdb";
			st.execute(usesql);
			int i = 0;
			InputStream in = new FileInputStream(path);
			InputStreamReader ir = new InputStreamReader(in);
			BufferedReader br = new BufferedReader(ir);
			String target = null;
			Pattern pattern = Pattern
					.compile("^\\{(.+)\\}\\{(\\d+)\\}\\{(\\d+)\\}\\{(.+)\\}$");
			while ((target = br.readLine()) != null) {

				Matcher matcher = pattern.matcher(target);
				matcher.find();
				String sql = "INSERT INTO Resource(name,extend,comment,url,type)"
						+ " VALUES ('"
						+ matcher.group(1)
						+ "','"
						+ matcher.group(2)
						+ "','"
						+ matcher.group(3)
						+ "','"
						+ matcher.group(4) + "','2')";
				// String sql = new String(str.getBytes(), "utf-8");
				System.out.println(sql);
				st.executeUpdate(sql); // 执行插入操作的sql语句,并返回插入数据的个数
				i++;
			}
			System.out.println("向Resource表中插入 " + i + " 条数据");
			br.close();
			ir.close();
			in.close();
			conn.close(); // 关闭数据库连接
		} catch (Exception e) {
			System.out.println("插入数据失败:" + e.getMessage());
		}
	}

	/* 查询数据库,输出符合要求的记录的情况 */
	public static void query() {
		JiebaSegmenter segmenter = new JiebaSegmenter();
		conn = getConnection();
		try {
			st = (Statement) conn.createStatement();
			String usesql = "use cgdb";
			st.execute(usesql);

			String sql_n = "select * from Node";
			ResultSet rs_n = (ResultSet) st.executeQuery(sql_n);
			List<Node> nodelist = new ArrayList<Node>();
			while (rs_n.next()) {
				nodelist.add(new Node(rs_n.getInt("id"), rs_n.getInt("type"),
						rs_n.getString("name")));
			}
			rs_n.last();

			String sql_s = "select * from Resource";
			ResultSet rs_s = (ResultSet) st.executeQuery(sql_s);
			List<Resource> resourcelist = new ArrayList<Resource>();
			while (rs_s.next()) {
				resourcelist.add(new Resource(rs_s.getInt("id"), rs_s
						.getString("name")));
			}
			rs_s.last();

			System.out.println("最后的查询结果为:");
			Set<String> content = new HashSet<String>();  //无顺序,内容不可重复

			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			//Map nodemap=new HashMap();
			for (Node node : nodelist) {// 对每中算法进行 循环 获得关键字
				System.out.println(node.id + " " + node.type + " " + node.name
						+ "   ::");
				List<SegToken> segn = segmenter.process(node.name,
						SegMode.INDEX);
				//nodemap.put(node.id, segn);
				double n = segn.size();
				
				for (Resource resource : resourcelist) {
					List<SegToken> segs = segmenter.process(resource.name,
							SegMode.INDEX);
			   double i = 0;
				for (SegToken seg : segn) {
					if (seg.word.getToken().equals("-")) {
						n--;
						continue;
					}
						
						for (SegToken seg2 : segs) {
							if (seg.word.getToken().equalsIgnoreCase(
									seg2.word.getToken())) {
								i++;
								break;
							}
						}
					}
				
				if (i / n > 0.5) {
					System.out.print(i + "        " + n);
					content.add(node.id + "','" + resource.id);
					System.out.println("  "+node.name + "      " + resource.name);
				}
				}
				
//				
//				System.out.println();
//				System.out.println();
			}
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			
			Iterator<String> iter = content.iterator();
			while (iter.hasNext()) {
				String sql = "INSERT INTO NodeResource(node_id,resource_id)"
						+ " VALUES ('" + iter.next() + "')";
				System.out.println(sql);
				st.executeUpdate(sql);
			}

			conn.close(); // 关闭数据库连接
		} catch (Exception e) {
			System.out.println("查询数据失败");
			e.printStackTrace();
		}
	}

	// /* 更新符合要求的记录,并返回更新的记录数目*/
	// public static void update() {
	// conn = getConnection(); //同样先要获取连接,即连接到数据库
	// try {
	// String sql = "update staff set wage='2200' where name = 'lucy'";//
	// 更新数据的sql语句
	//
	// st = (Statement) conn.createStatement();
	// //创建用于执行静态sql语句的Statement对象,st属局部变量
	//
	// int count = st.executeUpdate(sql);// 执行更新操作的sql语句,返回更新数据的个数
	//
	// System.out.println("staff表中更新 " + count + " 条数据"); //输出更新操作的处理结果
	//
	// conn.close(); //关闭数据库连接
	//
	// } catch (SQLException e) {
	// System.out.println("更新数据失败");
	// }
	// }
	//
	// /* 删除符合要求的记录,输出情况*/
	// public static void delete() {
	//
	// conn = getConnection(); //同样先要获取连接,即连接到数据库
	// try {
	// String sql = "delete from staff  where name = 'lili'";// 删除数据的sql语句
	// st = (Statement) conn.createStatement();
	// //创建用于执行静态sql语句的Statement对象,st属局部变量
	//
	// int count = st.executeUpdate(sql);// 执行sql删除语句,返回删除数据的数量
	//
	// System.out.println("staff表中删除 " + count + " 条数据\n"); //输出删除操作的处理结果
	//
	// conn.close(); //关闭数据库连接
	//
	// } catch (SQLException e) {
	// System.out.println("删除数据失败");
	// }
	//
	// }
}

/*
 * http://www.jb51.net/article/30774.htm
 * http://www.linuxidc.com/Linux/2012-04/58990.htm
 * http://dupeng.name/zz/the-centos-fully-uninstall-mysql.html
 * 
 * 对数据库的修改: 1. url改为text 2. name改为text 之前要将un去掉勾
 */

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值