jdbc連接資料庫竹旳drive一共分成四種
這裡的範例只使用一種做教學,其它幾種只是在層級上有所不同
用法則大概相同,有興趣的可以參考歐萊禮的
java與jdbc資料庫程式設計
參考連結
1.把第一次給Eclipse 如果您還不會使用Eclipse的話可以看看
2.java jdbc mysql資料庫入及匯出
匯出 匯入
3.java 使用jdbc 操作hsqldb
一.在Eclipse建立一個專案,增加一個Class
|
package db;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement;
public class jdbcmysql { private Connection con = null; //Database objects //連接object private Statement stat = null; //執行,傳入之sql為完整字串 private ResultSet rs = null; //結果集 private PreparedStatement pst = null; //執行,傳入之sql為預儲之字申,需要傳入變數之位置 //先利用?來做標示 private String dropdbSQL = "DROP TABLE User "; private String createdbSQL = "CREATE TABLE User (" + " id INTEGER " + " , name VARCHAR(20) " + " , passwd VARCHAR(20))"; private String insertdbSQL = "insert into User(id,name,passwd) " + "select ifNULL(max(id),0)+1,?,? FROM User"; private String selectSQL = "select * from User "; public jdbcmysql() { try { Class.forName("com.mysql.jdbc.Driver"); //註冊driver con = DriverManager.getConnection( "jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=Big5", "root","12345"); //取得connection
//jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=Big5
//localhost是主機名,test是database名 //useUnicode=true&characterEncoding=Big5使用的編碼 } catch(ClassNotFoundException e) { System.out.println("DriverClassNotFound :"+e.toString()); }//有可能會產生sqlexception catch(SQLException x) { System.out.println("Exception :"+x.toString()); } } //建立table的方式 //可以看看Statement的使用方式 public void createTable() { try { stat = con.createStatement(); stat.executeUpdate(createdbSQL); } catch(SQLException e) { System.out.println("CreateDB Exception :" + e.toString()); } finally { Close(); } } //新增資料 //可以看看PrepareStatement的使用方式 public void insertTable( String name,String passwd) { try { pst = con.prepareStatement(insertdbSQL); pst.setString(1, name); pst.setString(2, passwd); pst.executeUpdate(); } catch(SQLException e) { System.out.println("InsertDB Exception :" + e.toString()); } finally { Close(); } } //刪除Table, //跟建立table很像 public void dropTable() { try { stat = con.createStatement(); stat.executeUpdate(dropdbSQL); } catch(SQLException e) { System.out.println("DropDB Exception :" + e.toString()); } finally { Close(); } } //查詢資料 //可以看看回傳結果集及取得資料方式 public void SelectTable() { try { stat = con.createStatement(); rs = stat.executeQuery(selectSQL); System.out.println("ID\t\tName\t\tPASSWORD"); while(rs.next()) { System.out.println(rs.getInt("id")+"\t\t"+ rs.getString("name")+"\t\t"+rs.getString("passwd")); } } catch(SQLException e) { System.out.println("DropDB Exception :" + e.toString()); } finally { Close(); } } //完整使用完資料庫後,記得要關閉所有Object //否則在等待Timeout時,可能會有Connection poor的狀況 private void Close() { try { if(rs!=null) { rs.close(); rs = null; } if(stat!=null) { stat.close(); stat = null; } if(pst!=null) { pst.close(); pst = null; } } catch(SQLException e) { System.out.println("Close Exception :" + e.toString()); } }
public static void main(String[] args) { //測看看是否正常 jdbcmysql test = new jdbcmysql(); test.dropTable(); test.createTable(); test.insertTable("yku", "12356"); test.insertTable("yku2", "7890"); test.SelectTable(); } }
|