一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java連接MySQL數據庫命令行程序過程

Java連接MySQL數據庫命令行程序過程

2022-02-16 15:03guoyp2126 Java教程

SQL編程包括兩種形式,一種是過程化編程,主要通過數據庫交互式工具,通過存儲過程、觸發器、函數等形式的編程;另一種是嵌入式SQL編程,將SQL語句嵌入到高級開發語言,完成數據的各種操作

SQL編程包括兩種形式,一種是過程化編程,主要通過數據庫交互式工具,通過存儲過程、觸發器、函數等形式的編程;另一種是嵌入式SQL編程,將SQL語句嵌入到高級開發語言,完成數據的各種操作。

命令行程序由于對外依賴的jar包少易上手,通常作為教學示例程序。我們通過命令行 程序介紹嵌入式SQL開發過程,示例開發工具選擇idea。

 

創建表

通過SQLyol建立表student;

CREATE TABLE student(
Sno VARCHAR(10) PRIMARY KEY,
Sname VARCHAR(50),
Ssex   VARCHAR(2), 
Sage   INT,
Sdept VARCHAR(50)
)

插入數據:

Java連接MySQL數據庫命令行程序過程

 

創建命令行程序

新建一個命令行程序,打開idea工具,選擇:File―>New―>Project,彈出對話框,如下圖所示

Java連接MySQL數據庫命令行程序過程

直接點擊Next按鈕,進入到下一個Tab頁,勾選Create project from template,選擇Command line App

Java連接MySQL數據庫命令行程序過程

點擊Next進入下一個Tab頁,如圖所示

Java連接MySQL數據庫命令行程序過程

輸入項目名稱,選擇項目路徑,書寫基本包包名,基本包名一般由com+域名組成,確保其唯一性。填寫完成后,點擊finish按鈕,完成命令行程序的創建,創建完成的頁面如下圖所示

Java連接MySQL數據庫命令行程序過程

 

下載并導入jar包

下載mysql-connector-java-8.0.13.jar;下載地址,,將jar包存入本地目錄。
項目中導入Jar包。點擊File―>ProjectStructure 打開對話框,如下圖所示

Java連接MySQL數據庫命令行程序過程

點擊右側“+”,選擇“JARs or directories”,彈出對話框,選擇剛才下載的jar包,如下圖所示:

Java連接MySQL數據庫命令行程序過程

點擊OK,完成jar包的導入,導入后就可以在工程中看到導入的jar包,如下圖

Java連接MySQL數據庫命令行程序過程

 

創建工具包

在開始練習時,就應該形成一個良好的習慣,將不同類型的類放置在不同包中,創建工具包util,用存放公共使用的工具類,這里的類一般使用靜態方法。
創建數據庫連接類:

Java連接MySQL數據庫命令行程序過程

代碼如下:

public class MySqlConnection {
    private static Connection con=null;
    private static String driveName ="com.mysql.cj.jdbc.Driver";
    private static String url = "jdbc:mysql://127.0.0.1:3306/sl?serverTimezone=GMT%2b8";
    private static String user="root";
    private static String pws="root";
    
    private  MySqlConnection(){}
    public static Connection getCon(){
       if(con==null){
           con = getConnection();
       }
       return con;
    }
    private static Connection getConnection(){
        Connection connection = null;
        try {
            Class.forName(driveName);
            connection = DriverManager.getConnection(url,user,pws);

        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }finally {
            return connection;
        }
    }
}

這里的方法使用static 修飾代表是靜態方法,該方法屬于類,而不是對象;
創建SQL執行包裝類,完成數據庫各種方法的執行,這里僅寫了一個返回ResultSet方法,代碼如下:

public class MysqlHelp {
    public  static ResultSet query(String sql)  {
        Connection con = MySqlConnection.getCon();
        ResultSet result =null;

        try {
            Statement stmt = con.createStatement();
            result= stmt.executeQuery(sql);

        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            return result;
        }
    }
}

 

創建實體類

創建pojo包,在該包下創建實體類Student,實體類只包含私有屬性和get、set方法,為了簡單期間,增加了一個lombok包,就不需要寫get、set方法。lombok jar的安裝,File―>Settings ,打開對話框如下圖:

Java連接MySQL數據庫命令行程序過程

在實體類上加主解符“@Data”即可。

當然也可以不用Lombok,老老實實的寫get、set方法也可以,使用lombok代碼如下

@Data
public class Student {
    private String sno;
    private String sName;
    private String sSex;
    private int sAge;
    private String sDept;

    public Student(String sno,String name, String sex,int age,String dept){
        this.setSno(sno);
        this.setSAge(age);
        this.setSName(name);
        this.setSDept(dept);
        this.setSSex(sex);
    }

    public String getInfo(){
        return "學號:"+sno +"姓名:"+sName+"性別:"+sSex+"年齡:"+"院系:"+sDept;
    }
}

為了演示方便,在實體類中增加了一個構造函數和字符串的輸出,實體類當然完全沒有這兩個方法。

 

創建持久化層

創建一個dao包,包中創建類StudentDao,完成數據的存取操作,代碼如下

public class StudentDao {
    public void getStudentInfo(){
        String sql="SELECT Sno AS sno,Sname AS NAME,Ssex AS sex,Sage AS age,Sdept AS dept FROM student";

        ResultSet result = MysqlHelp.query(sql);
        if(result!=null) {
            while (true) {
                try {
                    if (!result.next()) break;
                    String sno = result.getString("sno");
                    String name = result.getString("name");
                    int age = result.getInt("age");
                    String dept = result.getString("dept");
                    String sex = result.getString("sex");
                    Student student = new Student(sno, name, sex, age, dept);
                    System.out.println(student.getInfo());
                } catch (SQLException e) {
                    e.printStackTrace();
                }

            }
        }
    }

這里調用了上面定義的 MysqlHelp的query方法,完成數據的存取及結構化數據向面向對象實體類的轉換。

 

業務層調用

打開main函數,寫入下代碼,完成dao層方法調用

public class Main {

    public static void main(String[] args) {
        StudentDao student = new StudentDao();
        student.getStudentInfo();
    }
}

執行結果如下:

Java連接MySQL數據庫命令行程序過程

 

總結

在這里盡量使用面向對象的封裝技術,將每個類的職責單一化,而不是把所有代碼寫到一起的做法,盡管寫到一起,代碼更好讀,而且簡單。另外思考一個問題,我們能不能把結構化的數據自動轉換為實體對象,以及數據庫的連接、SQL的執行交給第三方的程序去做,簡化我們的代碼?答案是肯定的,Mybaits、hibernet就是完成這些工作的框架

以上就是Java連接MySQL數據庫創建命令行程序過程的詳細內容,更多關于Java連接MySQL數據庫的資料請關注服務器之家其它相關文章!

原文鏈接:https://blog.csdn.net/guoyp2126/article/details/115659574

延伸 · 閱讀

精彩推薦
  • Java教程Java System.getProperty()-獲取系統參數案例詳解

    Java System.getProperty()-獲取系統參數案例詳解

    這篇文章主要介紹了Java System.getProperty()-獲取系統參數案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以...

    ArvinWoo9972021-11-18
  • Java教程淺析SpringBoot及環境搭建過程

    淺析SpringBoot及環境搭建過程

    Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程.這篇文章主要介紹了SpringBoot介紹及環境搭建,需要的朋...

    創作我的創作6772021-03-26
  • Java教程java獲取網絡類型的方法

    java獲取網絡類型的方法

    這篇文章主要介紹了java獲取網絡類型的方法,涉及java針對網絡類型的參數獲取及判定技巧,具有一定參考借鑒價值,需要的朋友可以參考下 ...

    小賈4872020-01-08
  • Java教程Java中基于Shiro,JWT實現微信小程序登錄完整例子及實現過程

    Java中基于Shiro,JWT實現微信小程序登錄完整例子及實現過程

    這篇文章主要介紹了Java中基于Shiro,JWT實現微信小程序登錄完整例子 ,實現了小程序的自定義登陸,將自定義登陸態token返回給小程序作為登陸憑證。需要的...

    EalenXie9652021-06-18
  • Java教程Java動態添加view的方法

    Java動態添加view的方法

    這篇文章主要介紹了Java動態添加view的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下...

    bzlj29120095962752020-07-31
  • Java教程java實現Floyd算法

    java實現Floyd算法

    這篇文章主要為大家詳細介紹了java實現Floyd算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    豎支7252021-03-14
  • Java教程Java數字簽名算法DSA實例詳解

    Java數字簽名算法DSA實例詳解

    這篇文章主要介紹了Java數字簽名算法DSA,結合實例形式分析了Java數字簽名算法DSA具體定義與使用技巧,需要的朋友可以參考下...

    chengqiuming10352021-04-29
  • Java教程springboot整合kaptcha驗證碼的示例代碼

    springboot整合kaptcha驗證碼的示例代碼

    kaptcha是一個很有用的驗證碼生成工具,本篇文章主要介紹了springboot整合kaptcha驗證碼的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考...

    貪挽懶月9182021-05-11
主站蜘蛛池模板: 久久精品热在线观看85 | 皇上好大好硬好涨好深好爽 | 四虎黄色网址 | 亚洲香蕉网久久综合影院3p | 4438全国最大免费观看 | xxoosex久久久久久 | 国产成人免费片在线视频观看 | 国产尤物精品视频 | 大奶喷水 | 爽好舒服宝贝添奶吻戏 | 爱豆传媒最新视频国产 | 男gay男gay男gay野外 | 精品久久综合一区二区 | 啪啪无尽3d动漫漫画免费网站 | 人禽l交免费视频观看+视频 | 久久综合网久久综合 | 含羞草传媒每天免费一次破解 | 国产高清露脸学生在线观看 | 欧美香蕉人人人人人人爱 | 国内精品视频一区二区三区 | 免费一级毛片完整版在线看 | 国产在线麻豆波多野结衣 | www.亚洲色图 | 精品久久洲久久久久护士免费 | 91麻豆精品激情在线观看最新 | 国产午夜精品不卡视频 | 美女脱一净二净不带胸罩 | 亚洲欧美在线观看首页 | 精品无码国产AV一区二区三区 | 91亚色视频在线观看 | 久久青青草原精品国产软件 | 欧美亚洲国产精品久久第一页 | 亚洲国产精品无圣光一区二区 | 亚洲 欧美 中文 日韩欧美 | 国产福利视频一区二区微拍视频 | 三体动漫在线观看免费完整版2022 | 精品国产自在现线久久 | 日韩精品一区二三区中文 | 五月天色网站 | 五月色婷婷网在线观看 | 91精品免费观看老司机 |