有點久沒更新了,果然放暑假會放縱自己啊ˊˋ
前置作業:
1. 下載,mysql-connetor.jar
2. 加入至你的java project(右鍵 -> properties -> java build path -> add external jar)
/*******以下是code**********/
1. IPaddress:統一數值方便取用,建一個interface
1
2
3
4
5
6
| public interface IPaddress { final String ip = "IP地址"; final String sqldbaccount = "使用者名稱"; final String sqldbpass = "使用者密碼"; final String dbName = "資料庫名稱";} |
2. 要取用的class implements IPaddress即可
3. 宣告4個等一下會用到的變數
1
2
3
4
| private Connection connection = null;private Statement statement = null;private ResultSet resultSet = null;private PreparedStatement pStatement = null; |
4. 與資料庫取得連線
1
2
3
4
5
6
7
8
9
10
| try { Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection("jdbc:mysql://"+ip+"/"+dbName+"?useUnicode=true&characterEncoding=Big5", sqldbaccount,sqldbpass); } catch (ClassNotFoundException e) { //System.out.println(e); }catch (SQLException e) { //System.out.println(e); } |
5. closedb(在每個access db過後,要關閉連線資料)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| public void closedb(){ try { if (resultSet!=null){ resultSet.close(); resultSet = null; } if (statement != null) { statement.close(); statement = null; } if (pStatement != null) { pStatement.close(); pStatement = null; } } catch (SQLException e) { //System.out.println(e); }} |
基本上到這就差不多了,剩下的就是pStatment, resultSet, statement 互相的搭配使用而已
例如:
(1)我只需要簡單地執行一段sql而已,我就用statement
1
2
3
4
5
6
7
8
9
| try { statement = connection.createStatement(); statement.executeUpdate(你想執行的sql); } catch (SQLException e) { //System.out.println(e); }finally{ closedb(); }} |
(2)我想要取用一些當地變數,使用pStatment
1
2
3
4
5
6
7
8
9
10
11
12
13
| String 你的SQL = "insert into User(id,name,nickName, passwd) " + "select ifNULL(max(id),0)+1,?,?,? FROM User";try { pStatement = connection.prepareStatement(你的SQL); pStatement.setString(1, 當地變數);//第一個問號 pStatement.setString(2, 當地變數);//第二個問號 pStatement.setString(3, 當地變數);//第三個問號 pStatement.executeUpdate(); } catch (SQLException e) { //System.out.println(e); }finally{ closedb(); } |
(3)我想要取回資料表裡的資料,使用statement+resultSet 或 pStatement+resultSet
1
2
3
4
5
6
7
8
9
10
11
12
| try { statement = connection.createStatement(); resultSet = statement.executeQuery("select * from User "); while (resultSet.next()) { System.out.println(resultSet.getInt("id")+"\t\t"+ resultSet.getString("name")+"\t\t"+resultSet.getString("passwd")); }} catch (SQLException e) { //System.out.println("selectTable:"+e);}finally{ closedb();} |
6. 建立資料表table(可用可不用)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| public void creatTable_friend(){//創建資料表 String createdbSQL_friend = "CREATE TABLE "+name+"_friend (" + " id INTEGER " + " , name VARCHAR(20)"+ " , state VARCHAR(8))"; try { statement = connection.createStatement(); statement.executeUpdate(createdbSQL_friend); } catch (SQLException e) { //System.out.println(e); }finally{ closedb();//最後一定要關閉 }} |
註冊登入範例: