java链接mysql数据库并且写入数据并且解决写入数据库乱码问题
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去掉勾
*/
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。