第一步:下載mysql驅動,網址
http://dev.mysql.com/downloads/connector/j/
第二步:講mysql驅動mysql-connector-java-5.0.5-bin.jar加入到項目的lib目錄或者將該文件的路徑加入到classpath環境變量裏面
第三步:建立數據庫
1、安裝mysql
2、建立數據庫:create database test;
3、創建表:
CREATE TABLE STUDENT ( SNO CHAR(7) NOT NULL, SNAME VARCHAR(8) NOT NULL, SEX CHAR(2) NOT NULL, BDATE DATE NOT NULL, HEIGHT DEC(5,2) DEFAULT 000.00, PRIMARY KEY(SNO) );
4、插入數據
第四步:java程序編寫
1、加載驅動:加載想要連接的數據庫的驅動到JVM,通過java.lang.Class類的靜態方法forName(String className)來實現,加載成功後,Driver類的實例就被註冊到DriverManager中
Class.forName("com.mysql.jdbc.Driver").newInstance(); 或者 com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver(); 或者 new com.mysql.jdbc.Driver();
2、創建連接對象,該對象就是一個數據庫連接
Connection con = DriverManager.getConnection("url", "user", "passwrod");
其中MySQL的JDBC URL編寫方式:jdbc:mysql://主機名稱:連接端口/數據庫的名稱?參數=值,避免中文亂碼要指定useUnicode和characterEncoding。
3、創建申明:創建一個java.sql.Statement實例,Statement實例分爲以下三種類型:
1、執行靜態SQL語句。通常通過Statement實例實現。
2、執行動態SQL語句。通常通過PreparedStatement實例實現。
3、執行數據庫存儲過程。通常通過CallableStatement實例實現。
具體的實現方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;
4、執行數據庫操作:Statement接口提供了三種執行SQL語句的方法:executeQuery 、executeUpdate、和execute。
1、ResultSet executeQuery():執行查詢數據庫的SQL語句,返回一個結果集(ResultSet)對象。 2、int executeUpdate():用於執行INSERT、UPDATE或DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等
3、execute():用於執行返回多個結果集、多個更新計數或二者組合的語句。
具體實現代碼:
5、處理結果:分兩種情況
1、執行更新返回的本次操作影響到的記錄數
2、執行查詢返回的結果是一個ResultSet對象
ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些行中數據的訪問。
使用結果集(ResultSet)對象的訪問方法獲取數據:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ;
}
6、關閉JDBC對象:操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲明順序相反:
1、關閉記錄集
2、關閉聲明
3、關閉連接對象
以下是學習時測試代碼:
package com.nudt.jdbc; import java.net.ConnectException; import java.sql.*; public class DBUtilDemo{ private static final String URL = "jdbc:mysql://127.0.0.1:3306/imooc"; private static final String USER = "root"; private static final String PASSWD= "nudt2013"; private static Connection conn = null; static { try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(URL,USER,PASSWD); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } public static Connection getConnection(){ return conn; } public static void main (String args[])throws Exception{ Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select user_name,age from imooc_goddess"); String result = null; while(rs.next()){ result = "name:"+rs.getString("user_name")+";age:"+rs.getInt("age"); System.out.println(result); } } }