
2007年8月6日
愛(ài)情是相知相交的默契,還是好奇加視覺(jué)沖擊的新鮮感,是平等相待,還是占有和被保護(hù)。漫長(zhǎng)的人生該和什么樣的人渡過(guò),離婚爭(zhēng)吵難道無(wú)法避免?為什么對(duì)異性只是觀看美麗,卻無(wú)法去欣賞崇拜。如果不留心觀察,只是流于表面,又怎么能找到另一半。我們沾染太多世俗,儼然社會(huì)的傀儡,怎么才能逃離社會(huì)陰暗的一面,追尋愛(ài)情抑或人生的歸宿,只有留心觀察,認(rèn)真思考,不流于表面。
posted @
2009-08-02 19:07 開(kāi)機(jī) 閱讀(189) |
評(píng)論 (0) |
編輯 收藏
摘要:
閱讀全文
posted @
2008-11-10 21:45 開(kāi)機(jī) 閱讀(1770) |
評(píng)論 (1) |
編輯 收藏
在以前religionMIS基礎(chǔ)(見(jiàn)我的隨筆:extjs做的信息管理系統(tǒng))上加的sping bean,同時(shí)刪除的幾個(gè)類(lèi)。
代碼:http://m.tkk7.com/Files/yijia/(%E5%8E%9F%E5%88%9B)spring_religionMIS.rar
spring包:http://m.tkk7.com/Files/yijia/spring.rar
解壓后的spring.jar放到web-info/lib下即可。
數(shù)據(jù)庫(kù)文件:http://m.tkk7.com/Files/yijia/reliongionmis 20080829 1731.rar
是mysql做的。
剛開(kāi)始進(jìn)系統(tǒng)的時(shí)候有點(diǎn)小問(wèn)題,沒(méi)數(shù)據(jù)顯示,按一下里面的按鈕,如添加,之后就能顯示數(shù)據(jù)了。各個(gè)功能就正常的。以前沒(méi)這個(gè)毛病,加了spring 后就這樣的,也許是以前每次都創(chuàng)建新實(shí)例沒(méi)問(wèn)題,現(xiàn)在在spring容器配置后 單實(shí)例引起的問(wèn)題,。總體來(lái)說(shuō),比以前好的不少。
posted @
2008-11-06 13:32 開(kāi)機(jī) 閱讀(1341) |
評(píng)論 (0) |
編輯 收藏
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(..)一次:
結(jié)果卻是:
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容器初始化的時(shí)候,初始化dbDAO bean會(huì)生成五個(gè)table,可能是先初始化,后才賦值給dbExcute,所以剛開(kāi)始的五個(gè)都是null.
posted @
2008-11-05 14:45 開(kāi)機(jī) 閱讀(267) |
評(píng)論 (1) |
編輯 收藏
我在普通類(lèi)的main方法中調(diào)用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);
}
每次執(zhí)行程序(不停的調(diào)用main方法,不只是只看一次循環(huán)!)都是相同的引用:
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中使用時(shí):
Resource resource = new ClassPathResource("applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(resource);
dbDAO = (DB)factory.getBean("dbDAO");
每次操作創(chuàng)建的都是不同的引用:
如com.yijia_ctgu.DB.DB@16e1782
com.yijia_ctgu.DB.DB@19be6ee
為何會(huì)是這樣,是不是servlet每次都會(huì)重新生成spring容器?是servlet獲取bean的方式有問(wèn)題嗎?還是servlet根本不可能每次使用相同的bean.
我懂了,必須用別的方式:先在web.xml中定義applicatincontext的位置,再用WebApplicationContextUtils獲取ApplicationContext,在用它獲取bean,這樣就每次就是同樣的bean了。
但是錯(cuò)誤還是在繼續(xù),spring我沒(méi)系統(tǒng)的學(xué),所以總是有太多的問(wèn)題。
posted @
2008-11-05 10:34 開(kāi)機(jī) 閱讀(354) |
評(píng)論 (0) |
編輯 收藏
在web.xml中配置spring的contextconfigloaction時(shí),總是定位不到src/applicationContext.xml或者
/src/applicationContext.xml(也許是我不懂父目錄當(dāng)前目錄之類(lèi)的)。算了,直接刪除這個(gè)context-param,把a(bǔ)pplicationContext.xml文件復(fù)制到web-info下面,反正spring默認(rèn)的就是那里。
要是剛開(kāi)始myeclipse自動(dòng)生成的applicationContext.xml文件的位置就在web-info下就不什么事都沒(méi)了,不知道把它放到src有什么意圖?
我暈啊,后來(lái),程序還要到src下找applicationContext.xml文件,web-info下的也不能刪,無(wú)語(yǔ)了。
我發(fā)布到tomcat的時(shí)候,是以WebRoot為根目錄的,即tomcat的server.xml中是這樣配置的:
<Context path="" docBase="D:\spring_religionMIS\WebRoot"/>
這也許就是定位不到src/..的原因吧,因?yàn)槌绦蚩偸菑腤ebRoot往下找,當(dāng)然找不到,我又用../src/applicationContext.xml定位也找不到,不知錯(cuò)在哪里?
posted @
2008-11-04 17:27 開(kāi)機(jī) 閱讀(2178) |
評(píng)論 (2) |
編輯 收藏
MyEclipse中,在加spring時(shí),開(kāi)始只加了spring-core,spring-aop。后來(lái)想加spring-web上去,除了直接復(fù)制粘貼包上去,還有沒(méi)有更好的方法?
posted @
2008-11-03 21:27 開(kāi)機(jī) 閱讀(216) |
評(píng)論 (0) |
編輯 收藏
搞了半天,只要在myeclispe中打開(kāi)tomcat

就行了。
我剛剛都是在外部用tomcat自帶的monitor打開(kāi)的,以前沒(méi)注意到,寫(xiě)在這里提醒自己,希望對(duì)出現(xiàn)類(lèi)似狀況的同志有點(diǎn)幫助。
posted @
2008-11-03 15:16 開(kāi)機(jī) 閱讀(739) |
評(píng)論 (0) |
編輯 收藏
我用easyjweb project命令快速生成的工程后,在src/main/java下建了一個(gè)包c(diǎn)om.easyjweb.action在包下面寫(xiě)了個(gè)HelloAction,但是運(yùn)行時(shí)出錯(cuò),說(shuō)frameworkException: 沒(méi)有找到處理模板的類(lèi):com.easyjweb.action.HelloAction,我在web-inf的classes目錄里看了沒(méi)編譯后的文件。我是用easyjweb project命令快速生成的工程,為什么eclipse沒(méi)編譯對(duì)應(yīng)的java文件呢?
我自己手工新建的工程,添加對(duì)應(yīng)的類(lèi),寫(xiě)好web.xml,可以運(yùn)行程序。
我又用easyjweb project ... -ejs命令試了試,寫(xiě)了Java源文件后,發(fā)現(xiàn)classes目錄有了編譯后的文件,可是這樣生產(chǎn)的工程師EasyJweb+JPA+spring結(jié)構(gòu)的。我只是要個(gè)簡(jiǎn)單的應(yīng)用,用easyjweb project ..又試了幾次,還是不能編譯對(duì)應(yīng)的Java文件。哎,我也不知道問(wèn)題出在哪里?我想這樣一個(gè)成名的框架一定不會(huì)有問(wèn)題了。哪位熟悉此框架的大哥,能不能幫忙解答一下。
posted @
2008-08-30 18:12 開(kāi)機(jī) 閱讀(385) |
評(píng)論 (1) |
編輯 收藏
extjs做的信息管理系統(tǒng),由于業(yè)務(wù)簡(jiǎn)單,操作數(shù)據(jù)庫(kù)的API用自己寫(xiě)的(我以前的 自己做試卷管理系統(tǒng) 系列中 提到),簡(jiǎn)單實(shí)用。在顯示打印頁(yè)面的時(shí)候,用到的servlet FormFilter,原因是數(shù)據(jù)在網(wǎng)絡(luò)間傳輸時(shí)原先在數(shù)據(jù)庫(kù)中的順序打亂了,在這個(gè)servlet中用數(shù)組給它重新排列打印頁(yè)面上數(shù)據(jù)的順序。
程序盡量用只用一個(gè)方法完成所有g(shù)rid中一類(lèi)類(lèi)似的功能,用一個(gè)servlet完成所有一類(lèi)類(lèi)似的操作,用一個(gè)jsp顯示所有要打印的頁(yè)面。
代碼下載:http://m.tkk7.com/Files/yijia/religionMIS.rar
數(shù)據(jù)庫(kù)腳本在代碼根目錄下。
開(kāi)發(fā)環(huán)境:Eclipse3.2,mysql5.0,
eclispe開(kāi)發(fā)環(huán)境中所有文件的編碼都設(shè)置為utf-8。修改mysql的配置文件,使其默認(rèn)編碼為utf-8(方法在網(wǎng)上可以搜到)或者用MySQL Administrator圖形工具也可設(shè)置。
瀏覽器:firefox。我用的是firefox3,不知道firefox2可不可以。但在ie中運(yùn)行不了,我已經(jīng)試過(guò)了。
還有什么問(wèn)題,跟我留言,我非常樂(lè)意與大家交流,這是我暑假學(xué)extjs做的,算作練習(xí)。
補(bǔ)充:編輯是自動(dòng)編輯,在grid輸入框編輯完后,監(jiān)聽(tīng)事件負(fù)責(zé)主動(dòng)把編輯的結(jié)果上傳到數(shù)據(jù)庫(kù)。添加按鈕也是,點(diǎn)擊添加后,新紀(jì)錄在grid上顯示的同時(shí)也插入到數(shù)據(jù)庫(kù)。刪除可選中多行后刪除。up按鈕用的是ext.ux.uploaddialog上傳組件。打印頁(yè)面是用jsp顯示,原先還是想用extjs實(shí)現(xiàn),一來(lái)覺(jué)得復(fù)雜,二來(lái)不知道怎么打印ext窗口,就放棄了。
posted @
2008-08-29 17:56 開(kāi)機(jī) 閱讀(6561) |
評(píng)論 (9) |
編輯 收藏
做試卷管理系統(tǒng)的時(shí)候,寫(xiě)了一個(gè)操作數(shù)據(jù)庫(kù)的工具,它與數(shù)據(jù)庫(kù)的具體的表,屬性都無(wú)關(guān):Tabel t=DB.getTabel("user")后可以操作相應(yīng)的數(shù)據(jù)表,只要這個(gè)名為user的表存在,t.search(property[][],start,limit)傳入一個(gè)屬性數(shù)組,property比如可以為{{"username","admin"},{"password","admin"}....},然后數(shù)據(jù)庫(kù)就可以在user表中查找username="admin"....的記錄,start,limit是查找起始點(diǎn)和數(shù)目限制,js分頁(yè)時(shí)用到。
這樣一來(lái),servlet也可以和具體的表,屬性無(wú)關(guān),只和幾個(gè)通用屬性有關(guān),如tableName,id(主鍵也可以為別的,在config.properties中配置),start,limit等等和具體數(shù)據(jù)庫(kù)無(wú)關(guān)的。奇妙就在這里:不管數(shù)據(jù)庫(kù)有多少?gòu)埍恚瑢?duì)于與每一個(gè)操作,servlet只有一個(gè),如Edit,而不需要EditUser,EditPaper....等等很多edit了。同樣以后系統(tǒng)怎樣擴(kuò)展,怎樣增加表,表的屬性怎樣變化。servlet都可以不變,他只是操作相應(yīng)的數(shù)據(jù)。那么具體的業(yè)務(wù)操作呢?
js為這些帶來(lái)了可能,它與返回的數(shù)據(jù)交互操作,和在服務(wù)器沒(méi)有兩樣,為servlet省去了麻煩。
以上是我個(gè)人感想,僅供參考。
操作數(shù)據(jù)庫(kù)的工具和寫(xiě)的servlet參見(jiàn) 自己動(dòng)手做試卷管理系統(tǒng)的幾篇隨筆。js不好意思公開(kāi)了,這是給別人做的小項(xiàng)目。
posted @
2008-08-12 08:32 開(kāi)機(jī) 閱讀(1681) |
評(píng)論 (7) |
編輯 收藏
在實(shí)踐中的完善,操作數(shù)據(jù)庫(kù)的工具也漸漸的完善了,
下面是我的操作數(shù)據(jù)庫(kù)的工具和使用它的servlet:http://m.tkk7.com/Files/yijia/com.rar
另外還有使用到的第三方工具:http://m.tkk7.com/Files/yijia/lib.rar
posted @
2008-08-07 19:35 開(kāi)機(jī) 閱讀(332) |
評(píng)論 (0) |
編輯 收藏
參考 隨筆:
自己動(dòng)手做試卷管理系統(tǒng)-用戶管理部分
我增加了3個(gè)類(lèi):DB,Table,Row
DB:用來(lái)取得所有的table,并生產(chǎn)相應(yīng)的Table對(duì)象,存貯在HashTable中,使用方法getTable("tableName");可以從HashTable中取得。注意:生產(chǎn)Table對(duì)象的時(shí)候,用了構(gòu)造方法:new Table("tableName","mainPropertyName");mainProperty是給表設(shè)置的主鍵名,在config.properties中可以修改。
Table:定義了 取得某一行(getRow),插入記錄(insert)。這兩個(gè)方法都必須通過(guò)主鍵來(lái)操作。
刪除記錄(delete),搜索(search)。這兩個(gè)方法任意指定條件,如刪除 屬性u(píng)sername="321"的記錄。
計(jì)數(shù)(count),此方法有給定條件的,有無(wú)條件的(用來(lái)求 整個(gè)表有多少行)。
列表(list),返回一個(gè)List代表了整個(gè)表的信息。用到了RowSetDynaClass(在DBExcute類(lèi)中),它是個(gè)好東東。
Row:更簡(jiǎn)單了,兩個(gè)方法:set(String propertyName,String propertyValue)和get(String propertyName) 方法
我的目的就是來(lái)做一個(gè)操作數(shù)據(jù)庫(kù)的通用工具,當(dāng)環(huán)境和數(shù)據(jù)變化時(shí),只需修改一下config.properties(當(dāng)然 性能和我這個(gè)業(yè)余的一樣,也是有點(diǎn)業(yè)余的)。
下面是我檢測(cè)的代碼:
try { //取得user表中主鍵名(這里的主鍵名是username)為Root的行記錄的密碼項(xiàng)的值
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();
}
有很多地方還需要完善,特別是異常類(lèi),我寫(xiě)的異常類(lèi)有點(diǎn)少,不夠用,然后定義的也不是很好。連接池不知道是怎么建的,我發(fā)現(xiàn)用連接太浪費(fèi)啦,就上面的代碼就執(zhí)行了3次連接,getTable的時(shí)候,getRow的時(shí)候,getPassword的時(shí)候,(用HashTable來(lái)存貯Tabel對(duì)象,盡可能的減少了連接,節(jié)約了資源)。等等很多問(wèn)題,還請(qǐng)各位多多指教!!!
最后提醒一下:我只是在com.yijia_ctgu.DB包中增加了3個(gè)類(lèi),以前做的頁(yè)面jsp和servlet,bean都沒(méi)變化(還沒(méi)來(lái)得及用上這個(gè)工具)。java源文件和jsp文件的編碼是gb2312,注意改一下,不然會(huì)亂碼,其實(shí)用utf-8挺好的,不過(guò)我知道的遲了,現(xiàn)在想改,嫌麻煩的。
代碼下載:http://m.tkk7.com/Files/yijia/papermanage0.3.rar
改進(jìn)后的操作數(shù)據(jù)庫(kù)工具:http://m.tkk7.com/Files/yijia/yijia_ctgu.rar
更新時(shí)間:2008年7月30日
posted @
2008-07-26 21:33 開(kāi)機(jī) 閱讀(304) |
評(píng)論 (0) |
編輯 收藏
jdbc中sql語(yǔ)句能不能這樣寫(xiě):
String sql="delete from '"+tableName+"' where '"+property+"'='"+propertyName+"'";
就是表的名字,屬性名和值 通過(guò)方法傳進(jìn)去,
當(dāng)然我的這個(gè)失敗了,不知道有沒(méi)有方法達(dá)到同樣的效果?
posted @
2008-07-26 11:13 開(kāi)機(jī) 閱讀(496) |
評(píng)論 (1) |
編輯 收藏
摘要:
閱讀全文
posted @
2008-07-11 16:37 開(kāi)機(jī) 閱讀(1431) |
評(píng)論 (0) |
編輯 收藏
摘要:
閱讀全文
posted @
2008-07-10 10:03 開(kāi)機(jī) 閱讀(277) |
評(píng)論 (0) |
編輯 收藏
摘要:
閱讀全文
posted @
2008-07-10 10:02 開(kāi)機(jī) 閱讀(409) |
評(píng)論 (0) |
編輯 收藏
摘要: 開(kāi)發(fā)環(huán)境:java5,myeclipse,tomcat。為了從基礎(chǔ)理解javaweb,采用jsp+servlet,沒(méi)用任何框架。
源文件有四個(gè)包:
com.yijia_ctgu.bean
com.yijia_ctgu.DB
com.yijia_ctgu.exception
com.yijia_ctgu.servle
閱讀全文
posted @
2008-06-13 09:42 開(kāi)機(jī) 閱讀(1043) |
評(píng)論 (7) |
編輯 收藏
摘要: struts是控制器C,hibernate封裝的對(duì)數(shù)據(jù)庫(kù)的操作,是M層,spring在ssh中的主要作用是整合資源,就像一張地圖,web系統(tǒng)需要用到某些資源時(shí)就去里面找,這些資源可以是控制層對(duì)象,也可以是模型層對(duì)象,或者是更廣泛的東西。
閱讀全文
posted @
2008-06-09 08:36 開(kāi)機(jī) 閱讀(393) |
評(píng)論 (2) |
編輯 收藏
摘要:
閱讀全文
posted @
2008-06-08 10:33 開(kāi)機(jī) 閱讀(1286) |
評(píng)論 (0) |
編輯 收藏
摘要:
閱讀全文
posted @
2008-05-10 14:41 開(kāi)機(jī) 閱讀(531) |
評(píng)論 (1) |
編輯 收藏
回到原點(diǎn),重新開(kāi)始.但愿一切,還不是太晚!
posted @
2008-05-09 16:31 開(kāi)機(jī) 閱讀(210) |
評(píng)論 (0) |
編輯 收藏
我是懶散的,但我也想做一個(gè)努力奮斗的人。無(wú)奈我的大腦就想睡了幾百年似的,一點(diǎn)活力也沒(méi)有。我真上懷疑我的腦袋還沒(méi)好好的利用過(guò),就算用了也沒(méi)用對(duì)地方。
誰(shuí)又能做我的指路明燈呢?可是常言又道:人比先自救而人救之。
我常常告訴自己從明天起好好的努力,或者就從現(xiàn)在起。但我也不知道這是對(duì)自己的第多少個(gè)承諾呢?
為什么有些人能夠一輩子努力,不松懈,比如居里夫人這樣的。而我卻是在不斷的放棄,松懈了。所幸的是我不曾徹底的絕望過(guò),還可以對(duì)自己說(shuō):從明天起好好干。
posted @
2007-08-12 16:33 開(kāi)機(jī) 閱讀(338) |
評(píng)論 (2) |
編輯 收藏
我能不能這樣想java的分布式計(jì)算。假如設(shè)計(jì)一個(gè)聊天工具,在自己的窗口寫(xiě)下一行字的時(shí)候,同時(shí)在“聊友”的窗口寫(xiě)下了這行字,也就是說(shuō)聊天的人
共用了某些
類(lèi)的實(shí)例,這些
實(shí)例可以是:封裝了談話內(nèi)容,談話時(shí)間...的bean。這樣就不用顯式的調(diào)用socket之類(lèi)的東東了,而且對(duì)數(shù)據(jù)庫(kù)的操作也更方便。
如果真能這樣,寫(xiě)一個(gè)聊天器就輕而易舉了。
posted @
2007-08-08 10:51 開(kāi)機(jī) 閱讀(278) |
評(píng)論 (0) |
編輯 收藏
在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"));
測(cè)試后,兩個(gè)的效果看起來(lái)一樣。
我初次嘗試這些,看不出它們的不同。
那位高手有興趣的,請(qǐng)多多指教!
posted @
2007-08-06 22:57 開(kāi)機(jī) 閱讀(1408) |
評(píng)論 (2) |
編輯 收藏