共計 1972 個字符,預(yù)計需要花費 5 分鐘才能閱讀完成。
這篇文章主要介紹了 ibatis 一對多數(shù)據(jù)庫如何實現(xiàn)的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇 ibatis 一對多數(shù)據(jù)庫如何實現(xiàn)文章都會有所收獲,下面我們一起來看看吧。
iBatis 的多表關(guān)聯(lián)。ibatis 的表關(guān)聯(lián), 和數(shù)據(jù)庫語句無關(guān), 是在 Java 程序中, 把若干語句的結(jié)果關(guān)聯(lián)到一起。這種關(guān)聯(lián)形式, 雖然在大數(shù)據(jù)量時是很奢侈的行為, 但是看起來很干凈, 用起來也很方便。這里用表 lock 和 key 為例, 一個 lock 可以配多個 key。CREATETABLE lock(
id int,
lockName varchar
CREATETABLEkey(
id int,
lockId int,
keyName varchar
); 定義映射類
package zzcv.dao.domain;
publicclass Lock
privateint id;
private String lockName;
private List Key keys = new ArrayList Key
publicvoid getId(){
return..
...
// 省略
package zzcv.dao.domain;
publicclass Key
privateint id;
private String keyName;
private Lock lock; ...
// 省略
} 表關(guān)聯(lián)通過配置文件的 resultMap 實現(xiàn), 不需要關(guān)聯(lián)的查詢?nèi)钥捎?resultClass
sqlMap namespace= test
typeAlias alias= Key = zzcv.dao.domain.Key /
typeAlias alias= Lock = zzcv.dao.domain.Lock /
resultMap id= KeyResult = Key
result property= id = id /
result property= keyName = keyName /
result property= lock = lockId = getLockById /
/resultMap
!----
resultMap id= LockResult = Lock
result property= id = id /
result property= lockName = lockName /
result property= keys = id = getKeysByLockId /
/resultMap
!----
!----
select id= selectAllkeys = KeyResult
![CDATA[
select id,lockId,keyName from key
]]
/select
select id= getLockById = int = Lock
![CDATA[
select id,lockName from lock where id = #value#
]]
/select
select id= selectAllLocks = LockResult
![CDATA[
select id,lockName from lock
]]
/select
select id= getKeyByLockId = int = key
![CDATA[
select id,lockId,keyName from lock where lockId = #value#
]]
/select
/sqlMap 現(xiàn)在可以代碼中使用了
...
..
try{
Reader reader = mxd/dao/data/SqlMapConfig.xml
sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close(); }
catch(IOException e){ thrownew Something bad happened while building the SqlMapClient instance. + e, e);}
List locks=sqlMapper.queryForList( selectAllLocks
// 取一個 Lock 對象。=(Lock)locks.get(0);
// 從 Lock 對象取 List Key。=lock.getKeys();
// 示例結(jié)束, 取到結(jié)果了, 剩余的一個關(guān)聯(lián)是取對象 Lock, 其余操作差不多, 就不寫出了。 ...
關(guān)于“ibatis 一對多數(shù)據(jù)庫如何實現(xiàn)”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“ibatis 一對多數(shù)據(jù)庫如何實現(xiàn)”知識都有一定的了解,大家如果還想學習更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。
正文完