此次開發工具為eclipse,才有的數據庫驅動是mysql-connector-java-5.1.8-bin.jar
第一步,在eclipse的工程目錄中引用mysql驅動
驅動下載地址:https://dev.mysql.com/downloads/connector/j/
選擇build path 然后選擇configure build path
再選擇libraries,選擇add external library,找到之前下的數據庫驅動,確認,ok
然后下一段測試代碼將數據庫驅動起來
public class test { public static void main(String []args) { try { //mysql數據庫設置驅動程序類型 Class.forName("com.mysql.jdbc.Driver"); System.out.println("mysql數據庫驅動加載成功"); } catch(ClassNotFoundException e) { e.printStackTrace(); } } }
驅動代碼運行一次就行了,之后就是操作數據庫了
基本操作增改刪查,原理都是一樣的
先創建一個Connection對象
Connection connection = null; String user="root";//用戶名 String password="19980713";//密碼 String url = "jdbc:mysql://localhost:3306/task?user="+user+"&password="+password+"&useUnicode=true&characterEncoding=utf-8";//獲得連接的語句 try{ connection = (Connection)DriverManager.getConnection(url); }catch(SQLException e){ e.printStackTrace(); }
獲得連接之后就是對connection進行操作了
查詢記錄
String sql = "select id,name,job,department,state,authority from worker;"; try { PreparedStatement ps = (PreparedStatement) connection.prepareStatement(sql);//預編譯過程 ResultSet rs = ps.executeQuery();//查詢一般用executeQuery,返回的是查詢的結果集 //下面是對結果集進行操作 while(rs.next()) { count++; Vector v = new Vector(); v.add((rs.getString(1))); v.add((rs.getString(2))); v.add((rs.getString(3))); v.add((rs.getString(4))); v.add((rs.getString(5))); v.add((rs.getString(6))); worker.add(v); } }catch(SQLException e1) { e1.printStackTrace(); }
插入記錄
String sql = "insert into worker(name) " +"value("+ ""\"小明"\"" + ")"; PreparedStatement ps = (PreparedStatement) connection.prepareStatement(sql); try { PreparedStatement ps = (PreparedStatement) connection.prepareStatement(sql); if(ps.executeUpdate()==1){//返回一個int值表示返回的條數 int n = JOptionPane.showConfirmDialog(null, "添加成功,是否繼續添加?", "系統提示",JOptionPane.YES_NO_OPTION); if(n == 0){ //清空面板 name.setText(""); sex.setText(""); authority.setText(""); birthday.setText(""); department.setText(""); job.setText(""); email.setText(""); state.setText(""); remark.setText(""); specialty.setText(""); address.setText(""); tel.setText(""); edu_level.setText(""); }else{ dispose(); JoinNewMember frame = new JoinNewMember(); } } } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); }
其余操作就不貼代碼了,以此類推就是的,我先准備一下六級去了,要不待會再來更新
2018/06/16/18:39更新 考完六級回來了 段落匹配放最后面的 沒做完 虧了 十二月份再來哈哈哈哈
補上:
上面之所以不貼代碼是因為套路都一樣
先實例化一個Connection對象,然后調用prepareStatement()將SQL語句帶入其中進行預編譯
然后根據情況調用execute executeUpdate 或者executeQuery
下面來了解一下這三個函數execute() executeQuery() executeUpdate()的區別和適用情況
executeQuery()顧名思義----執行查詢
返回的是一個結果集,我們對結果集進行處理得到我們想要的數據.
結果集的組成是行列的,行是指例句,列指屬性,rs.next()可以看做一個迭代過程
executeUpdate顧名思義---執行更新
對應的一般就是用於執行 INSERT、UPDATE 或 DELETE或者一些定義數據庫的語句,例如CREATE TABLE等,返回值是執行操作收到影響的行數
關於execute,我剛開始以為挺簡單的,后來才發現我低估了他的用途,我等菜鳥不敢隨意總結,我在別的地方看到一個挺好的詳解: