電子公文傳輸系統——個人貢獻
電子公文傳輸系統——個人貢獻
一、個人工作簡述
(一)在網上檢索資料
現在網上有許多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使用:
- 用管理員身份開啟cmd命令列,進入bin目錄下執行命令生成資料的存放檔案data
- 安裝MySQL
mysqld install
- 啟動MySQL服務
net start mysql
- 登入mysql
mysql -u使用者名稱 -p密碼
- 顯示資料庫中資料表
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.我主要負責了《描述設計》的編寫和衝刺部落格第三篇《需求分析》