Java連接MySQL數據庫命令行程序過程
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) )
插入數據:
創建命令行程序
新建一個命令行程序,打開idea工具,選擇:File—>New—>Project,彈出對話框,如下圖所示
直接點擊Next按鈕,進入到下一個Tab頁,勾選Create project from template,選擇Command line App
點擊Next進入下一個Tab頁,如圖所示
輸入項目名稱,選擇項目路徑,書寫基本包包名,基本包名一般由com+域名組成,確保其唯一性。填寫完成後,點擊finish按鈕,完成命令行程序的創建,創建完成的頁面如下圖所示
下載並導入jar包
下載mysql-connector-java-8.0.13.jar;下載地址,,將jar包存入本地目錄。
項目中導入Jar包。點擊File—>ProjectStructure 打開對話框,如下圖所示
點擊右側“+”,選擇“JARs or directories”,彈出對話框,選擇剛才下載的jar包,如下圖所示:
點擊OK,完成jar包的導入,導入後就可以在工程中看到導入的jar包,如下圖
創建工具包
在開始練習時,就應該形成一個良好的習慣,將不同類型的類放置在不同包中,創建工具包util,用存放公共使用的工具類,這裡的類一般使用靜態方法。
創建數據庫連接類:
代碼如下:
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 ,打開對話框如下圖:
在實體類上加主解符“@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(); } }
執行結果如下:
總結
在這裡盡量使用面向對象的封裝技術,將每個類的職責單一化,而不是把所有代碼寫到一起的做法,盡管寫到一起,代碼更好讀,而且簡單。另外思考一個問題,我們能不能把結構化的數據自動轉換為實體對象,以及數據庫的連接、SQL的執行交給第三方的程序去做,簡化我們的代碼?答案是肯定的,Mybaits、hibernet就是完成這些工作的框架
以上就是Java連接MySQL數據庫創建命令行程序過程的詳細內容,更多關於Java連接MySQL數據庫的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- mysql觸發器實時檢測一條語句進行備份刪除思路詳解
- JDBC連接MySQL並實現模糊查詢
- JavaWeb實現學生信息管理系統(1)
- MySQL安裝與idea的連接實現
- SQL Server數據庫連接查詢和子查詢實戰案例