http://www.cnblogs.com/cy163/archive/2008/08/22/1274413.html
http://blog.youkuaiyun.com/cxwen78/article/details/6863696
先看以上的,下载:mysql-connector-java-5.1.18-bin.jar
1 参数
private String driver = "com.mysql.jdbc.Driver";
// URL指向要访问的数据库名
private String url = "jdbc:mysql://localhost:3306/weibo";
// MySQL配置时的用户名
private String user = "root";
private String password = "yfms";
private Connection conn;
2 连接与关闭
// 加载驱动程序
Class.forName(this.driver);
// 连续数据库
this.conn = DriverManager.getConnection(this.url, this.user, this.password);
if(!conn.isClosed()) {
System.out.println("成功连接到 weibo本地数据库!");
flag= true;
}else{
System.out.println("连接 weibo数据库 失败!");
flag= false;
}
if(!this.conn.isClosed() ){
conn.close();
System.out.println("关闭 weibo 连接!");
}
3 查看数据
Statement 对象
ResultSet 结果集
if(this.conn.isClosed() ){
System.out.println("没有连接到 weibo!");
}else{
// statement用来执行SQL语句
Statement statement = conn.createStatement();
// 要执行的SQL语句
String sql = "select uid,nick,gender,follow,fans,weibo,info,tag,edu,job from weicontent";
// 结果集
ResultSet rs = statement.executeQuery(sql);
System.out.println("==============WeiContent===================");
System.out.println(" uid" + "\t" + " nick" + "\t" + "gender" + "\t"
+ "follow" + "\t" + "fans" + "\t" + "weibo" + "\t" + "info"
+ "\t" + "tag" + "\t" + "edu" + "\t" + "job");
System.out.println("----------------------------------------");
while (rs.next()) {
System.out.println(rs.getString("uid") + "\t"
+ rs.getString("nick") + "\t" + rs.getString("gender") + "\t"
+ rs.getString("follow") + "\t" + rs.getString("fans") + "\t"
+ rs.getString("weibo") + "\t" + rs.getString("info") + "\t"
+ rs.getString("tag") + "\t"+ rs.getString("edu") + "\t"
+ rs.getString("job"));
}
rs.close();
}
4 插入数据
使用Statement
public void putOnTask(Hashtable<String,Integer> hsti) throws SQLException{
if (this.conn.isClosed() | this.conn==null) {
System.out.println("没有连接到 weibo!");
}else{
Statement statement = conn.createStatement();
//先清空,写入ontask
String delete_ontask = "delete from weibo.ontask";
statement.executeUpdate(delete_ontask);
Iterator it=hsti.keySet().iterator();
while(it.hasNext()) {
String insert_ontask = "insert ignore into ontask(uid)
values('"+ it.next().toString().trim() + "')";statement.executeUpdate(insert_ontask);
}System.out.println("同步ontask ok!"); }}
使用PreparedStatement
public boolean doCreate(Person person) throws Exception {
boolean flag = false;
PreparedStatement pstmt = null;
String sql = "INSERT INTO person(pid,name,age,birthday,address)"
+ " VALUES (myseq.nextval,?,?,?,?)";
try {
pstmt = this.conn.prepareStatement(sql);
pstmt.setString(1, person.getName());
pstmt.setInt(2, person.getAge());
pstmt.setDate(3, new java.sql.Date(person.getBirthday().getTime()));
pstmt.setString(4, person.getAddress());
int len = pstmt.executeUpdate();
if (len > 0) {
flag = true;
}
} catch (Exception e) {
throw e;
} finally {
try {
pstmt.close();
} catch (Exception e) {
throw e;
}
}
return flag;
}
5 使用存储过程
CallableStatement对象
public synchronized LinkedList<String> getOntaskProc(int count) throws SQLException{
LinkedList<String> listr= new LinkedList<String>();
if (this.conn.isClosed() | this.conn==null) {
System.out.println("没有连接到 weibo!");
} else{
String proc = "{call weibo.Mark_Ontask(?)}";
CallableStatement cstm = conn.prepareCall(proc);
cstm.setString(1,String.valueOf(count));
cstm.execute();
//System.out.println(cstm.getString(1));
String[] str=cstm.getString(1).split(":");
for(int i=0;i<str.length;i++){
if(!str[i].equals("")){
listr.add(str[i]);
}
}
//System.out.println(listr.toString());
}
return listr;
}