iBatis小结(转)

本文详细介绍了MyBatis框架的配置方法,包括SQL映射文件的编写、动态SQL的使用技巧、缓存机制的实现原理及如何进行结果映射等核心内容。
# <?xml version="1.0" encoding="UTF-8" ?>     
# <!DOCTYPE sqlMap           
#     PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"           
#     "http://ibatis.apache.org/dtd/sql-map-2.dtd">     
# <sqlMap namespace="Account">     
#   <typeAlias alias="Account" type="test.Account"/>     
#   <!--列表查询,返回Account Object的List-->        
#   <resultMap id="AccountResult" class="Account">     
#     <result property="id" column="ID"/>     
#     <result property="firstName" column="FIRST_NAME"/>     
#     <result property="lastName" column="LAST_NAME"/>     
#     <result property="emailAddress" column="EMAIL"/>     
#   </resultMap>       
#   <select id="selectAllAccounts" resultMap="AccountResult">     
#     select * from ACCOUNT     
#   </select>     
#        
#   <!--列表查询,返回HashMap的List -->      
#   <!--resultMap无需再通过JDBC ResultSetMetaData 来动态获取字段信息,性能有提高-->     
#     
#   <resultMap id="mapResult" class="java.util.HashMap">     
#     <result property="roleid" column="ROLEID"/>     
#     <result property="rolename" column="ROLENAME"/>     
#     <result property="id" column="ID"/>     
#     <result property="firstName" column="FIRST_NAME"/>     
#     <result property="lastName" column="LAST_NAME"/>     
#     <result property="emailAddress" column="EMAIL"/>     
#     <result property="dt" column="DT"/>     
#   </resultMap>     
#   <select id="selectAllAccountsWithMap" resultMap="mapResult">     
#         select B.ROLEID, B.ROLENAME, A.ID, A.FIRST_NAME,A.LAST_NAME,A.EMAIL,A.DT     
#         from ACCOUNT A left outer join ROLE B   on A.ROLEID = B.ROLEID     
#         ORDER BY A.ID DESC     
#   </select>     
#        
# <!--动态构造查询条件-->     
# <select id="getUsers" parameterClass="user" resultMap="get-user-result">     
#     Select id,name,sex from t_user     
#     <dynamic prepend="WHERE">     
#         <isNotEmpty prepend="AND" property="name">     
#             (name like #name#)     
#         </isNotEmpty>     
#         <isNotEmpty prepend="AND" property="address">     
#             (address like #address#)     
#         </isNotEmpty>     
#     </dynamic>     
# </select>     
# <isNotEmpty prepend="AND" property="name">     
#     ( name=#name#     
#         <isNotEmpty prepend="AND" property="address">     
#             address=#address#     
#         </isNotEmpty>     
#     )     
# </isNotEmpty>     
# <select id="dynamicGetAccountList" resultMap="account-result" >     
#     select * from ACCOUNT     
#     <dynamic prepend="WHERE">     
#         <isNotNull prepend="AND" property="firstName" open=”(“ close=”)”>     
#             ACC_FIRST_NAME = #firstName#     
#             <isNotNull prepend="OR" property="lastName">     
#                 ACC_LAST_NAME = #lastName#     
#             </isNotNull>     
#         </isNotNull>     
#         <isNotNull prepend="AND" property="emailAddress">     
#             ACC_EMAIL like #emailAddress#     
#         </isNotNull>     
#         <isGreaterThan prepend="AND" property="id" compareValue="0">     
#             ACC_ID = #id#     
#         </isGreaterThan>     
#     </dynamic>     
#     order by ACC_LAST_NAME     
# </select>     
#     
# <isParameterPresent> <isNotParameterPresent> <isNull> <isNotNull> <isEmpty> <isNotEmpty>     
# <isEqual> <isNotEqual> <isGreaterThan> <isGreaterEqual> <isLessThan> <isLessEqual>     
#     
# <!-- Sql片段的是用-->     
# <sql id="selectItem_fragment">     
#     FROM items WHERE parentid = 6    
# </sql>     
# <select id="selectItemCount" resultClass="int">     
#     SELECT COUNT(*) AS total     
#     <include refid="selectItem_fragment"/>     
# </select>     
# <select id="selectItems" resultClass="Item">     
#     SELECT id, name     
#     <include refid="selectItem_fragment"/>     
# </select>     
#     
# <!--缓存-->     
# <cacheModel id="product-cache" type="LRU">     
#     <flushInterval hours="24"/>     
#     <flushOnExecute statement="insertProduct"/>     
#     <flushOnExecute statement="updateProduct"/>     
#     <flushOnExecute statement="deleteProduct"/>     
#     <property name=”size” value=”1000” />     
# </cacheModel>     
# <select id=”getProductList” parameterClass=”int” cacheModel=”product-cache”>     
#     select * from PRODUCT where PRD_CAT_ID = #value#     
# </select>     
#     
# <!—对XML支持 -->     
# <select id="getPerson" parameterClass=”int” resultClass="xml" xmlResultName=”person”>     
#     SELECT     
#     PER_ID as id,     
#     PER_FIRST_NAME as firstName,     
#     PER_LAST_NAME as lastName,     
#     PER_BIRTH_DATE as birthDate,     
#     PER_WEIGHT_KG as weightInKilograms,     
#     PER_HEIGHT_M as heightInMeters     
#     FROM PERSON     
#     WHERE PER_ID = #value#     
# </select>     
# <person>     
#     <id>1</id>     
#     <firstName>Clinton</firstName>     
#     <lastName>Begin</lastName>     
#     <birthDate>1900-01-01</birthDate>     
#     <weightInKilograms>89</weightInKilograms>     
#     <heightInMeters>1.77</heightInMeters>     
# </person>     
#     
# <!—字符串替换     
# select * from $tableName$     
# Important Note 1: This support will only substitute Strings, so it is not appropriate for complex data types like Date or Timestamp.     
# Important Note 2: If you use this support to alter a table name, or a column list, in an SQL select statement,then you should always specify remapResults=“true”     
# -->.     
#     
# <!—关联查询方式,有1/N问题-->     
# <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>     
# <resultMap id="get-user-result" class="user">     
#     <result property="id" column="id"/>     
#     <result property="name" column="name"/>     
#     <result property="sex" column="sex"/>     
#     <result property="address" column="t_address.address"/>     
#     <result property="zipCode" column="t_address.zipcode"/>     
# </resultMap>     
# <select id="getUsers" parameterClass="java.lang.String" resultMap="get-user-result">     
#     <![CDATA[select* from t_user,t_address where t_user.id=t_address.user_id]]>     
# </select>     
# 保证User 类中包含address和zipCode两个String型属性。     
#     
# <!—关联查询,无1/N问题-->     
#   <resultMap id="AccountResultWithRole" class="Account" groupBy="id">     
#     <result property="id" column="ID"/>     
#     <result property="firstName" column="FIRST_NAME"/>     
#     <result property="lastName" column="LAST_NAME"/>     
#     <result property="emailAddress" column="EMAIL"/>         
#     <result property="role" resultMap="Account.roleResult"/>     
#   </resultMap>     
#   <resultMap id="roleResult" class="test.Role">     
#     <result property="roleid" column="ROLEID"/>     
#     <result property="rolename" column="ROLENAME"/>     
#   </resultMap>     
#   <select id="selectAccountByIdWithRole" parameterClass="int" resultMap="AccountResultWithRole">     
#         select B.ROLEID, B.ROLENAME, A.ID, A.FIRST_NAME,A.LAST_NAME,A.EMAIL from ACCOUNT A left outer join ROLE B on A.ROLEID = B.ROLEID where A.ID = #id#     
#   </select>     
#        
#   <!--查询-->        
#   <select id="selectAccountById" parameterClass="int" resultClass="Account">     
#     select ID as id,FIRST_NAME as firstName,LAST_NAME as lastName,       EMAIL as emailAddress from ACCOUNT where ID = #id#     
#   </select>     
#        
#   <!--新增-->          
#   <insert id="insertAccount" parameterClass="Account">     
#     insert into ACCOUNT (FIRST_NAME,LAST_NAME,EMAIL,PID,DT)       
#     values (#firstName:VARCHAR#, #lastName:VARCHAR#, #emailAddress:VARCHAR#,#pid:INTEGER:0#,#dt:TIME#)     
#     <selectKey resultClass="int" type="post" keyProperty="id">     
#         SELECT @@IDENTITY AS ID     
#     </selectKey>         
#   </insert>     
#        
#   <!--更新-->        
#   <update id="updateAccount" parameterClass="Account">     
#     update ACCOUNT set     
#       FIRST_NAME = #firstName:VARCHAR#,     
#       LAST_NAME = #lastName:VARCHAR#,     
#       EMAIL = #emailAddress:VARCHAR#     
#     where     
#       ID = #id#     
#   </update>     
#     
#   <!--删除-->     
#   <delete id="deleteAccountById" parameterClass="int">     
#     delete from ACCOUNT where ID = #id#     
#   </delete>     
#        
#   <!--存储过程,如果没有返回列表,procTest的resultMap可以省略-->      
#   <parameterMap id="procParamMap" class="java.util.HashMap" >     
#     <parameter property="id" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN"/>     
#     <parameter property="outid" jdbcType="INTEGER" javaType="java.lang.Integer" mode="OUT"/>     
#     <parameter property="errMsg" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT"/>     
#   </parameterMap>     
#   <resultMap id="procResultMap" class="java.util.HashMap" >     
#     <result property="a" column="AAA"/>     
#     <result property="b" column="BBB"/>     
#     <result property="c" column="CCC"/>         
#   </resultMap>       
#   <procedure id="procTest" parameterMap="procParamMap" resultMap="procResultMap">     
#     {call test_sp_1 (?,?,?)}     
#   </procedure>     
# </sqlMap> 
 
六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)内容概要:本文档围绕六自由度机械臂的ANN人工神经网络设计展开,详细介绍了正向与逆向运动学求解、正向动力学控制以及基于拉格朗日-欧拉法推导逆向动力学方程的理论与Matlab代码实现过程。文档还涵盖了PINN物理信息神经网络在微分方程求解、主动噪声控制、天线分析、电动汽车调度、储能优化等多个工程与科研领域的应用案例,并提供了丰富的Matlab/Simulink仿真资源和技术支持方向,体现了其在多学科交叉仿真与优化中的综合性价值。; 适合人群:具备一定Matlab编程基础,从事机器人控制、自动化、智能制造、电力系统或相关工程领域研究的科研人员、研究生及工程师。; 使用场景及目标:①掌握六自由度机械臂的运动学与动力学建模方法;②学习人工神经网络在复杂非线性系统控制中的应用;③借助Matlab实现动力学方程推导与仿真验证;④拓展至路径规划、优化调度、信号处理等相关课题的研究与复现。; 阅读建议:建议按目录顺序系统学习,重点关注机械臂建模与神经网络控制部分的代码实现,结合提供的网盘资源进行实践操作,并参考文中列举的优化算法与仿真方法拓展自身研究思路。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值