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.regex.Matcher;
import java.util.regex.Pattern;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

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

    public static void main(String[] args) {
        String path="/home/wjx/spider/baidu/";
        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)
            insert(path+str);
    }

    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.122/cgdb?user=cg&password=&useUnicode=true&characterEncoding=utf-8" );
            //解决写入数据库乱码问题  http://blog.csdn.net/liuxueyongyu/article/details/2026788        
           //(Connection) DriverManager.getConnection("jdbc:mysql://172.27.35.8:3306/wjx", "root", "1314521");// 创建数据连接
        } catch (Exception e) {
            System.out.println("数据库连接失败" + e.getMessage());
        }
        return con; // 返回所建立的数据库连接
    }
    public static void insert(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 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 query() {
    //
    // conn = getConnection(); //同样先要获取连接,即连接到数据库
    // try {
    // String sql = "select * from staff"; // 查询数据的sql语句
    // st = (Statement) conn.createStatement();
    // //创建用于执行静态sql语句的Statement对象,st属局部变量
    //
    // ResultSet rs = (ResultSet) st.executeQuery(sql); //执行sql查询语句,返回查询数据的结果集
    // System.out.println("最后的查询结果为:");
    // while (rs.next()) { // 判断是否还有下一个数据
    //
    // // 根据字段名获取相应的值
    // String name = rs.getString("name");
    // int age = rs.getInt("age");
    // String sex = rs.getString("sex");
    // String address = rs.getString("address");
    // String depart = rs.getString("depart");
    // String worklen = rs.getString("worklen");
    // String wage = rs.getString("wage");
    //
    // //输出查到的记录的各个字段的值
    // System.out.println(name + " " + age + " " + sex + " " + address
    // + " " + depart + " " + worklen + " " + wage);
    //
    // }
    // 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去掉勾
*/

java链接mysql数据库并且写入数据并且解决写入数据库乱码问题,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。