鑷敤灝忔鏋?DB宸ュ巶 http://www.aygfsteel.com/Good-Game/archive/2007/09/19/146387.htmlG_G G_G Wed, 19 Sep 2007 03:41:00 GMT http://www.aygfsteel.com/Good-Game/archive/2007/09/19/146387.html http://www.aygfsteel.com/Good-Game/comments/146387.html http://www.aygfsteel.com/Good-Game/archive/2007/09/19/146387.html#Feedback 6 http://www.aygfsteel.com/Good-Game/comments/commentRss/146387.html http://www.aygfsteel.com/Good-Game/services/trackbacks/146387.html BUG 淇敼 : 09-20聽聽 鍥犱負(fù) Oracle聽 聽鍙栧厓鏁版嵁鐨勫瓧絎︿覆闇€瑕?font color="#0000ff">澶у啓 鑷充慨鏀瑰茍涓嬭澆鏇存柊 嫻嬭瘯浣跨敤琛?br />聽聽聽聽聽聽ID聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SN聽聽 STATIONNAME聽聽聽聽聽聽聽聽聽 SPELL聽聽聽聽聽 DEPOTID聽 聽聽聽聽聽聽-------------- ---- -------------------- ---------- ------- ------------------ 聽聽聽聽聽聽08050000390689聽聽聽 3聽聽聽聽 姘稿畨聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽ya聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 .... 鐗堟湰鍗囩駭 09-21 DyanDBUtils 鍔ㄦ€侀潰鍚戝璞℃暟鎹簱 鎿嶄綔 鐢變簬 hibernate 榪樿table褰卞皠鎴恈lass 榪欏ソ澶勫拰鍧忓鍙湁鎴戜滑紼嬪簭鍛樼煡閬撲簡 聽聽聽聽聽聽聽 鍙淇敼鏁版嵁搴撳氨澶ч噺褰卞皠闄勫姞宸ヤ綔瑕佸仛 ,鏈夋椂褰卞皠榪樻湁BUG寮勭殑鎴戜滑@#$%!.....(鍝坔ibernate鎴戞槸灝忛笩^_^),鎴?---涓嶈----褰卞皠 , 娌℃湁浠栦滑鏁版嵁搴撳氨鍙堝洖鍒癹dbc.鏈漢姣旇緝鍠滄鍋鋒噿 鍝堝搱 鑷繁鏉ヤ釜灝忔鏋跺惂( 灝?00鏉ヨ鐨勪唬鐮佹湁鍏磋叮鐨勭湅鐪嬪摝 )!!!聽 鐢ㄥ埌鎶€鏈?br />聽聽聽聽 BeanUtil , JDBC鍏冩暟鎹?鍦ㄨ繖鎴戝彲鏄ソ濂界湅浜嗕笅JDBC,鍏跺疄浠栨槸寰堝己鐨勪笢瑗?澶у搴旇濂藉ソ鐢ㄧ敤^_^)聽 涓嬭澆DBFactory.rar DBFactroy鏁版嵁鏄? +----+-------+-------------+------------+ | id | title | description | buydate聽聽聽 | +----+-------+-------------+------------+ |聽 6 | tt聽聽聽 | asdgwgw聽聽聽聽 | 1990-12-02 | +----+-------+-------------+------------+ 鍏堢湅鐪嬫祴璇曞惂 public 聽 class 聽testNotKonw聽 extends 聽TestCase聽{ 聽聽聽聽 protected 聽 void 聽setUp()聽 throws 聽Exception聽{ 聽聽聽聽聽聽 //榪愯 sql 鍙 聽聽聽聽聽聽聽聽DBFactory.getTools().setIsShowSql(DBFactory.SHOW); 聽聽聽聽聽聽聽聽 super .setUp(); 聽聽聽聽} 聽聽聽聽 public 聽 void 聽testDelete() throws 聽Exception{ 聽聽聽聽聽聽聽聽聽// select 鍑烘潵 灝辯殑 List 涓?DynaBean聽: id , title聽.....聽 綾誨瀷 , 鍜屽€奸兘鏈変簡 聽聽聽聽聽聽聽聽 for (Iterator聽it聽 = 聽DBFactory.getTools().select( " select聽*聽from聽books " ).iterator();it.hasNext();){ 聽聽聽聽聽聽聽聽聽聽聽聽// 閭e氨鏄痙elete :聽鐩殑鏄祴璇曞墠 鍒犻櫎鍏ㄩ儴鏁版嵁 聽聽聽聽聽聽聽聽聽聽聽聽DBFactory.getTools().delete(it.next()); 聽聽聽聽聽聽聽聽} 聽聽聽聽} 聽聽聽聽 聽聽聽聽聽聽 public 聽 void 聽testInsert() throws 聽Exception{ 聽聽聽聽聽聽聽 // insert 瑕佸厛new鍑烘潵涓?table->bean聽聽鍐嵚犳坊灞炴€? 聽 聽聽聽聽聽聽聽聽Object聽obj聽 = 聽DBFactory.getTools().getDynaTableClass( " books " ).newInstance(); 聽聽聽聽聽聽聽聽BeanUtils.setProperty(obj, " id " , " 6 " ); 聽聽聽聽聽聽聽聽BeanUtils.setProperty(obj, " title " , " tt " ); 聽聽聽聽聽聽聽聽BeanUtils.setProperty(obj, " description " , " asdgwgw " ); 聽聽聽聽聽聽聽聽BeanUtils.setProperty(obj, " buydate " , new 聽Date()); 聽聽聽聽聽聽 //榪欏嚑鏄?insert 浜?(綆€鍗曞惂) 聽聽聽聽聽聽聽聽DBFactory.getTools().insert(obj); 聽聽聽聽} 聽聽聽聽 聽聽聽聽 //聽update 聽聽聽聽 public 聽 void 聽testUpdate() throws 聽Exception{ 聽聽聽聽聽聽聽聽 for (Iterator聽it聽 = 聽DBFactory.getTools().select( " select聽*聽from聽books " ).iterator();it.hasNext();){ 聽聽聽聽聽聽聽聽聽聽聽聽Object聽obj聽 = 聽it.next(); 聽聽聽聽聽聽聽聽聽聽聽聽BeanUtils.setProperty(obj, " buydate " , new 聽Date( 90 , 11 , 2 )); 聽聽聽聽聽聽聽聽聽聽聽聽DBFactory.getTools().update(obj); 聽聽聽聽聽聽聽聽} 聽聽聽聽} }
鎺у埗鍙拌緭鍑?/font> //testDelete delete from books where 1=1聽 and id=6//testInsert insert into books(id,title,description,buydate) values( 6,'tt','asdgwgw','2007-09-19')//testUpdate delete from books where 1=1聽 and id=6 insert into books(id,title,description,buydate) values( 6,'tt','asdgwgw','1990-12-02')浠g爜鍏抽敭璇存槑: 鍏抽敭鍦˙eanUtil 鐨?DnayBean涓?鎴戦€氳繃鍏冩暟鎹?寰楀埌浜?榪欎釜Bean 灞炴€?灞炴€х被鍨?榪樻湁琛ㄤ俊鎭斁鍦?getClass();鐨勫瓧絎︿覆涓?br />聽聽聽EG:聽聽聽聽table=...;key=..,..,..;columns=...,..,;聽鍚庡湪insert ,聽delet , update灝辨槸(鍏坉elete鍚巌nsert^_^) 聽涓犺В鏋愬緱鍒?鍔ㄦ€佸啓sql璇彞聽 聽聽聽聽聽聽聽聽聽鏇翠婦 DnayBean涓睘鎬х被鍨嬬湅鐪?Bean value 鏄惁瑕佸姞 ' value聽' 榪樻槸鐩存帴 value 鍒皊ql 涓?br />
聽聽聽聽 public 聽聽BasicDynaClass聽getDynaTableClass(String聽table){ 聽聽聽聽聽聽聽聽Connection聽conn聽 = 聽getConn()聽; 聽聽聽聽聽聽聽聽List聽props聽 = 聽 new 聽ArrayList(); 聽聽聽聽聽聽聽聽DatabaseMetaData聽dm聽 = 聽 null 聽; 聽聽聽聽聽聽聽聽BasicDynaClass聽dynaClass聽 = 聽 null 聽; 聽聽聽聽聽聽聽聽 try 聽{聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽聽dm聽 = 聽conn.getMetaData(); 聽聽聽聽聽聽聽聽聽聽聽聽ResultSet聽coulumns聽 = 聽dm.getColumns( null , null ,table, null ); 聽聽聽聽聽聽聽聽聽聽聽聽 while (coulumns.next()){ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //鍏冩暟鎹腑寰楀埌 綾誨瀷鍋毬燚ynaBean 灞炴€犅? coulumns.getInt( " DATA _TYPE " )聽 鏄?java.sql.Types.XXXXX 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽props.add( new 聽DynaProperty(聽coulumns.getString( " COLUMN_NAME " ),getStrClass(coulumns.getInt( " DATA_TYPE " )))聽); 聽聽聽聽聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽聽聽聽聽 // 聽all聽:聽table 聽聽聽聽聽聽聽聽聽聽聽聽 // delete聽:聽column_name聽column_value 聽聽聽聽聽聽聽聽聽聽聽聽 // insert聽:聽column_name 聽聽聽聽聽聽聽聽聽聽聽聽StringBuffer聽sb聽 = 聽 new 聽StringBuffer(); 聽聽聽聽聽聽聽聽聽聽聽聽sb.append( " table= " ).append(table).append( " ; " ); 聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽聽sb.append( " keys= " ); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽ResultSet聽keys聽 = 聽dm.getPrimaryKeys( null , null ,table); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 while (keys.next()){ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽sb.append(聽keys.getString( " column_name " )).append( " , " ); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽sb.replace(sb.length() - 1 ,sb.length(), " ; " ); 聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽聽sb.append( " columns= " );聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽ResultSet聽couls聽 = 聽dm.getColumns( null , null ,table, null ); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 while (couls.next()){ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽sb.append(聽couls.getString( " column_name " )).append( " , " ); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽sb.replace(sb.length() - 1 ,sb.length(), " ; " ); 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽 //涓?Class name聽 <- sb.toString() 聽聽聽聽聽聽聽聽聽聽聽聽dynaClass聽 = 聽 new 聽BasicDynaClass(sb.toString()聽,聽 null ,聽 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽(DynaProperty[])props.toArray( new 聽DynaProperty[]{})聽); 聽聽聽聽聽聽聽聽}聽 catch 聽(Exception聽e)聽{e.printStackTrace();} 聽聽聽聽聽聽聽聽 finally { 聽聽聽聽聽聽聽聽聽聽聽聽 try 聽{ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽conn.close()聽; 聽聽聽聽聽聽聽聽聽聽聽聽}聽 catch 聽(SQLException聽e)聽{e.printStackTrace();} 聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽 return 聽dynaClass聽; 聽聽聽聽}
insert , delete 宸笉澶?灝辨潵insert
聽聽聽聽 public 聽 boolean 聽insert(Object聽obj){ 聽聽聽聽聽聽聽聽String聽sqlstrat聽 = 聽 " insert聽into聽 " ; 聽聽聽聽聽聽聽聽String聽sqldo聽 = 聽 " 聽values(聽 " ; 聽聽聽聽聽聽聽聽String聽sqlend聽 = 聽 " ) " ; 聽聽聽聽聽聽聽聽String聽sql聽 = 聽 "" ; 聽聽聽聽聽聽聽聽 boolean 聽od聽 = 聽 false 聽; 聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽Connection聽conn聽 = 聽getConn()聽; 聽聽聽聽聽聽聽聽Statement聽sta聽 = 聽 null 聽; 聽聽聽聽聽聽聽聽 try 聽{ 聽聽聽聽聽聽聽聽聽聽聽聽 //瑙f瀽getDynaClass().getName()聽 寰楀埌 table 聽聽聽聽聽聽聽聽聽聽聽聽sqlstrat聽 += 聽getTableConfig(obj, " table " )[ 0 ] + " ( " 聽; 聽聽聽聽聽聽聽聽聽聽聽聽 聽聽聽聽聽聽聽聽聽聽聽聽 //瑙f瀽getDynaClass().getName()聽 寰楀埌聽columns 聽聽聽聽聽聽聽聽聽聽聽聽String[]聽cols聽 = 聽getTableConfig(obj, " columns " ); 聽聽聽聽聽聽聽聽聽聽聽聽 for ( int 聽i = 0 ;i < cols.length;i ++ ){ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽sqlstrat聽 += 聽cols[i]聽聽 + " , " ; 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽sqldo聽 += 聽getSqlAtt(obj,cols[i]聽) + " , " ; 聽聽聽聽聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽聽聽聽聽sql聽 = 聽sqlstrat.substring( 0 ,sqlstrat.length() - 1 ) + " ) " + sqldo.substring( 0 ,sqldo.length() - 1 ) + sqlend; 聽聽聽聽聽聽聽聽聽聽聽聽sta聽 = 聽conn.createStatement(); 聽聽聽聽聽聽聽聽聽聽聽聽 if (聽sta.executeUpdate(sql) > 0 ){od聽 = 聽 true ;}; 聽聽聽聽聽聽聽聽}聽 catch 聽(Exception聽e)聽{e.printStackTrace();} 聽聽聽聽聽聽聽聽 finally { 聽聽聽聽聽聽聽聽聽聽聽聽 try 聽{ 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if (聽isShowSql == SHOW聽)聽{System.out.println();System.out.println(sql);} 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽conn.close(); 聽聽聽聽聽聽聽聽聽聽聽聽}聽 catch 聽(SQLException聽e)聽{e.printStackTrace();} 聽聽聽聽聽聽聽聽} 聽聽聽聽聽聽聽聽 return 聽od聽; 聽聽聽聽}
灝忕粨: 褰撶劧琛ㄨ繛鍜屽琛?鏌?/font> 鏄病闂鐨?br />浣嗗湪澶氳〃 delete , update 灝辮繕娌℃湁瀹屾垚 (铔毦鐨?5555聽 榪樻湁 娌℃椂闂? 鍗曡〃鐨?delete update ,select,insert 閮藉畬鎴愪簡 鎴戜細(xì)鍔姏鐨? 澶у瑕佹槸璁や負(fù)榪樺彲浠?甯繖欏惰創(chuàng) 鍝?鎴戜細(xì)閮介兘瀹屽杽鍝?br />
]]>