最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java連接MySQL數(shù)據(jù)庫命令行程序過程

 更新時(shí)間:2021年10月12日 16:09:24   作者:guoyp2126  
SQL編程包括兩種形式,一種是過程化編程,主要通過數(shù)據(jù)庫交互式工具,通過存儲(chǔ)過程、觸發(fā)器、函數(shù)等形式的編程;另一種是嵌入式SQL編程,將SQL語句嵌入到高級(jí)開發(fā)語言,完成數(shù)據(jù)的各種操作

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

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

創(chuàng)建表

通過SQLyol建立表student;

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

插入數(shù)據(jù):

在這里插入圖片描述

創(chuàng)建命令行程序

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

在這里插入圖片描述

直接點(diǎn)擊Next按鈕,進(jìn)入到下一個(gè)Tab頁,勾選Create project from template,選擇Command line App

在這里插入圖片描述

點(diǎn)擊Next進(jìn)入下一個(gè)Tab頁,如圖所示

在這里插入圖片描述

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

在這里插入圖片描述

下載并導(dǎo)入jar包

下載mysql-connector-java-8.0.13.jar;下載地址,,將jar包存入本地目錄。
項(xiàng)目中導(dǎo)入Jar包。點(diǎn)擊File—>ProjectStructure 打開對(duì)話框,如下圖所示

在這里插入圖片描述

點(diǎn)擊右側(cè)“+”,選擇“JARs or directories”,彈出對(duì)話框,選擇剛才下載的jar包,如下圖所示:

在這里插入圖片描述

點(diǎn)擊OK,完成jar包的導(dǎo)入,導(dǎo)入后就可以在工程中看到導(dǎo)入的jar包,如下圖

在這里插入圖片描述

創(chuàng)建工具包

在開始練習(xí)時(shí),就應(yīng)該形成一個(gè)良好的習(xí)慣,將不同類型的類放置在不同包中,創(chuàng)建工具包util,用存放公共使用的工具類,這里的類一般使用靜態(tài)方法。
創(chuàng)建數(shù)據(jù)庫連接類:

在這里插入圖片描述

代碼如下:

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 修飾代表是靜態(tài)方法,該方法屬于類,而不是對(duì)象;
創(chuàng)建SQL執(zhí)行包裝類,完成數(shù)據(jù)庫各種方法的執(zhí)行,這里僅寫了一個(gè)返回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;
        }
    }
}

創(chuàng)建實(shí)體類

創(chuàng)建pojo包,在該包下創(chuàng)建實(shí)體類Student,實(shí)體類只包含私有屬性和get、set方法,為了簡單期間,增加了一個(gè)lombok包,就不需要寫get、set方法。lombok jar的安裝,F(xiàn)ile—>Settings ,打開對(duì)話框如下圖:

在這里插入圖片描述

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

當(dāng)然也可以不用Lombok,老老實(shí)實(shí)的寫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 "學(xué)號(hào):"+sno +"姓名:"+sName+"性別:"+sSex+"年齡:"+"院系:"+sDept;
    }
}

為了演示方便,在實(shí)體類中增加了一個(gè)構(gòu)造函數(shù)和字符串的輸出,實(shí)體類當(dāng)然完全沒有這兩個(gè)方法。

創(chuàng)建持久化層

創(chuàng)建一個(gè)dao包,包中創(chuàng)建類StudentDao,完成數(shù)據(jù)的存取操作,代碼如下

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();
                }

            }
        }
    }

這里調(diào)用了上面定義的 MysqlHelp的query方法,完成數(shù)據(jù)的存取及結(jié)構(gòu)化數(shù)據(jù)向面向?qū)ο髮?shí)體類的轉(zhuǎn)換。

業(yè)務(wù)層調(diào)用

打開main函數(shù),寫入下代碼,完成dao層方法調(diào)用

public class Main {

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

執(zhí)行結(jié)果如下:

在這里插入圖片描述

總結(jié)

在這里盡量使用面向?qū)ο蟮姆庋b技術(shù),將每個(gè)類的職責(zé)單一化,而不是把所有代碼寫到一起的做法,盡管寫到一起,代碼更好讀,而且簡單。另外思考一個(gè)問題,我們能不能把結(jié)構(gòu)化的數(shù)據(jù)自動(dòng)轉(zhuǎn)換為實(shí)體對(duì)象,以及數(shù)據(jù)庫的連接、SQL的執(zhí)行交給第三方的程序去做,簡化我們的代碼?答案是肯定的,Mybaits、hibernet就是完成這些工作的框架

以上就是Java連接MySQL數(shù)據(jù)庫創(chuàng)建命令行程序過程的詳細(xì)內(nèi)容,更多關(guān)于Java連接MySQL數(shù)據(jù)庫的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java IO文件過濾器對(duì)命令設(shè)計(jì)模式的使用

    Java IO文件過濾器對(duì)命令設(shè)計(jì)模式的使用

    java io流里面使用到了很多的設(shè)計(jì)模式,最典型的就是裝飾模式,還有命令模式,下面分兩部分來講Java IO文件過濾器對(duì)命令設(shè)計(jì)模式的使用,一起看看吧
    2017-06-06
  • Maven發(fā)布Jar包中文亂碼解決方法

    Maven發(fā)布Jar包中文亂碼解決方法

    這篇文章主要介紹了Maven發(fā)布Jar包中文亂碼解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • java.io.EOFException: Unexpected end of ZLIB input stream異常解決

    java.io.EOFException: Unexpected end of 

    本文主要介紹了java.io.EOFException: Unexpected end of ZLIB input stream異常解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 超詳細(xì)講解Java秒殺項(xiàng)目登陸模塊的實(shí)現(xiàn)

    超詳細(xì)講解Java秒殺項(xiàng)目登陸模塊的實(shí)現(xiàn)

    這是一個(gè)主要使用java開發(fā)的秒殺系統(tǒng),項(xiàng)目比較大,所以本篇只實(shí)現(xiàn)了登陸模塊,代碼非常詳盡,感興趣的朋友快來看看
    2022-03-03
  • MAC下如何設(shè)置JDK環(huán)境變量

    MAC下如何設(shè)置JDK環(huán)境變量

    這篇文章主要介紹了MAC下如何設(shè)置JDK環(huán)境變量問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Spring Cloud Alibaba Nacos Config進(jìn)階使用

    Spring Cloud Alibaba Nacos Config進(jìn)階使用

    這篇文章主要介紹了Spring Cloud Alibaba Nacos Config進(jìn)階使用,文中使用企業(yè)案例,圖文并茂的展示了Nacos Config的使用,感興趣的小伙伴可以看一看
    2021-08-08
  • Spring 中的 ResourceLoader實(shí)例詳解

    Spring 中的 ResourceLoader實(shí)例詳解

    Spring框架提供了ResourceLoader接口,用于加載資源文件,DefaultResourceLoader是其基本實(shí)現(xiàn),只能加載單個(gè)資源,而ResourcePatternResolver繼承自ResourceLoader,增加了按模式加載多個(gè)資源的能力,感興趣的朋友一起看看吧
    2024-11-11
  • Springboot集成JAXB返回xml格式

    Springboot集成JAXB返回xml格式

    這篇文章主要為大家詳細(xì)介紹了Springboot如何集成JAXB返回xml格式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • 一文詳解java如何實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用

    一文詳解java如何實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用

    從?Java?8?開始,便引入了一種稱為“流式?API”的編程風(fēng)格,當(dāng)然也被稱為“鏈?zhǔn)皆O(shè)置”或“鏈?zhǔn)秸{(diào)用”,本文主要來和大家討論一下如何實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用,感興趣的可以了解下
    2023-12-12
  • Eclipse插件大全 挑選最牛的TOP30(全)

    Eclipse插件大全 挑選最牛的TOP30(全)

    ?“Eclipse最牛的30個(gè)插件”不知道看官們是否了解,風(fēng)少俠特意翻譯出來奉獻(xiàn)給各位,希望大家喜歡
    2013-02-02

最新評(píng)論

时尚| 连南| 通州区| 永昌县| 朝阳区| 江源县| 江川县| 元谋县| 林甸县| 米林县| 泰来县| 江安县| 毕节市| 高台县| 云霄县| 嫩江县| 九龙坡区| 清原| 建阳市| 固镇县| 肃宁县| 沙洋县| 宽甸| 科技| 周至县| 娱乐| 西安市| 日喀则市| 遵义市| 雷山县| 斗六市| 托里县| 洱源县| 萍乡市| 尉氏县| 湘潭县| 吉首市| 大悟县| 平谷区| 云龙县| 修水县|