BUG修訂 09-21 15:44
???時間類不能Update 問題 (如果在上面時間前下載那請從新下載)
?
在上一版本有大改動 自用小框架:DB工廠??
?????????1.? 添加 jdbc ?事物
?????????2.? 結構更合理
???????? 3.? 速度加快
工具簡單說明
??????脫離 DB 影射包 java 數據類 ,動態在內存中生成 動態數據類 ( 使用BeanUtils的DyanBean類?)??????.
????? 操作DB 面向對象操作(當然是動態^_^)
????? 為了更實用 我用了張 50多屬性的大表進行測試.閱讀起來可能有點困難,希望大家海涵.?
version?
???jdk 1.4
下載
??????DyanDBUtils.rar
包文件說明 :
?????????Config ? :? JDBC 需要的 驅動 密碼等
???????? DBResources :?? 根據Config給出 Connection ,? PreparedStatement
?????????DynaClass :? 根據元數據 和 table 給出 動態BasicDynaClass?
?????????SQLSpelling : 給出 sql 語句和 sql語句中 ? ?的值?,格式為 List?:?lise.get(0)為sql語句 后其他為值??
?????????DyanDBUtils.java : 為本Util主要入口點 也是運行點
數據庫表? z_jcyy_basepersonnel
??????有53個屬性?(什么類型都有)
??????4 個不為空屬性 personid , workno , depotid ,? hname?????
測試
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();
????}
????
}
測試測試結果 (注意: 開頭的 李家佳?3719? 和后面的 3719? 沒變 就是事物的結果)
李家佳?
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
:?無法將?
NULL
?插入?("JCYY"."Z_JCYY_BASEPERSONNEL"."WORKNO") //事物運行良好 哦
李家佳?3719
總結
事物 解決了 還有多表問題 大家多給點鼓勵哦 ^_^?