《JAVA程序設計》_第九周學習總結

1、學習內容

1.數據庫的創建、配置

  • 在官網先下載好MySQL、navicat for MySQL、XAMPP、MySQL-connecter
  • 在XAMPP中點擊start開啓MySQL

  • 在navicat for MySQL中點擊鏈接,輸入信息後肯定

  • 在鏈接名處右擊,建立新數據庫,輸入數據庫名,字符集和校對均選擇gb2312...

  • 處右擊,輸入表的信息html

  • 點開建立的mess表輸入信息,按tab鍵可快速換行java

  • 將MySQL-connecter添加到IDEA的module中

  • 輸入如下代碼,檢測數據庫是否鏈接
import java.sql.*;
public class GetDBConnection {
    public static Connection connectDB(String DBName,String id,String p) {
        Connection con = null;
        String
                uri = "jdbc:mysql://localhost:3306/"+DBName+"?serverTimezone=GMT%2B8&characterEncoding=utf-8";
        try{  Class.forName("com.mysql.cj.jdbc.Driver");
        }
        catch(Exception e){}
        try{
            con = DriverManager.getConnection(uri,id,p); 
        }
        catch(SQLException e){}
        return con;
    }
}

2.數據庫的查詢

1.向數據庫發送SQL查詢語句

  • 首先使用Statement聲明一個SQL語句對象,而後讓已建立的鏈接對象con調用方法createStatement()建立這個SQL語句對象,代碼以下:
try{Statement sql = con.createStatement();
}
catch(SQLException e){}

2.處理查詢結果

  • 有了SQL語句對象後,這個對象就能夠調用相應的方法實現對數據庫中表的查詢和修改,並將查詢結果存放在一個ResultSet類聲明的對象中。也就是說SQL查詢語句對數據庫的查詢操做將返回一個ResultSet對象,ResultSet對象是按「列」(字段)組織的數據行構成。
ResultSet rs = sql.executeQuery("SELECT * FROM students");
  • 結果集rs的列數是4列,恰好和students的列數相同
  • 而對於:ResultSet rs = sql.executeQuery("SELECT name,height FROM students");ResultSet對象一次只能看到一個數據行,使用next()方法移到下一個數據行,得到一行數據後,ResultSet對象可使用getXxx方法得到字段值(列值),將位置索引(第一列使用1,第二列使用2等)或列名傳遞給getXxx方法的參數便可。
  • 不管字段是何種屬性,總可使用getString(int columnIndex)或getString(String columnName)方法返回字段值的串表示

3.關閉鏈接

  • ResultSet對象和數據庫鏈接對象(Connection對象)實現了緊密的綁定,一旦鏈接對象被關閉,ResultSet對象中的數據馬上消失。這就意味着,應用程序在使用ResultSet對象中的數據時,就必須始終保持和數據庫的鏈接,直到應用程序將ResultSet對象中的數據查看完畢。若是在代碼ResultSet rs = sql.executeQuery("SELECT * FROM students");以後馬上關閉鏈接:con.close();,程序將沒法獲取rs中的數據。

3.控制遊標

  • 爲了獲得一個可滾動的結果集,需使用下述方法得到一個Statement對象。

Statement stmt = con.createStatement(int type ,int concurrency);mysql

4.條件與排序查詢

5.更新、添加與刪除操做

  • 更新
update 表 set 字段 = 新值 where <條件子句>
  • 添加

insert into 表(字段列表) values (對應的具體的記錄)insert into 表 values (對應的具體的記錄)git

  • 刪除
delete from 表名 where <條件子句>

2、學習中的問題及解決方法

問題1:在鏈接數據庫時出現如下問題sql

解決1:上網查詢、詢問同窗後發現是,module裏沒有添加MySQL-connecter數據庫

問題2:解決了上述問題後發現仍是鏈接不了學習

解決2:參考hy同窗的博客zxy同窗的博客解決了問題,是時區不對,須要在這裏加上?serverTimezone=GMT%2B8代碼3d

問題3:在運行Example11_3時出現的返回空值的問題調試

解決3:調試了很久,發現rs的值爲空,沒有進入while循環,最後忽然發現表中有漢字,因而在創建鏈接的代碼中加入了characterEncoding=utf-8,解決了問題code

3、代碼託管

代碼託管

相關文章
相關標籤/搜索