1. 程式人生 > 其它 >電子公文傳輸系統——個人貢獻

電子公文傳輸系統——個人貢獻

電子公文傳輸系統——個人貢獻

一、個人工作簡述

(一)在網上檢索資料

現在網上有許多java-web工程的框架,我們可以在此基礎上實現電子公文傳輸的相關功能,這樣會比較好上手一些。所以首先是要蒐集資料,在自己的idea裡面進行調通。
另外我們借鑑別人的專案,最基本的還是要對整個專案體系有清晰的認識:

哪些是前端,哪些是後端?怎麼分工?首先就要理清各個專案資料夾的作用。

(二)學習java介面

什麼是介面?

一個Java 介面(interface)是一些方法特徵的集合,這些方法特徵來自於具體方法,這些方法符合它們一般來自於一些在系統中不斷出現的方法。一個介面只有方法的特徵,而沒有方法的實現,因此這些方法在不同的地方被實現時,可以具有完全不同的行為。在Java語言中,Java介面還可以定義public的變數。

介面把方法的特徵和方法的實現分割開來。這種分割,體現在介面常常代表一個角色(role),它包裝與該角色相關的操作和屬性,而實現這個介面的類便扮演這個角色的演員(類)。一個角色(介面)可以由不同的演員(類)來演,而不同的演員(類)之間除了扮演一個共同的角色(介面)之外,並不要求有任何其他的共同之處。

介面的用法

定義與實現

public interface Test{
   public static final int num; //成員常量具有固定的修飾符:public static final
   public abstract void method; //成員函式具有固定的修飾符:public abstract 
}

public class Testimpl implements Test{
// 實現介面中的所有方法
    .....
}

介面的特性

介面不是類,尤其不用使用new運算子例項一個介面。
不能構造介面的物件,卻能宣告介面的變數。(出現在回撥設計模式中,體現了Java的多型特性)

/*
*功能:到達指定的時間發出通告
*/
public interface ActionListener{
    void actionPerformed(ActionEvent event);
}

class TimePrinter implements ActionListener{
     //此處ActionEvent引數提供了事件的相關資訊
     public void actionPerformed(ActionEvent event){
         Date now = new Data();
         System.out.println("At the tone, the time is" + now);
         Toolkit.getDefaultToolkit().beep();
     }
}
//然後構造這個類的一個物件,並將它傳遞給Timer構造器。
ActionListener listener = new TimePrinter();
Timer t = new Timer(10000, listener);

介面中不能包含例項域或靜態方法。
介面與介面之間可以是繼承關係,而且可以實現多繼承。

public interface Moveable{
    void move(double x, double y);
}

public interface Powered extends Moveable{
    double milesPerGallon();
}

對於自己在學習介面時所存在的疑惑

介面為何不能用繼承代替呢?

回答:

Java中不支援多繼承,也就是不能存在一個子類繼承多個父類的情況,當然你會問這是為什麼呢.因為這會造成子類中某些方法或者變數的不確定性。

為了彌補1中採用單繼承所帶來的不足,Java出現了介面這個概念,介面可以很好的避免這個問題的出現。

Java中通過多實現介面的方式去解決類之間無法多繼承的問題。

(三)學習前端介面設計

學習前端需要掌握的基礎知識有jquery,css。做移動端開發最好掌握CSS3,CSS3的許多新特性會讓佈局簡單很多。Jquery可以不用每個知識點都很熟練,但是最好都瞭解,用的時候知道有這個東西再進行細緻學習會更牢固。

必須掌握的幾個點:

1.選擇器

基礎的id樣式選擇器是必須掌握的,這裡不多說。

2.事件繫結

不推薦寫法

<button id="foo" onclick="dosomething()">Bar</button>
缺點:這樣做的結果就是html前端和js前端的工作混在了一起,原則上HTML程式碼只能體現網頁的結構  

建議寫法

$(“#foo”).click(function(){});
優點:jQuery是追加繫結的,綁多少執行多少,還解決了IE的不相容問題。

Jquery中的事件繫結方式有很多 click,live,bind,one,on…,它們之間的區別這裡就不多講了。on方法是官方推薦的繫結事件的一個方法,從效能和試用場景上來說都是很好的。

$(“#foo”).on(“click”,function(){});
高階用法,場景(在多行的表格表格中,動態添加了一行,如果想給新增的這行繫結點選事件)

$(“#table”).on(“click”,”.row”,function(){});
這裡在頁面初始化的時候可以給表格裡面帶row樣式的行繫結click事件,就算row是新增的,也會新增上該click事件,即事件委託。用C#來解釋:釋出者會把click事件釋出給所有繼承row這個類的訂閱者身上,即常說的釋出-訂閱者模式。

3.函式閉包

推薦使用閉包的方式封裝函式,避免函式覆蓋。

var PublicHandle=(function(){
    /*私有變數和函式*/
   var _privateVar;
   var _getName=function(){
            
  };
   /*對外提供的介面*/
   return{
       verifyName:function(){
      },
      getName:function(){
      }
  }
});

掌握的jquery的幾個基礎知識,結合前端開任務對js會越來越熟練。

我們最後結合jss形成的登入介面如下:

(四)學習資料庫相關知識,學習mysql以及Navicat的使用方法

MySQL和Navicat基本使用
MySQL簡介:
MySQL是一種開放原始碼的關係型資料庫管理系統(RDBMS),使用最常用的資料庫管理語言–結構化查詢語言(SQL)進行資料庫管理

資料庫分為三級關係:
資料庫伺服器、資料庫、資料表

MySQL安裝:
安裝包下載地址:https://dev.mysql.com/downloads/mysql/
解壓下載的安裝包

在解壓後文件的根目錄下新建配置檔案 my.ini
my.ini:

[mysql]
#設定mysql客戶端預設字符集
default-character-set = utf8
[mysqld]
#設定mysql的安裝目錄
Basedir = C:\Program Files\mysql-8.0.18-winx64
#設定mysql資料庫的資料的存放目錄
Datadir = C:\Program Files\mysql-8.0.18-winx64\data
#設定允許最大連線數
max_connections = 200
#設定開啟表的最大快取數
table_open_cache = 2000
#設定最大快取執行緒數量
thread_cache_size = 10
#設定預設使用埠
port = 3306
#設定服務端使用的字符集
character-set-server = utf8
#設定建立新表時將使用的預設儲存引擎
default-storage-engine = INNODB

配置環境變數:

我的電腦 – 屬性 – 高階系統設定 – 環境變數 – 系統變數 – path
新建環境變數為mysql安裝檔案bin的路徑

MySQL使用:

  1. 用管理員身份開啟cmd命令列,進入bin目錄下執行命令生成資料的存放檔案data
  2. 安裝MySQL
    mysqld install
  3. 啟動MySQL服務
    net start mysql
  4. 登入mysql
    mysql -u使用者名稱 -p密碼
  5. 顯示資料庫中資料表
    show tables
    說明:具體MySQL使用命令參照課本第十四章內容。

MySQL圖形化處理介面Navicat基本使用

網上可以查到免費版本的Navicat安裝
安裝完成後,啟動MySQL服務,開啟Navicat

SQL語句:

SQL即結構化查詢語言(Structured Query Language),是一種特殊目的的程式語言,是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關係資料庫系統

查詢資料

1.基本查詢

select 欄位名1, 欄位名2, … from 表名
2.條件來篩選查詢

select 欄位名1, 欄位名2, … from 表名 where 篩選條件
3.模糊查詢:

select 欄位名1, 欄位名2, … from 表名 where 欄位名 like 模糊查詢條件
4.結果排序查詢

select 欄位名1, 欄位名2, … from 表名 order by 排列順序
5.限制結果查詢:

select 欄位名1, 欄位名2, … from 表名 limit 起始位置,長度
起始位置為查詢結果的索引,從0開始,0代表第一條資料,如果省略,則預設表示從0開始
如果有where和order by,limit放在最後面

6.連線查詢:

select * from 表名1 join 表名2 on 連線條件
連線條件一般為:表名1.值1=表名2.值2
可以為欄位名和表名定義別名

** 新增資料**

insert into 表名(欄位名1, 欄位名2, …) values (值1, 值2, …)

insert into 表名 set 欄位名1=值1, 欄位名2=值2, …
欄位的順序要和值的順序相互對應,如果每個欄位都有資料,那麼表名後面可以省略欄位名,但是values裡面值的順序必須正確,自增長型別的主鍵,可以使用null來填充,MySQL會自動填充資料

** 修改資料**

update 表名 set 欄位名1=值1, 欄位名2=值2, … where 修改條件
刪除資料

delete from 表名 where 刪除條件

(五)促進組內學習,解決其它同學所遇到的問題
首先大家需要在自己的電腦上調通程式碼,並且為了不出現相容性問題,大家要統一jdk、tomcat等的版本。同時我積極解決大家的問題,比如一些關於idea除錯和設定的問題:

二、你們小組總共的程式碼行數,你貢獻的程式碼行數?相關程式碼連結?

個人貢獻程式碼數為1400行左右,以下為專案程式碼。

其中,我編寫了src資料夾下的com.controller檔案中的MenuController.java、UserController.java、SysController.java和WebContent資料夾下的js檔案中的main.js、cache.js以及src資料夾下的com.entity檔案中的User.java裡的程式碼。

https://gitee.com/zhang-yibo/micro-certification

三、你們小組總共的文件數?你貢獻的文件數?相關連結?

我們小組總共的文件數為7.我主要負責了《描述設計》的編寫和衝刺部落格第三篇《需求分析》

描述設計:https://www.cnblogs.com/sanfeng-ooo/p/16907872.html

需求分析:https://www.cnblogs.com/sanfeng-ooo/p/16841842.html