posts - 165, comments - 198, trackbacks - 0, articles - 1
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          BUG修訂 09-21 15:44
          ???時(shí)間類不能Update 問(wèn)題 (如果在上面時(shí)間前下載那請(qǐng)從新下載)

          ?

          在上一版本有大改動(dòng) 自用小框架:DB工廠??
          ?????????1.? 添加 jdbc ?事物
          ?????????2.? 結(jié)構(gòu)更合理
          ???????? 3.? 速度加快

          工具簡(jiǎn)單說(shuō)明
          ??????脫離 DB 影射包 java 數(shù)據(jù)類 ,動(dòng)態(tài)在內(nèi)存中生成 動(dòng)態(tài)數(shù)據(jù)類 ( 使用BeanUtils的DyanBean類?)??????.
          ????? 操作DB 面向?qū)ο蟛僮?當(dāng)然是動(dòng)態(tài)^_^)
          ????? 為了更實(shí)用 我用了張 50多屬性的大表進(jìn)行測(cè)試.閱讀起來(lái)可能有點(diǎn)困難,希望大家海涵.?
          version?
          ???jdk 1.4

          下載
          ??????DyanDBUtils.rar


          包文件說(shuō)明 :
          ?????????Config ? :? JDBC 需要的 驅(qū)動(dòng) 密碼等
          ???????? DBResources :?? 根據(jù)Config給出 Connection ,? PreparedStatement
          ?????????DynaClass :? 根據(jù)元數(shù)據(jù) 和 table 給出 動(dòng)態(tài)BasicDynaClass?
          ?????????SQLSpelling : 給出 sql 語(yǔ)句和 sql語(yǔ)句中 ? ?的值?,格式為 List?:?lise.get(0)為sql語(yǔ)句 后其他為值??
          ?????????DyanDBUtils.java : 為本Util主要入口點(diǎn) 也是運(yùn)行點(diǎn)

          數(shù)據(jù)庫(kù)表? z_jcyy_basepersonnel
          ??????有53個(gè)屬性?(什么類型都有)
          ??????4 個(gè)不為空屬性 personid , workno , depotid ,? hname?????

          測(cè)試

          package ?DyanDBUtils.test;


          import ?java.util.Iterator;

          import ?org.apache.commons.beanutils.BeanUtils;

          import ?DyanDBUtils.DyanDBUtils;
          import ?junit.framework.TestCase;

          public ? class ?testUtil? extends ?TestCase?{
          ????
          static ? private ?DyanDBUtils?dyd? = ??DyanDBUtils.getDyanDBUtil()?;
          ????
          static ? private ?Object?obj? = ? null ?;
          ????//SELECT
          ????
          public ? void ?testSelete() throws ?Exception{
          ????????dyd.setIsShowSQL(
          true );
          ????????
          for (Iterator?it? = ?dyd.select( " select?t.*,?t.rowid?from?z_jcyy_basepersonnel?t?where?t.personid?=?'0301003719' " ).iterator();
          ????????????????????it.hasNext();){
          ????????????Object?obj?
          = ?it.next();
          ????????}
          ????}
          ????//INSERT
          ????
          public ? void ?testInsert() throws ?Exception{
          ????????obj?
          = ?dyd.getDyanDBBean( " z_jcyy_basepersonnel " );
          ????????????BeanUtils.setProperty(obj,
          " personid " , " 1000 " );
          ????????????BeanUtils.setProperty(obj,
          " workno " , " 2000 " );
          ????????????BeanUtils.setProperty(obj,
          " depotid " , " 300 " );
          ????????????BeanUtils.setProperty(obj,
          " hname " , " 劉凱毅 " );
          ????????dyd.insert(obj);?? //INSERT?

          ????}

          ???//UPDATE
          ????
          public ? void ?testUpdate() throws ?Exception{
          ????????BeanUtils.setProperty(obj,
          " hname " , " 思考.. " );
          ????????dyd.updateOrInsert(obj); //UPDATE

          ????}
          //DELECT
          ????
          public ? void ?testDelete() throws ?Exception{
          ????????dyd.delete(obj);//DELECT

          ????????System.out.println(
          " ****************************************** " );
          ????}
          ????
          ????
          public ? void ?testCommit() throws ?Exception{
          ????????dyd.openCommit()?;
          ????????Object?obj?
          = ?dyd.select( " select?t.*,?t.rowid?from?z_jcyy_basepersonnel?t?where?t.personid?='0301003719'? " ).get( 0 );
          ????????
          ????????BeanUtils.setProperty(obj,
          " hname " , " 劉凱毅 " );
          ????????dyd.updateOrInsert(obj);

          ????????BeanUtils.setProperty(obj,
          " workno " , null );? // 不可為空
          ????????dyd.updateOrInsert(obj);
          ????????
          ????????dyd.colseCommit();
          ????????testSelete();
          ????}
          ????
          }



          測(cè)試測(cè)試結(jié)果 (注意: 開(kāi)頭的 李家佳?3719? 和后面的 3719? 沒(méi)變 就是事物的結(jié)果)

          李家佳? 3719
          insert ? into ?z_jcyy_basepersonnel(?depotid,drivekm,hname,hundreds,personid,resbaseknowledge,rescheck,resctrl,resproknowledge,ressaferules,roomarea,safekm,status,workno)? values (??,?,?,?,?,?,?,?,?,?,?,?,?,?)
          //劉凱毅?2000?? print insert
          // 思考..?
          2000???? print update
          delete ? from ?z_jcyy_basepersonnel? where ? 1 = 1 ?? and ?personid = ?
          ******************************************
          delete ? from ?z_jcyy_basepersonnel? where ? 1 = 1 ?? and ?personid = ?
          insert ? into ?z_jcyy_basepersonnel(?beginworktime,depotid,deptid,dob,drivekm,drivelocotype,dynamicinfo,dynamicinfo2,dynamicinfo3,eductionlevel,folk,hname,hundreds,marrystatus,minordriveno,nativeplace,personid,political,postid,promoteminordriverdate,resbaseknowledge,rescheck,resctrl,resproknowledge,ressaferules,roomarea,safebeginday,safekm,sex,status,techniclevel,workno)? values (??,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
          delete ? from ?z_jcyy_basepersonnel? where ? 1 = 1 ?? and ?personid = ?
          insert ? into ?z_jcyy_basepersonnel(?beginworktime,depotid,deptid,dob,drivekm,drivelocotype,dynamicinfo,dynamicinfo2,dynamicinfo3,eductionlevel,folk,hname,hundreds,marrystatus,minordriveno,nativeplace,personid,political,postid,promoteminordriverdate,resbaseknowledge,rescheck,resctrl,resproknowledge,ressaferules,roomarea,safebeginday,safekm,sex,status,techniclevel)? values (??,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
          java.sql.SQLException:?ORA
          - 01400 :?無(wú)法將? NULL ?插入?("JCYY"."Z_JCYY_BASEPERSONNEL"."WORKNO") //事物運(yùn)行良好 哦

          李家佳?3719

          總結(jié)
          事物 解決了 還有多表問(wèn)題 大家多給點(diǎn)鼓勵(lì)哦 ^_^?


          評(píng)論

          # re: 原創(chuàng)小框架: 動(dòng)態(tài)面向?qū)ο髷?shù)據(jù)庫(kù)操作(不要影射類哦)  回復(fù)  更多評(píng)論   

          2007-09-21 15:08 by G_G
          我希望有人 和我一起把這個(gè)小東西 弄成個(gè) 開(kāi)元框架

          # re: 原創(chuàng)小框架: 動(dòng)態(tài)面向?qū)ο髷?shù)據(jù)庫(kù)操作(不要影射類哦)  回復(fù)  更多評(píng)論   

          2007-09-21 15:18 by 千里冰封
          呵呵,挺不錯(cuò)的

          # re: 原創(chuàng)小框架: 動(dòng)態(tài)面向?qū)ο髷?shù)據(jù)庫(kù)操作(不要影射類哦)  回復(fù)  更多評(píng)論   

          2007-09-21 15:47 by G_G
          ^_^

          # re: 原創(chuàng)小框架: 動(dòng)態(tài)面向?qū)ο髷?shù)據(jù)庫(kù)操作(不要影射類哦)  回復(fù)  更多評(píng)論   

          2007-09-21 21:17 by sitinspring
          作個(gè)記號(hào),有空細(xì)看.

          # re: 原創(chuàng)小框架: 動(dòng)態(tài)面向?qū)ο髷?shù)據(jù)庫(kù)操作(不要影射類哦)[未登錄](méi)  回復(fù)  更多評(píng)論   

          2007-09-22 16:21 by 小天
          哇~~真的很不錯(cuò)耶,在前些日子才在想說(shuō) 您是否有空可以修改,沒(méi)想到您已經(jīng)
          改好了,真的很棒,來(lái)去試試看~若有問(wèn)題,再提出來(lái)跟大家分享

          # re: 原創(chuàng)小框架: 動(dòng)態(tài)面向?qū)ο髷?shù)據(jù)庫(kù)操作(不要影射類哦)  回復(fù)  更多評(píng)論   

          2007-09-23 14:13 by Alexander.Yu
          我也有做一只,呵呵,現(xiàn)在正試著用在正式的項(xiàng)目上...
          主站蜘蛛池模板: 芦山县| 清河县| 丹阳市| 乐平市| 米易县| 鸡西市| 和平县| 丹江口市| 城口县| 安顺市| 桑植县| 宜昌市| 衢州市| 襄垣县| 木兰县| 黔东| 吉首市| 菏泽市| 毕节市| 满洲里市| 桃江县| 水城县| 镇安县| 宕昌县| 沙田区| 佛教| 永吉县| 达日县| 阿鲁科尔沁旗| 秦安县| 沿河| 博乐市| 博客| 仁布县| 凤山县| 泗水县| 忻州市| 南华县| 台州市| 吴旗县| 芜湖市|