Mybatis中数据库表一对多关联

14 篇文章 0 订阅
1 篇文章 0 订阅
<sqlMap namespace="User">
<typeAlias alias="user" type="com.ibatis.sample.User"/>
<typeAlias alias="address" type="com.ibatis.sample.Address"/>
<resultMap id="get-user-result" class="user">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="sex" column="sex"/>
<result property="addresses" column="id"
select="User.getAddressByUserId"/>
</resultMap>
<select id="getUsers"
parameterClass="java.lang.String"
resultMap="get-user-result">
<![CDATA[
select 
id, 
name, 
sex 
from t_user 
where id = #id# 
]]>
</select>
<select id="getAddressByUserId"
parameterClass="int"
resultClass="address">
<![CDATA[
select 
address, 
zipcode 
from t_address 
where user_id = #userid# 
]]>
</select>
</sqlMap>


String resource ="com/ibatis/sample/SqlMapConfig.xml"; 
Reader reader; 
reader = Resources.getResourceAsReader(resource); 
XmlSqlMapClientBuilder  xmlBuilder  =  new  XmlSqlMapClientBuilder(); 
sqlMap = xmlBuilder.buildSqlMap(reader); 
//sqlMap系统初始化完毕
List userList = sqlMap.queryForList("User.getUsers", ""); 
for(inti = 0; i < userList.size(); i++) { 
User user = (User)userList.get(i);
System.out.println("==>"+ user.getName()); 
for(intk = 0; k < user.getAddresses().size(); k++) { 
Address addr = (Address) user.getAddresses().get(k); 
System.out.println(addr.getAddress()); 
} 
} 


对OSCache的配置

<cacheModel id="userCache" type="OSCACHE">
	<flushInterval hours="24"/>
	<flushOnExecute statement="updateUser"/>
	<property name="size" value="1000" />
</cacheModel>



项目中oscache的配置

#是否使用内存作为缓存空间
cache.memory=true 

#缓存管理事件监听器,通过这个监听器可以获知当前 Cache 的运行情况
cache.event.listeners=com.opensymphony.oscache.pl ugins.clustersupport.JMSBroa
dcastingListener 

#如果使用磁盘缓存(cache.memory=false),则需要指定磁盘存储接口实现
#cache.persistence.class=com.opensymphony.oscache.plugins.diskpersi stence.Di sk
PersistenceListener 

#  磁盘缓存所使用的文件存储路径
# cache.path=c:\\myapp\\cache 

#  缓存调度算法,可选的有 LRU,FIFO 和无限缓存(UnlimitedCache) 
# cache.al gorithm=com.opensymphony.oscache.base.algorithm.FIFOCache 
# cache.al gorithm=com.opensymphony.oscache.base.algorithm.UnlimitedCache 
cache.al gorithm=com.opensymphony.oscache.base.al gorithm.LRUCache 

#内存缓存的最大容量
cache.capacity=1000 

#  是否限制磁盘缓存的容量
# cache.unlimited.disk=false 

#  基于 JMS 的集群缓存同步配置
#cache.cluster.jms.topic.factory=java:comp/env/jms/TopicConnectionFactory 
#cache.cluster.jms.topic.name=java:comp/env/jms/OSCacheTopi c 
#cache.cluster.jms.node.name=node1 

#  基于 JAVAGROUP 的集群缓存同步配置
#cache.cluster.properties=UDP(mcast_addr=231.12.21.132;mcast_port=45566;ip_
ttl=32;mcast_send_buf_size=150000;mcast_recv_buf_size=80000):PING(timeout
=2000;num_initial_members=3):MERGE2(min_interval=5000;max_interval=10000
):FD_SOCK:VERIFY_SUSPECT(timeout=1500):pbcast.NAKACK(gc_lag=50;retransm
it_timeout=300,600,1200,2400,4800):pbcast.STABLE(desired_avg_gossip=20000):
UNICAST(timeout=5000):FRAG(frag_size=8096;down_thread=fal se;up_thread=fal
se):pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=fal se;print_loc
al_addr=true) 
#cache.cluster.multicast.ip=231.12.21.132 




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值