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 />

]]>