Java經過JDBC鏈接MySQL數據庫(一)

JDBC

JAVA Database Connectivity java 數據庫鏈接java

  • 爲何會出現JDBCmysql

SUN公司提供的一種數據庫訪問規則、規範, 因爲數據庫種類較多,而且java語言使用比較普遍,sun公司就提供了一種規範,讓其餘的數據庫提供商去實現底層的訪問規則。 咱們的java程序只要使用sun公司提供的jdbc驅動便可。sql

 

使用JDBC的基本步驟

  1. 註冊驅動數據庫

    DriverManager.registerDriver(new com.mysql.jdbc.Driver());工具

  2. 創建鏈接優化

    //DriverManager.getConnection("jdbc:mysql://localhost/test?user=monty&password=greatsqldb");
    //2. 創建鏈接 參數一: 協議 + 訪問的數據庫 , 參數二: 用戶名 , 參數三: 密碼。
    conn = DriverManager.getConnection("jdbc:mysql://localhost/students", "root", "root");url

  3. 建立statementspa

    //3. 建立statement , 跟數據庫打交道,必定須要這個對象
    st = conn.createStatement();code

  4. 執行sql ,獲得ResultSetorm

    //4. 執行查詢 , 獲得結果集
    String sql = "select * from t_student1";
    rs = st.executeQuery(sql);

  5. 遍歷結果集

    //5. 遍歷查詢每一條記錄
    while(rs.next()){
      int id = rs.getInt("id");
      String name = rs.getString("name");
      int age = rs.getInt("age");
      System.out.println("id="+id + "===name="+name+"==age="+age);

    }
  6. 釋放資源

if (rs != null) {
        try {
            rs.close();
        } catch (SQLException sqlEx) { } // ignore 
        rs = null;
    }

    ...

優化:

JDBC 工具類構建

  1. 資源釋放工做的整合

  1. 驅動防二次註冊

DriverManager.registerDriver(new com.mysql.jdbc.Driver());

Driver 這個類裏面有靜態代碼塊,一上來就執行了,因此等同於咱們註冊了兩次驅動。 其實沒這個必要的。
//靜態代碼塊 ---> 類加載了,就執行。 java.sql.DriverManager.registerDriver(new Driver());


    最後造成如下代碼便可。

    Class.forName("com.mysql.jdbc.Driver");
  1. 使用properties配置文件

    1. 在src底下聲明一個文件 xxx.properties ,裏面的內容吐下:

      driverClass=com.mysql.jdbc.Driver
      url=jdbc:mysql://localhost/student
      name=root
      password=root

    2. 在工具類裏面,使用靜態代碼塊,讀取屬性

static{
        try {
            //1. 建立一個屬性配置對象
            Properties properties = new Properties();
            InputStream is = new FileInputStream("jdbc.properties"); //對應文件位於工程根目錄
             
            //使用類加載器,去讀取src底下的資源文件。 後面在servlet  //對應文件位於src目錄底下
            //InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
            //導入輸入流。
            properties.load(is);
            
            //讀取屬性
            driverClass = properties.getProperty("driverClass");
            url = properties.getProperty("url");
            name = properties.getProperty("name");
            password = properties.getProperty("password");
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
相關文章
相關標籤/搜索