Mybatis开发总结

 

1、直接写语句,做组合查询也非常方便:

[java]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. SELECT * FROM hc_product  
  2.         <where>  
  3.             <if test="productname!=null">  
  4.                 productName = '${productname}'  
  5.             </if>  
  6.             <if test="productid!=null">  
  7.                 and p.productId = '${productid}'  
  8.             </if>  
  9.         </where>  

这样就能完成多选择条件查询。


2、一般的查询,直接返回实体类型即可。对于关联查询,处理方式之一就是:自己构造一个ResultMap,如名为Map1,将自己所需要的字段字段放在Map1中做映射。然后将查询的结果设置为Map1.

在Map1中,我们可以多映射一些字段,为空的查询默认不映射。

而在dao层接口中,我们一般会设置改方法的返回类型为:List<Map<String,Object>>,每一个list里面,存放的诸多map键值对,就对应查询上来的一条记录;而map键值对里面就是对应的字段名:字段值;


3、Mybatis中mapper文件中的增删改方法,默认返回int类型。如果是增方法,则默认返回增加记录的条数,如果增加1条记录,则返回1,;如果增加100条记录,则返回100。改、删方法与增方法相同。


4、Mybatis中不兼容不同的">"或者"<"符号,我们可以将sql语句写在"<!CDATA[你的sql]>"中,也可以使用对应的符号代替:

&lt; 小于 <     

&gt; 大于 >

&amp;  和 &

&apos;   单引号 '

&quot;   双引号"

ps:写在 <!CDATA[你的sql]> 中的sql语句,mybatis不会对其中的内容再做智能解析。


5、注意Mybatis中ResultMap和ResultType不一样。


6、批量添加例子:

[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. <insert id="batchInsertRepay" parameterType="java.util.List">    
  2.           <selectKey resultType="long" keyProperty="id" order="AFTER">    
  3.                 SELECT  LAST_INSERT_ID()    
  4.           </selectKey>                         
  5.             INSERT INTO hc_theory(id,Term,repayTime)    
  6.             VALUES     
  7.         <foreach collection="list"  item="theory"  index="index"  separator=",">    
  8.             (  
  9.                 #{theory.id},  
  10.                 #{theory.term},  
  11.                 #{theoryRepay.repaytime}  
  12.             )    
  13.         </foreach>    
  14.     </insert>  


7、返回数量(Integer)的处理:

Mybatis映射中没有Java的基本类型int,返回Integer,有可能返回Null,所以要做如下处理:

[java]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. public Integer selectStockNumByProductId(String productId){  
  2.         Integer i =stockMapper.selectStockNumByProductId(productId);  
  3.           
  4.         return i==null?0:i;  
  5.     }  

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值