Java——JDBC鶸筆記,javajdbc鶸
先掛出大佬的傳送門:http://www.cnblogs.com/erbing/p/5805727.html
工欲善其事,必先利其器。
首先你要有一個jdbc的jar包,我用的是mysql。這個jar包直接到官網上下載就好了
傳送門:https://dev.mysql.com/downloads/connector/j/3.1.html
開啟就可以看到jar包
jar包下載好了,我們就可以正式寫代碼了。
第一步:載入驅動
1 Class.forName("com.mysql.jdbc.Driver");
其他資料庫的驅動就百度吧
第二步:建立串連
1 Connection connection = DriverManager.getConnection(URL, USER, PASSWORD);
這三個參數分別是資料庫的URL, 資料庫的使用者,密碼
mysql的URL通常這樣寫:jdbc:mysql://hostname/dbname
其實驅動、URL、USER、PASSWORD可以寫成常量形式
public static final String DRIVER = "com.mysql.jdbc.Driver"; public static final String URL = "jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8"; public static final String USER = "root"; public static final String PASSWORD = "12345";
至於為什麼我的URL寫的那麼長,防止中文亂碼。百度了一波都是這麼寫的。
第三步 :建立語句
一開始我就在想,我都已經串連上資料庫了。我直接寫SQL語句不行嗎?後來我有點想明白了。這個建立串連就像一根網線一樣,串連你的電腦和資料庫。但是吧,電腦和資料庫之間交流需要用都能聽得懂的協議(語言)才行。(就行瀏覽器和伺服器之間用http協議交流一樣)這個建立語句,就是讓電腦和資料庫達成某種共識,來探討人生。
1 Statement statement = connection.createStatement();
第四步 : 執行語句
執行的語句放到哪裡?結果集啊
ResultSet resultSet = statement.executeQuery("SELECT * FROM student");
如果是增刪改的操作就用
statement.executeUpdate(sql);
第五步 : 處理結果集
查詢得到的結果是放到結果集裡面的。
有一個resultSet.next()方法,這個方法在最開始的時候指向的是null第一條資料的前一行。執行一次next指標就會指向下一條資料。
resultSet.get... 有很多方法獲得資料。如:getString(1),getString("subject"),getShort(1),getInt(1);
while (resultSet.next()) { System.out.println(resultSet.getString("id") + "\t" + resultSet.getString("subject") + "\t" + resultSet.getString("score")); }
第六步 : 關閉串連
最後該幹啥裡心裡能沒點B數嗎???
標準的寫法我就不寫了,寫點簡單的寫法吧。
resultSet.close(); statement.close(); connection.close();
反正是和建立的順序反著關閉的。
把完整的代碼貼一下:
public class SimpleJDBC { public static void main(String[] args) throws SQLException, ClassNotFoundException { // 1.載入驅動程式 Class.forName(JDBCUtil.DRIVER); System.out.println("Driver loaded"); // 2.建立串連 Connection connection = DriverManager.getConnection(JDBCUtil.URL, JDBCUtil.USER, JDBCUtil.PASSWORD); System.out.println("Database connected"); // 3.建立語句 Statement statement = connection.createStatement(); // 4.執行語句 ResultSet resultSet = statement.executeQuery("SELECT * FROM student"); // 5.處理ResultSet while (resultSet.next()) { System.out.println(resultSet.getString("id") + "\t" + resultSet.getString("subject") + "\t" + resultSet.getString("score")); } // 6.你猜這是啥 connection.close(); }}
運行結果 :
基本的先寫到這裡。學完了繼續寫。