
2009年8月2日
愛情是相知相交的默契,還是好奇加視覺沖擊的新鮮感,是平等相待,還是占有和被保護。漫長的人生該和什么樣的人渡過,離婚爭吵難道無法避免?為什么對異性只是觀看美麗,卻無法去欣賞崇拜。如果不留心觀察,只是流于表面,又怎么能找到另一半。我們沾染太多世俗,儼然社會的傀儡,怎么才能逃離社會陰暗的一面,追尋愛情抑或人生的歸宿,只有留心觀察,認真思考,不流于表面。
posted @
2009-08-02 19:07 開機 閱讀(189) |
評論 (0) |
編輯 收藏

2008年11月6日
在以前religionMIS基礎(見我的隨筆:extjs做的信息管理系統)上加的sping bean,同時刪除的幾個類。
代碼:http://www.tkk7.com/Files/yijia/(%E5%8E%9F%E5%88%9B)spring_religionMIS.rar
spring包:http://www.tkk7.com/Files/yijia/spring.rar
解壓后的spring.jar放到web-info/lib下即可。
數據庫文件:http://www.tkk7.com/Files/yijia/reliongionmis 20080829 1731.rar
是mysql做的。
剛開始進系統的時候有點小問題,沒數據顯示,按一下里面的按鈕,如添加,之后就能顯示數據了。各個功能就正常的。以前沒這個毛病,加了spring 后就這樣的,也許是以前每次都創建新實例沒問題,現在在spring容器配置后 單實例引起的問題,。總體來說,比以前好的不少。
posted @
2008-11-06 13:32 開機 閱讀(1341) |
評論 (0) |
編輯 收藏

2008年11月5日
public class Table {
String tableName;
String mainPropertyName;
static int count=1;
static DBExcute dbExcute=(DBExcute)new ClassPathXmlApplicationContext("applicationContext.xml").getBean("dbExcute");
Table(String tableName,String mainPropertyName){
this.tableName=tableName;
this.mainPropertyName=mainPropertyName;
System.out.println("construct table"+(count++)+" use:"+dbExcute);
}
.............
.............
public static void main(String []dsf){
new Table("user","1");
}
}
如上只new Table(..)一次:
結果卻是:
construct table1 use:null
construct table2 use:null
construct table3 use:null
construct table4 use:null
construct table5 use:null
construct table6 use:com.yijia_ctgu.DB.DBExcute@535b58
奇怪中。。。。。。。
明白了,spring容器初始化的時候,初始化dbDAO bean會生成五個table,可能是先初始化,后才賦值給dbExcute,所以剛開始的五個都是null.
posted @
2008-11-05 14:45 開機 閱讀(267) |
評論 (1) |
編輯 收藏
我在普通類的main方法中調用bean:
Resource resource = new ClassPathResource("applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(resource);
for(int i=1;i<5;i++){
DB dbDAO = (DB)factory.getBean("dbDAO");
System.out.println(dbDAO);
}
每次執行程序(不停的調用main方法,不只是只看一次循環!)都是相同的引用:
com.yijia_ctgu.DB.DB@12a54f9
com.yijia_ctgu.DB.DB@12a54f9
com.yijia_ctgu.DB.DB@12a54f9
com.yijia_ctgu.DB.DB@12a54f9
但是在servlet中使用時:
Resource resource = new ClassPathResource("applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(resource);
dbDAO = (DB)factory.getBean("dbDAO");
每次操作創建的都是不同的引用:
如com.yijia_ctgu.DB.DB@16e1782
com.yijia_ctgu.DB.DB@19be6ee
為何會是這樣,是不是servlet每次都會重新生成spring容器?是servlet獲取bean的方式有問題嗎?還是servlet根本不可能每次使用相同的bean.
我懂了,必須用別的方式:先在web.xml中定義applicatincontext的位置,再用WebApplicationContextUtils獲取ApplicationContext,在用它獲取bean,這樣就每次就是同樣的bean了。
但是錯誤還是在繼續,spring我沒系統的學,所以總是有太多的問題。
posted @
2008-11-05 10:34 開機 閱讀(354) |
評論 (0) |
編輯 收藏

2008年11月4日
在web.xml中配置spring的contextconfigloaction時,總是定位不到src/applicationContext.xml或者
/src/applicationContext.xml(也許是我不懂父目錄當前目錄之類的)。算了,直接刪除這個context-param,把applicationContext.xml文件復制到web-info下面,反正spring默認的就是那里。
要是剛開始myeclipse自動生成的applicationContext.xml文件的位置就在web-info下就不什么事都沒了,不知道把它放到src有什么意圖?
我暈啊,后來,程序還要到src下找applicationContext.xml文件,web-info下的也不能刪,無語了。
我發布到tomcat的時候,是以WebRoot為根目錄的,即tomcat的server.xml中是這樣配置的:
<Context path="" docBase="D:\spring_religionMIS\WebRoot"/>
這也許就是定位不到src/..的原因吧,因為程序總是從WebRoot往下找,當然找不到,我又用../src/applicationContext.xml定位也找不到,不知錯在哪里?
posted @
2008-11-04 17:27 開機 閱讀(2178) |
評論 (2) |
編輯 收藏

2008年11月3日
MyEclipse中,在加spring時,開始只加了spring-core,spring-aop。后來想加spring-web上去,除了直接復制粘貼包上去,還有沒有更好的方法?
posted @
2008-11-03 21:27 開機 閱讀(216) |
評論 (0) |
編輯 收藏
搞了半天,只要在myeclispe中打開tomcat

就行了。
我剛剛都是在外部用tomcat自帶的monitor打開的,以前沒注意到,寫在這里提醒自己,希望對出現類似狀況的同志有點幫助。
posted @
2008-11-03 15:16 開機 閱讀(739) |
評論 (0) |
編輯 收藏

2008年8月30日
我用easyjweb project命令快速生成的工程后,在src/main/java下建了一個包com.easyjweb.action在包下面寫了個HelloAction,但是運行時出錯,說frameworkException: 沒有找到處理模板的類:com.easyjweb.action.HelloAction,我在web-inf的classes目錄里看了沒編譯后的文件。我是用easyjweb project命令快速生成的工程,為什么eclipse沒編譯對應的java文件呢?
我自己手工新建的工程,添加對應的類,寫好web.xml,可以運行程序。
我又用easyjweb project ... -ejs命令試了試,寫了Java源文件后,發現classes目錄有了編譯后的文件,可是這樣生產的工程師EasyJweb+JPA+spring結構的。我只是要個簡單的應用,用easyjweb project ..又試了幾次,還是不能編譯對應的Java文件。哎,我也不知道問題出在哪里?我想這樣一個成名的框架一定不會有問題了。哪位熟悉此框架的大哥,能不能幫忙解答一下。
posted @
2008-08-30 18:12 開機 閱讀(385) |
評論 (1) |
編輯 收藏

2008年8月29日
extjs做的信息管理系統,由于業務簡單,操作數據庫的API用自己寫的(我以前的 自己做試卷管理系統 系列中 提到),簡單實用。在顯示打印頁面的時候,用到的servlet FormFilter,原因是數據在網絡間傳輸時原先在數據庫中的順序打亂了,在這個servlet中用數組給它重新排列打印頁面上數據的順序。
程序盡量用只用一個方法完成所有grid中一類類似的功能,用一個servlet完成所有一類類似的操作,用一個jsp顯示所有要打印的頁面。
代碼下載:http://www.tkk7.com/Files/yijia/religionMIS.rar
數據庫腳本在代碼根目錄下。
開發環境:Eclipse3.2,mysql5.0,
eclispe開發環境中所有文件的編碼都設置為utf-8。修改mysql的配置文件,使其默認編碼為utf-8(方法在網上可以搜到)或者用MySQL Administrator圖形工具也可設置。
瀏覽器:firefox。我用的是firefox3,不知道firefox2可不可以。但在ie中運行不了,我已經試過了。
還有什么問題,跟我留言,我非常樂意與大家交流,這是我暑假學extjs做的,算作練習。
補充:編輯是自動編輯,在grid輸入框編輯完后,監聽事件負責主動把編輯的結果上傳到數據庫。添加按鈕也是,點擊添加后,新紀錄在grid上顯示的同時也插入到數據庫。刪除可選中多行后刪除。up按鈕用的是ext.ux.uploaddialog上傳組件。打印頁面是用jsp顯示,原先還是想用extjs實現,一來覺得復雜,二來不知道怎么打印ext窗口,就放棄了。
posted @
2008-08-29 17:56 開機 閱讀(6561) |
評論 (9) |
編輯 收藏

2008年8月12日
做試卷管理系統的時候,寫了一個操作數據庫的工具,它與數據庫的具體的表,屬性都無關:Tabel t=DB.getTabel("user")后可以操作相應的數據表,只要這個名為user的表存在,t.search(property[][],start,limit)傳入一個屬性數組,property比如可以為{{"username","admin"},{"password","admin"}....},然后數據庫就可以在user表中查找username="admin"....的記錄,start,limit是查找起始點和數目限制,js分頁時用到。
這樣一來,servlet也可以和具體的表,屬性無關,只和幾個通用屬性有關,如tableName,id(主鍵也可以為別的,在config.properties中配置),start,limit等等和具體數據庫無關的。奇妙就在這里:不管數據庫有多少張表,對于與每一個操作,servlet只有一個,如Edit,而不需要EditUser,EditPaper....等等很多edit了。同樣以后系統怎樣擴展,怎樣增加表,表的屬性怎樣變化。servlet都可以不變,他只是操作相應的數據。那么具體的業務操作呢?
js為這些帶來了可能,它與返回的數據交互操作,和在服務器沒有兩樣,為servlet省去了麻煩。
以上是我個人感想,僅供參考。
操作數據庫的工具和寫的servlet參見 自己動手做試卷管理系統的幾篇隨筆。js不好意思公開了,這是給別人做的小項目。
posted @
2008-08-12 08:32 開機 閱讀(1680) |
評論 (7) |
編輯 收藏

2008年8月7日
在實踐中的完善,操作數據庫的工具也漸漸的完善了,
下面是我的操作數據庫的工具和使用它的servlet:http://www.tkk7.com/Files/yijia/com.rar
另外還有使用到的第三方工具:http://www.tkk7.com/Files/yijia/lib.rar
posted @
2008-08-07 19:35 開機 閱讀(332) |
評論 (0) |
編輯 收藏

2008年7月26日
參考 隨筆:
自己動手做試卷管理系統-用戶管理部分
我增加了3個類:DB,Table,Row
DB:用來取得所有的table,并生產相應的Table對象,存貯在HashTable中,使用方法getTable("tableName");可以從HashTable中取得。注意:生產Table對象的時候,用了構造方法:new Table("tableName","mainPropertyName");mainProperty是給表設置的主鍵名,在config.properties中可以修改。
Table:定義了 取得某一行(getRow),插入記錄(insert)。這兩個方法都必須通過主鍵來操作。
刪除記錄(delete),搜索(search)。這兩個方法任意指定條件,如刪除 屬性username="321"的記錄。
計數(count),此方法有給定條件的,有無條件的(用來求 整個表有多少行)。
列表(list),返回一個List代表了整個表的信息。用到了RowSetDynaClass(在DBExcute類中),它是個好東東。
Row:更簡單了,兩個方法:set(String propertyName,String propertyValue)和get(String propertyName) 方法
我的目的就是來做一個操作數據庫的通用工具,當環境和數據變化時,只需修改一下config.properties(當然 性能和我這個業余的一樣,也是有點業余的)。
下面是我檢測的代碼:
try { //取得user表中主鍵名(這里的主鍵名是username)為Root的行記錄的密碼項的值
System.out.println(DB.getDB().getTable("user").getRow("Root").get("password"));
} catch (NotQueryException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
有很多地方還需要完善,特別是異常類,我寫的異常類有點少,不夠用,然后定義的也不是很好。連接池不知道是怎么建的,我發現用連接太浪費啦,就上面的代碼就執行了3次連接,getTable的時候,getRow的時候,getPassword的時候,(用HashTable來存貯Tabel對象,盡可能的減少了連接,節約了資源)。等等很多問題,還請各位多多指教!!!
最后提醒一下:我只是在com.yijia_ctgu.DB包中增加了3個類,以前做的頁面jsp和servlet,bean都沒變化(還沒來得及用上這個工具)。java源文件和jsp文件的編碼是gb2312,注意改一下,不然會亂碼,其實用utf-8挺好的,不過我知道的遲了,現在想改,嫌麻煩的。
代碼下載:http://www.tkk7.com/Files/yijia/papermanage0.3.rar
改進后的操作數據庫工具:http://www.tkk7.com/Files/yijia/yijia_ctgu.rar
更新時間:2008年7月30日
posted @
2008-07-26 21:33 開機 閱讀(304) |
評論 (0) |
編輯 收藏
jdbc中sql語句能不能這樣寫:
String sql="delete from '"+tableName+"' where '"+property+"'='"+propertyName+"'";
就是表的名字,屬性名和值 通過方法傳進去,
當然我的這個失敗了,不知道有沒有方法達到同樣的效果?
posted @
2008-07-26 11:13 開機 閱讀(496) |
評論 (1) |
編輯 收藏

2008年6月13日
摘要: 開發環境:java5,myeclipse,tomcat。為了從基礎理解javaweb,采用jsp+servlet,沒用任何框架。
源文件有四個包:
com.yijia_ctgu.bean
com.yijia_ctgu.DB
com.yijia_ctgu.exception
com.yijia_ctgu.servle
閱讀全文
posted @
2008-06-13 09:42 開機 閱讀(1043) |
評論 (7) |
編輯 收藏

2008年6月9日
摘要: struts是控制器C,hibernate封裝的對數據庫的操作,是M層,spring在ssh中的主要作用是整合資源,就像一張地圖,web系統需要用到某些資源時就去里面找,這些資源可以是控制層對象,也可以是模型層對象,或者是更廣泛的東西。
閱讀全文
posted @
2008-06-09 08:36 開機 閱讀(393) |
評論 (2) |
編輯 收藏

2007年8月12日
我是懶散的,但我也想做一個努力奮斗的人。無奈我的大腦就想睡了幾百年似的,一點活力也沒有。我真上懷疑我的腦袋還沒好好的利用過,就算用了也沒用對地方。
誰又能做我的指路明燈呢?可是常言又道:人比先自救而人救之。
我常常告訴自己從明天起好好的努力,或者就從現在起。但我也不知道這是對自己的第多少個承諾呢?
為什么有些人能夠一輩子努力,不松懈,比如居里夫人這樣的。而我卻是在不斷的放棄,松懈了。所幸的是我不曾徹底的絕望過,還可以對自己說:從明天起好好干。
posted @
2007-08-12 16:33 開機 閱讀(338) |
評論 (2) |
編輯 收藏

2007年8月8日
我能不能這樣想java的分布式計算。假如設計一個聊天工具,在自己的窗口寫下一行字的時候,同時在“聊友”的窗口寫下了這行字,也就是說聊天的人
共用了某些
類的實例,這些
實例可以是:封裝了談話內容,談話時間...的bean。這樣就不用顯式的調用socket之類的東東了,而且對數據庫的操作也更方便。
如果真能這樣,寫一個聊天器就輕而易舉了。
posted @
2007-08-08 10:51 開機 閱讀(278) |
評論 (0) |
編輯 收藏

2007年8月6日
在struts的表單bean的validate()方法中:
if(username.trim().equals(""))
error.add("username", new
ActionMessage("error.username.username_is_requred"));
if(password.trim().equals(""))
error.add("password", new
ActionError("error.password.password_is_requred"));
測試后,兩個的效果看起來一樣。
我初次嘗試這些,看不出它們的不同。
那位高手有興趣的,請多多指教!
posted @
2007-08-06 22:57 開機 閱讀(1408) |
評論 (2) |
編輯 收藏

2007年8月5日
我想我的配置應該是對的,因為能夠生成xwork.xml,也能有生成action的對話框出來,但是當最后點finish時,
出現"xwork.xml not found"的錯誤.在此前,我的src下已生成了xwork.xml了。
也許是因為這個插件的版本(1.0.1)比較新,連它的配置都和網上介紹的不一樣,一般介紹的都要配置兩個參數,但是在首選項里,eclipsework一欄里,只有一個參數可配置,我是把wizards.xml移動到templates下,再
配置wizards.xml的位置:..\templates\wizards.xml,這樣后Templates才可以用,但是為什么總是出現"xwork.xml not found"的錯誤了,請大家指教!
posted @
2007-08-05 19:16 開機 閱讀(735) |
評論 (5) |
編輯 收藏