hibernate\ many to many \one to one\Iterator\\Set

本文介绍了一个使用Hibernate进行实体关联映射的例子,包括一对多和多对一的关系映射方式。通过具体的Java类和XML配置文件,展示了如何实现父类Iaitem与子类Iasubitem之间的关联。

vo包

Iaitem.java

  1. importjava.util.Set;
  2. /**
  3. *@author
  4. *@version创建时间:Jan2,200911:42:16AM
  5. *类说明
  6. */
  7. publicclassIaitem{
  8. privateintitemid;
  9. privateStringitemname;
  10. privateintitemcode;
  11. //代表全部的子栏目
  12. privateSetiasubitems;
  13. publicintgetItemid(){
  14. returnitemid;
  15. }
  16. publicvoidsetItemid(intitemid){
  17. this.itemid=itemid;
  18. }
  19. publicStringgetItemname(){
  20. returnitemname;
  21. }
  22. publicvoidsetItemname(Stringitemname){
  23. this.itemname=itemname;
  24. }
  25. publicintgetItemcode(){
  26. returnitemcode;
  27. }
  28. publicvoidsetItemcode(intitemcode){
  29. this.itemcode=itemcode;
  30. }
  31. //
  32. publicSetgetIasubitems(){
  33. returniasubitems;
  34. }
  35. //
  36. publicvoidsetIasubitems(Setiasubitems){
  37. this.iasubitems=iasubitems;
  38. }
  39. }

Iaitem.hbm.xml

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  4. <!--
  5. MappingfileautogeneratedbyMyEclipsePersistenceTools
  6. -->
  7. <hibernate-mapping>
  8. <classname="com.123.mgzst.vo.Iaitem"table="IAITEM"schema="STMG">
  9. <idname="itemid"type="java.lang.Integer">
  10. <columnname="ITEMID"precision="22"/>
  11. <generatorclass="sequence">
  12. <paramname="sequence">STMG.item_id_seq</param><!-- seq--> <!-- native--> <!-- native-->
  13. </generator>
  14. </id>
  15. <propertyname="itemname"type="java.lang.String">
  16. <columnname="ITEMNAME"length="50"/>
  17. </property>
  18. <propertyname="itemcode"type="java.lang.Integer">
  19. <columnname="ITEMCODE"precision="22"/>
  20. </property>
  21. <!-- set-->
  22. <setname="iasubitems"inverse="true"cascade="all"table="IASUBITEM">
  23. <key>
  24. <columnname="ITEMID"precision="22"/>
  25. </key>
  26. <one-to-manyclass="com.123.mgzst.vo.Iasubitem"/><!-- one to many-->
  27. </set>
  28. </class>
  29. </hibernate-mapping>

Iasubitem.java

  1. publicclassIasubitem{
  2. privateintsubid;
  3. privateStringsubname;
  4. privateintitemid;
  5. privateintsubcode;
  6. privateIaitemiaitem;
  7. publicintgetSubid(){
  8. returnsubid;
  9. }
  10. publicvoidsetSubid(intsubid){
  11. this.subid=subid;
  12. }
  13. publicStringgetSubname(){
  14. returnsubname;
  15. }
  16. publicvoidsetSubname(Stringsubname){
  17. this.subname=subname;
  18. }
  19. publicintgetItemid(){
  20. returnitemid;
  21. }
  22. publicvoidsetItemid(intitemid){
  23. this.itemid=itemid;
  24. }
  25. publicintgetSubcode(){
  26. returnsubcode;
  27. }
  28. publicvoidsetSubcode(intsubcode){
  29. this.subcode=subcode;
  30. }
  31. publicIaitemgetIaitem(){
  32. returniaitem;
  33. }
  34. publicvoidsetIaitem(Iaitemiaitem){
  35. this.iaitem=iaitem;
  36. }
  37. }

Iasubitem.hbm.xml

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  4. <!--
  5. MappingfileautogeneratedbyMyEclipsePersistenceTools
  6. -->
  7. <hibernate-mapping>
  8. <classname="com.123.mgzst.vo.Iasubitem"table="IASUBITEM"schema="STMG">
  9. <idname="subid"type="java.lang.Integer">
  10. <columnname="SUBID"precision="22"/>
  11. <generatorclass="sequence">
  12. <paramname="sequence">STMG.subitem_id_seq</param>
  13. </generator>
  14. </id>
  15. <!-- many to one-->
  16. <many-to-onename="iaitem"class="com.123.mgzst.vo.Iaitem"fetch="select">
  17. <columnname="ITEMID"precision="22"/>
  18. </many-to-one>
  19. <propertyname="subname"type="java.lang.String">
  20. <columnname="SUBNAME"length="50"/>
  21. </property>
  22. <propertyname="subcode"type="java.lang.Integer">
  23. <columnname="SUBCODE"precision="22"/>
  24. </property>
  25. </class>
  26. </hibernate-mapping>

dao

IItemDAOImpl.java

  1. publicclassIItemDAOImplextendsHibernateDaoSupportimplementsIItemDAO{
  2. publicListqueryAll()throwsException{
  3. //TODOAuto-generatedmethodstub
  4. Stringhql="FROMIaitemASi";
  5. Listall=super.getSession().createQuery(hql).list();
  6. returnall;
  7. }
  8. }

action

ItemAction.java

  1. publicclassItemActionextendsDispatchAction{
  2. privateIItemDAOiitemdao;
  3. /*
  4. *GeneratedMethods
  5. */
  6. /**
  7. *Methodexecute
  8. *@parammapping
  9. *@paramform
  10. *@paramrequest
  11. *@paramresponse
  12. *@returnActionForward
  13. */
  14. publicActionForwardselectall(ActionMappingmapping,ActionFormform,
  15. HttpServletRequestrequest,HttpServletResponseresponse){
  16. ItemFormitemForm=(ItemForm)form;//TODOAuto-generatedmethodstub
  17. Listall=null;
  18. try{
  19. all=this.iitemdao.queryAll();
  20. //Iterator
  21. Iteratoriter=all.iterator(); //all是一个List
  22. while(iter.hasNext()){
  23. Iaitemitem=(Iaitem)iter.next();
  24. System.out.println(item.getItemname());
  25. Iteratorit=item.getIasubitems().iterator(); /////item.getIasubitems()
  26. while(it.hasNext()){
  27. Iasubitemsi=(Iasubitem)it.next();
  28. System.out.println("|-"+si.getSubname());
  29. }
  30. }
  31. }catch(Exceptione){
  32. //TODOAuto-generatedcatchblock
  33. e.printStackTrace();
  34. }
  35. request.setAttribute("all",all);
  36. returnmapping.findForward("question");
  37. }

jsp

  1. <logic:iterateid="item"scope="request"name="all">
  2. ${item.itemname}<br>
  3. <logic:iterateid="subitem"name="item"property="iasubitems">
  4. |-${subitem.subname}<br>
  5. </logic:iterate>
  6. </logic:iterate>
本项目采用C++编程语言结合ROS框架构建了完整的双机械臂控制系统,实现了Gazebo仿真环境下的协同运动模拟,并完成了两台实体UR10工业机器人的联动控制。该毕业设计在答辩环节获得98分的优异成绩,所有程序代码均通过系统性调试验证,保证可直接部署运行。 系统架构包含三个核心模块:基于ROS通信架构的双臂协调控制器、Gazebo物理引擎下的动力学仿真环境、以及真实UR10机器人的硬件接口层。在仿真验证阶段,开发了双臂碰撞检测算法和轨迹规划模块,通过ROS控制包实现了末端执行器的同步轨迹跟踪。硬件集成方面,建立了基于TCP/IP协议的实时通信链路,解决了双机数据同步和运动指令分发等关键技术问题。 本资源适用于自动化、机械电子、人工智能等专业方向的课程实践,可作为高年级课程设计、毕业课题的重要参考案例。系统采用模块化设计理念,控制核心与硬件接口分离架构便于功能扩展,具备工程实践能力的学习者可在现有框架基础上进行二次开发,例如集成视觉感知模块或优化运动规划算法。 项目文档详细记录了环境配置流程、参数调试方法和实验验证数据,特别说明了双机协同作业时的时序同步解决方案。所有功能模块均提供完整的API接口说明,便于使用者快速理解系统架构并进行定制化修改。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
【微电网】【创新点】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究(Matlab代码实现)内容概要:本文围绕基于非支配排序的蜣螂优化算法(NSDBO)在微电网多目标优化调度中的应用展开研究,提出了一种改进的智能优化算法以解决微电网系统中经济性、环保性和能源效率等多重目标之间的权衡问题。通过引入非支配排序机制,NSDBO能够有效处理多目标优化中的帕累托前沿搜索,提升解的多样性和收敛性,并结合Matlab代码实现仿真验证,展示了该算法在微电网调度中的优越性能和实际可行性。研究涵盖了微电网典型结构建模、目标函数构建及约束条件处理,实现了对风、光、储能及传统机组的协同优化调度。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事微电网、智能优化算法应用的工程技术人员;熟悉优化算法与能源系统调度的高年级本科生亦可参考。; 使用场景及目标:①应用于微电网多目标优化调度问题的研究与仿真,如成本最小化、碳排放最低与供电可靠性最高之间的平衡;②为新型智能优化算法(如蜣螂优化算法及其改进版本)的设计与验证提供实践案例,推动其在能源系统中的推广应用;③服务于学术论文复现、课题研究或毕业设计中的算法对比与性能测试。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注NSDBO算法的核心实现步骤与微电网模型的构建逻辑,同时可对比其他多目标算法(如NSGA-II、MOPSO)以深入理解其优势与局限,进一步开展算法改进或应用场景拓展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值