Java基礎之練手小項目__Java

來源:互聯網
上載者:User
記賬軟體 1. 項目介紹 1.1. 項目安排 1.1.1. 項目目標

本項目為JAVAEE基礎班綜合項目,包含了若干個知識點,達到將基礎班所學知識綜合使用,提高了我們對項目的理解與知識點的運用。

熟練View層、Service層、Dao層之間的方法相互叫用作業、

熟練dbutils操作資料庫表完成增刪改查

通過本項目,讓我們瞭解公司項目開發的流程,充分的掌握項目需求分析、設計與功能的代碼實現。提高同學們獨立分析需求與功能實現的能力。 1.1.2. 項目時間

本項目通過1天課程時間完成。 1.2. 項目功能分析 1.2.1. 項目示範 1.2.2. 項目功能介紹

 

l 查詢賬務

l 多條件組合查詢賬務

l 添加賬務

l 編輯賬務

l 刪除賬務

  2. 項目環境搭建 2.1. 技術選型和jar包介紹

每個項目都要使用一些已經成熟的技術,它們通常是由一些專業組織或團隊所提供的開源免費技術。在今後的學習過程中,我們會逐漸對這些專業組織有所瞭解。本項目中使用的技術如下:

l apache的commons組件:

Ø commons-dbutils-1.4.jar:封裝並簡化了JDBC;

Ø commons-dbcp-1.4.jar:apache commons提供的資料庫連接池組件,命名為DBCP;

Ø commons.pool-1.3.jar:DBCP串連池依賴該jar包;

l mysql-connector-java-5.1.28-bin.jar:MySQL的JDBC驅動包,用JDBC串連MySQL資料庫必須使用該JAR包。 2.2. 工具類介紹

每個項目都會用到一些工具類,本項目也不例外。我們不會教大家如何?這些類,而是讓大家知道在項目我們如何使用這些工具類,下面是本項目中所使用的工具類以及介紹:

l JDBCUtils:用來建立資料庫連接池對象;

在項目的實現過程中,我們會說明工具類的使用,這裡就不再過多介紹。

JDBCUtils.java

public class JDBCUtils {

public static final StringDRIVER_CLASS_NAME ="com.mysql.jdbc.Driver";

public static final StringURL = "jdbc:mysql://localhost:3306/gjp";

public static final StringUSERNAME = "root";

public static final StringPASSWORD = "root";

private static BasicDataSourcedataSource = new BasicDataSource();

static {

dataSource.setDriverClassName(DRIVER_CLASS_NAME);

dataSource.setUrl(URL);

dataSource.setUsername(USERNAME);

dataSource.setPassword(PASSWORD);

}

public static DataSource getDataSource() {

return dataSource;

}

}

  2.3. 資料表建立

對一個項目而言,表設計是非常重要的,因為應用程式中所有的操作都是基於資料庫表而進行的,所以我們第一步就是建立資料庫表。

管家婆項目的資料庫設計很簡單,我們只需找到gjp.sql檔案,然後執行之即可。下面是建立庫及表的SQL語句: 2.3.1. 建立資料庫

建立管家婆資料庫 gjp

CREATE DATABASE gjp;

  2.3.2. 建立資料庫表

建立賬務表gjp_zhangwu

CREATE TABLE gjp_zhangwu (

  zwid INT PRIMARY KEY AUTO_INCREMENT,

  flname VARCHAR(200),

  money DOUBLE,

  zhangHu VARCHAR(100),

  createtime DATE,

  description VARCHAR(1000) 

);

  2.3.3. 添加表資料

添加賬務表資料

INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES (1,'吃飯支出',247,'交通銀行','2016-03-02','家庭聚餐');

INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES (2,'工資收入',12345,'現金','2016-03-15','開工資了');

INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES (3,'服裝支出',1998,'現金','2016-04-02','買衣服');

INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES (4,'吃飯支出',325,'現金','2016-06-18','朋友聚餐');

INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES (5,'股票收入',8000,'工商銀行','2016-10-28','股票大漲');

INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES (6,'股票收入',5000,'工商銀行','2016-10-28','股票又大漲');

INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES (7,'工資收入',5000,'交通銀行','2016-10-28','又開工資了');

INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES (8,'禮金支出',5000,'現金','2016-10-28','朋友結婚');

INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES (9,'其他支出',1560,'現金','2016-10-29','丟錢了');

INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES (10,'交通支出',2300,'交通銀行','2016-10-29','油價還在漲啊');

INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES (11,'吃飯支出',1000,'工商銀行','2016-10-29','又吃飯');

INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES (12,'工資收入',1000,'現金','2016-10-30','開資');

INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES (13,'交通支出',2000,'現金','2016-10-30','機票好貴');

INSERT  INTO gjp_zhangwu(zwid,flname,money,zhangHu,createtime,description)VALUES (14,'工資收入',5000,'現金','2016-10-30','又開資');

 

  2.4. 項目分層(分包)的作用

程式為什麼要分包分層?

以顧客去飯店吃飯案例分析一下:

小飯店: 一個服務員搞定(接待顧客\點菜\炒菜)

大飯店:

l 迎賓員(是否有預定\詢問吃中餐還是西餐或者燒烤等\幾位用餐 \領路到指定的包間\找點菜員為顧客點菜 )

l 點菜員(記錄顧客點餐內容\記錄是否有忌口等問題\找廚師為顧客炒菜)

l 廚師(按照顧客菜肴清單,進行炒菜)

通過案例發現,當程式規模小的時候,可以一個人全部完成;但程式規模大的時候,一個人難以完成,這時,要採用多人合作的方式來完成程式開發。

多人合作方式將會碰到工作任務分配問題,這時我們會想,每個人負責完成項目的一塊內容就可以了。那麼,這一塊塊內容的劃分,就需要我們採用分層(分包)的方式完成了。

通過下圖(使用者註冊功能)來講解下,項目中常見的分層(分包)。

 

l view層作用:視圖層,即項目中的介面

l controller層作用:控制層,擷取介面上的資料,為介面設定資料;將要實現的功能交給業務層處理

l service層作用:業務層,功能的實現,與controller控制層和資料訪問層DAO互動,將對資料庫的操作交給DAO資料訪問層來處理

l dao層作用:資料訪問層,用來操作資料庫表的資料

l db資料庫:這裡指MySQL

l domain 實體包:存放JavaBean

l tools工具包:存放項目中使用到的工具類

l test 測試包:存放項目功能測試的代碼 2.5. 工程建立及包管理

1. 使用Eclipse建立Java工程,命名為gjp

2. 建立工程包

Ø cn.itcast.gjp.app: 存放main方法類;

Ø cn.itcast.gjp.domain: 存放JavaBean;

Ø cn.itcast.gjp.view: 存放介面,及表現層類;

Ø cn.itcast.gjp.service: 存放業務層類;

Ø cn.itcast.gjp.dao: 存放資料訪問層類;

Ø cn.itcast.gjp.tools:存放工具類

3. 建立lib檔案夾,用來儲存使用的jar包

  3. 功能模組 3.1. 相關類建立

完成本項目中類的建立,無需在類中添加代碼。

1. 複製已編寫好的工具類JDBCUtils.java 到 tools包中;

2. 複製jar包mysql-connector-java-5.1.28-bin.jar、commons-dbutils-1.4.jar、commons-dbcp-1.4.jar、commons-pool-1.3.jar,到lib檔案夾中,通過Build Path操作,添加到classPath路徑中,提供給JDBCUtils使用;

3. 在app包中,建立類MainApp.java,編寫main主方法,用來完成本項目的啟動

4. 在domain包中,建立類ZhangWu.java,它是用來封裝賬務資訊的JavaBean。

5. 在dao包中,建立類ZhangWuDao.java,給ZhangWuDao類添加一個成員變數QueryRunner對象,因為我們使用dbutils來操作資料庫。

6. 在service包中,建立類ZhangWuService.java,給ZhangWuService類添加一個類型為ZhangWuDao的成員變數,因為service依賴dao。

7. 在view包中,建立類MainView.java,給MainView類添加一個類型為ZhangWuService的成員變數,因為本項目中view依賴service。

 

編寫app包中MainApp.java

/**

 * 主方法類

 */

public class MainApp {

public static void main(String[]args) {

}

}

 

編寫domain包中ZhangWu.java

/**

 * 賬務類

 */

public class ZhangWu {

}

 

編寫Dao包中ZhangWuDao.java

/**

* 賬務資料層類

 */

public class ZhangWuDao{

//擷取資料庫連接池,得到動作表資料的對象QueryRunner

QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());

}

 

編寫Service包,ZhangWuService.java

/**

* 賬務業務層類

 */

public class ZhangWuService {

//service都依賴dao

private ZhangWuDao zhangWuDao =new ZhangWuDao();

}

 

編寫view包,MainView.java

public class MainView {

//本項目中view依賴service

private ZhangWuService

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.