1. 用戶信息管理一般包括:用戶創(chuàng)建、用戶修改、用戶刪除、用戶查詢四大塊功能。
成都創(chuàng)新互聯(lián)是一家專業(yè)提供南澗企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計、成都網(wǎng)站制作、H5場景定制、小程序制作等業(yè)務(wù)。10年已為南澗眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進行中。
2. 定義基本實體類:User,包含name, address, idNum,tel,regTime四個屬性和相應(yīng)get/set方法。
3. 定義好后臺數(shù)據(jù)庫中的用戶表user_T
4. 編寫對用戶進行增/刪/改/查操作的數(shù)據(jù)庫訪問層代碼
5. 編寫對用戶進行增/刪/改/查操作前臺頁面,調(diào)用相應(yīng)的后臺方法即可。
具體代碼?呵呵,有點太麻煩。先給點分再說吧。
代碼。
你這個代碼很大啊,管理系統(tǒng)。
不知道是javaweb的 ?還是就是java寫的一個圖形界面程序?
給你一個思想。
登陸上選擇不同的身份,提供不同的值,判斷不同的值就可以進行不同的顯示效果。
權(quán)限最大的就可以利用 ?type==這個值||type==這個值就可以顯示這個界面。
web 的話就是OGNL語言使用
圖形界面也差不多。
這~哥們你是開發(fā)還是學(xué)生趕畢業(yè)設(shè)計啊?
學(xué)生還可以理解~
我也想每天的任務(wù)都掛在baidu找人要啊~
一)[DLS_DEAD_LOCAL_STORE]
描述: Dead store to 未使用的局部變量
解決方法:局部變量定義后未使用;實例化對象后又重新對該對象賦值
(二) [ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD]
描述:Write to static field 通過實例方法更新靜態(tài)屬性
常見于常量類,直接通過類名.常量名獲取的方式違背了封裝的原則,findbugs不提倡使用,而如果將常量改成靜態(tài)成員變量,又因為spring不支持靜態(tài)注入導(dǎo)致不能實現(xiàn),解決方法是非靜態(tài)的setter調(diào)用靜態(tài)的setter方法給靜態(tài)成員變量賦值。
解決方法:
常量類F:
class F{
public static String a = “123”;
}
常量a改為靜態(tài)成員變量,通過F.getA()獲取,且由于spring不支持靜態(tài)注入,改為:
class F{
private static String a;
public static Integer getA() {
return a;
}
public void setA(String a) {
setAValue(a);
}
public static void setAValue(String a) {
F.a = a;
}
}
(三) [BX_UNBOXING_IMMEDIATELY_REBOXED]
描述: Boxed value is unboxed and then immediately reboxed 裝箱的值被拆箱,然后立刻重新裝箱了
常見的是三目運算時,同時存在基本類型和包裝類型。
解決方法:
Integer a = null;
//...
a = (a == null)?0:a;
此問題在于a不為null時,會被拆箱,賦值時再裝箱。這是自動裝箱拆箱的特性,只要運算中有不同類型,當(dāng)涉及到類型轉(zhuǎn)換時,編譯器就會向下轉(zhuǎn)型,再進行運算。修改方法,統(tǒng)一類型:
Integer a = null;
//...
a = (a == null)?Integer.valueOf(0):a;
(四) [SE_BAD_FIELD]
描述: Non-transient non-serializable instance field in serializable class在可序列化的類中存在不能序列化或者不能暫存的數(shù)據(jù)
解決方法:
方法1:序列化該對象
方法2:當(dāng)采用struts2框架開發(fā),不可避免的此問題會大量出現(xiàn),因為ActionSupport實現(xiàn)了序列化接口,action繼承了此類,而 service沒序列化,所以在action中引用service對象時提示此錯誤,最簡單的解決方法是將service對象聲明成transient, 即service不需要序列化
方法3(未驗證):To avoid java serialization you need to implement writeObject() and readObject() method in your Class and need to throw NotSerializableExceptionfrom those method.(action中實現(xiàn)這兩個方法?)
private void writeObject(java.io.ObjectOutputStream stream) throws java.io.IOException {
throw new java.io.NotSerializableException( getClass().getName() );
}
private void readObject(java.io.ObjectInputStream stream) throws java.io.IOException, ClassNotFoundException {
throw new java.io.NotSerializableException( getClass().getName() );
}
(五) [NP_LOAD_OF_KNOWN_NULL_VALUE]
描述: Load of known null value加載已知是null的值
解決方法:已知方法參數(shù)為null是,直接傳遞null而不是參數(shù)名
(六) [REC_CATCH_EXCEPTION]
描述: Exception is caught when Exception is not thrown 過泛地捕獲異常或捕獲異常后未做任何處理
解決方法:異常分類捕獲(至少要打印出此異常對象)
(七) [NP_NULL_PARAM_DEREF]
描述: Null passed for nonnull parameter 把空值傳給了非空的參數(shù)
解決方法:增加非空判斷
(八) [NP_IMMEDIATE_DEREFERENCE_OF_READLINE]
描述: Immediate dereference of the result of readLine() 立即引用了readLine()的結(jié)果
解決方法:判斷readLine的結(jié)果是否為空
(九) [EI_EXPOSE_REP] 惡意代碼漏洞
描述:may expose internal representation by returning getter方法返回引用類型
eclipse自動生成的引用類型(Object、數(shù)組、Date等)的getter、setter方法會得到或通過對可變對象的引用操作而暴露代碼內(nèi)部實現(xiàn),解決方法很多,只要返回的或賦值的對象不是原引用對象即可。
解決方法:
以Date類型為例:
public Date getHappenTime() {
if(happenTime != null){
return (Date) happenTime.clone();
}
return null;
}
(十) [ EI_EXPOSE_REP2] 惡意代碼漏洞
描述:may expose internal representation by storing an externally mutable object into setter方法返回引用類型
eclipse自動生成的引用類型(Object、數(shù)組、Date等)的getter、setter方法會得到或通過對可變對象的引用操作而暴露代碼內(nèi)部實現(xiàn),解決方法很多,只要返回的或賦值的對象不是原引用對象即可。
解決方法:
以Date類型為例:
public void setHappenTime(Date happenTime) {
if(happenTime != null){
this.happenTime = (Date) happenTime.clone();
}else{
this.happenTime = null;
}
}