网站无法处理请求,织梦模板免费,wordpress如何去掉版权,湖南健康码一、简介
ibatis是一个基于SQL映射支持Java和.NET的持久层框架#xff1a;
1.如下所示id是对应程序的statement#xff0c;resultClass需要填写SQL查询到的字段对应的类的命名空间类名#xff08;DAO.QueryForList实体类#xff09;#xff0c;以此完成持久层和…一、简介
ibatis是一个基于SQL映射支持Java和.NET的持久层框架
1.如下所示id是对应程序的statementresultClass需要填写SQL查询到的字段对应的类的命名空间类名DAO.QueryForList实体类以此完成持久层和业务逻辑层的交互;
select idGetIncomeMonth resultClassXXXX.Model.StatistMonth![CDATA[/*我是一条注释*/]]
/select可以这样映射到常用的类型
select idSelectDetailViewByParam resultTypeSystem.String 2.一般标签有select,Insert,Update,Delete,Query,procedure
3.数据库查询的字段要和实体类对应不对应的SQL语句要用AS起别名统一否则映射失败。
!-- 起别名的SQL要包起来 例如SELECT A.NAME,B.PLACE FROM TABLE A LEFT JOIN B ON A.IDB.ID--!-- 需要改为SELECT * FROM (SELECT A.NAME,B.PLACE FROM TABLE A LEFT JOIN B ON A.IDB.ID) AS T--
4.占位符通过字典键值对传递命名要一致dic.Add(“ID”,”123”) ID#ID# ID LIKE %$ID$% ID NOT IN $ID$ ID NOT IN $ID$ 区别#默认给两边加单引号$不会传进来是什么就是什么
5.配置xml位置Config\SqlMap.config注意先后顺序先写T4模板生成的xml再写自己写的xml
二、标签
1.CDATA转义
出现以下符号需要用CDATA包裹“”“”“?”“”等符号 2.isnotnull
【说明】不为空则执行包裹的SQL其中prepend可以是and、or、空
select id省略 resultClass省略select * from tableisNotEmpty prependand propertyIDID #ID#/isNotEmpty
/select假如ID是空的那么将执行
select * from table
假如ID不是空的那么将执行
select * from table and ID123456一般来讲SQL中的like,不用写isNotEmpty,即使输入空的比如以下情况也会默认查到所有
select * from table where ID like %%
3.foreach循环处理入参不同查询不同 【情景】 有一个成绩表:scoreid,studentid,score,testnum 有一个学生表:studentid,studentname 假如传入12显示出studentid,studentname,testnum1的成绩,testnum2的成绩 假如传入123显示出studentid,studentname,testnum1的成绩,testnum2的成绩,testnum3的成绩 解答其中入参testnum1,2,3
select idgetStudentScores resultClassFitsWeb.Model.StudentDetailsSELECT s.studentid, s.studentname,foreach collectiontestnums itemitem separator,MAX(CASE WHEN sc.testnum #{item} THEN sc.score END) AS testnum${item}的成绩/foreachFROM 学生表 sLEFT JOIN 成绩表 sc ON s.studentid sc.studentidWHERE sc.testnum IN (#{testnum})GROUP BY s.studentid, s.studentname/select