雜記一、java中的mysql連接方法及說明

參考到博客:https://www.cnblogs.com/centor/p/6142775.html

 

工具:eclipse

   MySQL5.6

   MySQL連接驅動:mysql-connector-java-5.1.27.jar

           鏈接:https://pan.baidu.com/s/18tUdoRDFN8hljPJgGDtLEg       提取碼:5krm 
 

 

總感覺驅動會和版本有關係,但是在具體使用過程中沒有去對比,所以不太清楚具體的問題,那就遇到了在解決吧。

只是找了下相應的資料,就貼在下面了:

這個是我的mysql配置版本

那準備工作做好了,就開始我們的測試。

===========================================================================================

那我們就開始創建java工程了:

加載驅動:

  1. 在工程目錄中創建lib文件夾,將下載好的JDBC放到該文件夾下,如下圖所示:

                           

       2. 右鍵工程名,在java build path中的Libraries分頁中選擇Add JARs...,選擇剛纔添加的JDBC,如下圖:

         

 

 

 3.準備好自己的數據包

這裏就簡單的弄兩條數據了,主要是記錄下學習的內容

CREATE TABLE usertable(
   empno            INT(4)          PRIMARY KEY,
   ename            VARCHAR(10),
   job              VARCHAR(9),
   hiredate         DATE,
   sal              FLOAT(7,2)
) ;
insert into usertable (empno,ename) values (1,'tan');
insert into usertable (empno,ename) values (2,'hu');

 

4.java操作mysql數據的簡單的代碼:

package javasql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

@SuppressWarnings("unused")

public class javasql {

    public static void main(String[] args) {
        //聲明Connection對象
        Connection con;
        //驅動程序名
        String driver = "com.mysql.jdbc.Driver";
        //URL指向要訪問的數據庫名mydata
        String url = "jdbc:mysql://localhost:3306/mytest";
        //url的格式: 大協議:子協議://IP地址:端口號/庫名?參數=參數值
                
        //MySQL配置時的用戶名
        String user = "root";
        //MySQL配置時的密碼
        String password = "123456";
        //遍歷查詢結果集
        try {
            //加載驅動程序
            Class.forName(driver);/*Class.forName("");的作用是要求JVM查找並加載指定的類。
            加載類,這裏會調用靜態方法DriverManager.registerDriver(new Driver());且只執行 
            一次*/
            //1.getConnection()方法,連接MySQL數據庫!!
            con = DriverManager.getConnection(url,user,password);
            if(!con.isClosed())
                System.out.println("Succeeded connecting to the Database!");
            //2.創建statement類對象,用來執行SQL語句!!
            Statement statement = con.createStatement();
            //要執行的SQL語句
            String sql = "select * from usertable";
            //3.ResultSet類,用來存放獲取的結果集!!
            ResultSet rs = statement.executeQuery(sql);
            System.out.println("-----------------");
            System.out.println("執行結果如下所示:");  
            System.out.println("-----------------");  
            System.out.println("序號" + "\t" + "姓名");  
            System.out.println("-----------------");  
             
            String job = null;
            String id = null;
            while(rs.next()){//rs爲一個查詢數據庫的結果集。next()就是判斷是否到了最後一條記錄
                //獲取stuname這列數據
                job = rs.getString("ename");//獲取對應該字段的記錄內容
                //獲取stuid這列數據
                id = rs.getString("empno");
                //輸出結果
                System.out.println(id + "\t" + job);
            }
            rs.close();
            con.close();
        } catch(ClassNotFoundException e) {   
            //數據庫驅動類異常處理
            System.out.println("Sorry,can`t find the Driver!");   
            e.printStackTrace();   
            } catch(SQLException e) {
            //數據庫連接失敗異常處理
            e.printStackTrace();  
            }catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }finally{
            System.out.println("數據庫數據獲取結束!!");
        }
    }

}

結果如下圖所示:

==================================================================================

上面初步對JAVA的jdbc的操作有了個大致的瞭解,那接下來,

1  先了解下JDBC中使用的幾個類對應的方法,主要爲下面的5種接口:

2  簡單的總結下,java操作mysql的增刪改查的操作:

  -------------------

 具體給個接口的方法的功能詳細請查看:https://blog.csdn.net/know9163/article/details/80574315

其中用到的類(主要由4個類構成),和對應的功能如圖所示:

下面只是做簡單的指出:

1  Connection接口

    - Connection與特定數據庫的連接(會話),在連接上下文中執行SQL語句並返回結果。

    - DriverManager的getConnection()方法建立在JDBC URL中定義的數據庫Connection連接上,主要的使用方法如下:

      -Mysql

        Connection con = DriverManager.getConnection("jdbc:mysql://host:port/database", "user", "password");

      -Oracle

        Connection con = DriverManager.getConnection("jdbc:oracle:thin@host:port/database", "user", "password");

 

2   Statement接口

    - 用於執行靜態SQL語句並返回它所生成結果的對象。

    - 三種Statement類:

      - (1)Statement:

        由createStatement創建,用於發送簡單的SQL語句(不帶參數)

      - (2)PreparedStatement:

        - 繼承自Statement接口,有preparedStatement創建,用於發送含有一個或者多個輸入參數的SQL語句。PreparedStatement對象

         比Statement對象效率更高,並且是防止SQL注入。我們一般都使用PreparedStatement。

      - (3)CallableStatement:

        - 繼承自preparedStatement。由方法prePareCall創建,用於調用存儲過程。

    - 常用的Statement方法

        - execute():運行語句,返回是否有結果集。

        - executeQuery():運行select語句,返回ResultSet結果節

        - executeUpdate():運行insert/update/delete操作,返回更新的行數。

4    Driver接口

    - Driver接口由數據庫廠家提供,對於Java開發者而言,只需要使用Driver接口就可以了。

    - 在編程中要連接數據庫,必須先裝載特定廠商的數據庫驅動程序。不同的數據庫有不同的裝載方法。

    - 驅動:就是各個廠商實現Sun公司提出的JDBC接口。即對Connection等接口的實現類的jar文件。

    - 裝載mysql驅動:Class.forName("com.mysql.jdbc.Driver");

    - 裝載oracle驅動:Class.forName("com.jdbc.driver.OracleDriver");

   DriverManager接口

    - DriverManager接口是JDBC的管理層,作用於用戶和驅動程序之間。

    - DriverManager跟蹤可用的驅動程序,並在數據庫和相應的驅動之間建立連接。

 

5. ResultSet接口

      - Statement執行SQL語句時返回Result結果集

      - ResultSet提供的檢索不同類型字段的方法,常用的有:

        - getString():獲得在數據庫裏是varchar,char等數據類型的對象。

        - getFloat():獲得數據庫裏是Float類型的對象

        - getDate():獲得數據庫裏是Date類型的對象

        - getBoolean():獲得數據庫裏是Boolean類型的數據      

 

最後操作完之後的,關閉順序:

- 依序關閉使用的對象和連接

        Result->Statement->Connection

 

下面就是簡單的介紹下,java中的增刪改查了,其實前面的部分大家知道了,之後的內容就和我們平常操作數據庫是一樣的了,只是換了種語言,換了一種API。

增加、刪除和修改數據:

  增加數據:

String name;
String id;

 
PreparedStatement psql;
ResultSet res;
//預處理添加數據,其中有兩個參數--“?”

psql = con.prepareStatement("insert into usertable (empno,ename,job,hiredate,sal) "
        + "values(?,?,?,?,?)");
//注:這裏的index裏面的 1,2,3,4,5就是指的上面語句中第幾個?的位子,即就是動態的執行SQL,後附值
psql.setInt(1, 3212);              //設置參數1,創建id爲3212的數據
psql.setString(2, "jun");          //設置參數2,name 爲jun
psql.setString(3, "manager");      //設置參數3    爲職稱


DateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd");
Date myDate2 = dateFormat2.parse("2010-09-13");
psql.setDate(4,new java.sql.Date(myDate2.getTime()));
psql.setFloat(5, (float) 2000.3);
psql.executeUpdate();           //執行更新

 

更新數據:

 PreparedStatement psql;

//預處理更新(修改)數據,將jun的sal改爲5000.0
psql = con.prepareStatement("update usertable set sal = ? where ename = ?");
psql.setFloat(1,(float) 5000.0);      
psql.setString(2,"jun");           //動態的給sql附完值 , 完成了完整的SQL語句         
psql.executeUpdate();              //執行update跟新語句,實現更新數據

刪除數據:

PreparedStatement psql;//預處理刪除數據

psql = con.prepareStatement("delete from usertable where sal > ?");

psql.setFloat(1, 4500);             //動態的給sql附完值 , 完成了完整的SQL語句         
psql.executeUpdate();               //執行delete刪除語句,實現數據刪除提交

psql.close();

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章