<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "../dtd/sql-map-2.dtd"> <!--Contactbase:增删改查 用户内码ID User_Id INT 姓名 Real_Name VARCHAR(20) 全拼 PinYin_Name VARCHAR(20) 别名 Alias_Name VARCHAR(20) 姓别 Gender_Cd CHAR(1) 生日 Birthdate CHAR(8) 年龄 age INT 民族 Nation_Cd CHAR(2) 婚姻状况 Marital_Cd CHAR(1) 血型 Blood_Cd CHAR(1) 身高(CM) Height DECIMAL(3) 体重(公斤) Weight DECIMAL(5,1) 是否机主 Phone_Master_Flg CHAR(1) 星座 Constellation VARCHAR(20) 生肖 Twelve_Animals VARCHAR(20) 同步内码ID Sync_User_Id INT 最近联系 Last_Time_Contacted numeric(19) 联系次数 Times_Contacted INT 头像 Head_Data VARCHAR(100) 备注 Note VARCHAR(100) 首字母 Last_Name_Py VARCHAR(20) 全拼数字 Name_To_Number VARCHAR(20) 首字母数字 Lastname_To_Number VARCHAR(20) 首字符 Sur_Name VARCHAR(20) 国家 Country VARCHAR(20) 所属分组编码 groupCode int 所属分组名 groupName varchar(200) --> <sqlMap namespace="Contactbase"> <!-- 配置一对多 --> <resultMap id="contactbaseMap" class="java.util.HashMap" groupBy="raw_contact_id"> <result property="raw_contact_id" column="RAW_CONTACT_ID"/> <result property="realName" column="REAL_NAME"/> <result property="surName" column="SUR_NAME"/> <result property="LastNamePy" column="LAST_NAME_PY"/> <result property="NamePy" column="NAME_PY"/> <result property="LastNameToNumber" column="LASTNAME_TO_NUMBER"/> <result property="NameToNumber" column="NAME_TO_NUMBER"/> <result property="aliasName" column="ALIAS_NAME"/> <result property="genderCd" column="GENDER_CD"/> <result property="birthdate" column="BIRTHDATE"/> <result property="age" column="AGE"/> <result property="nationCd" column="NATION_CD"/> <result property="country" column="COUNTRY"/> <result property="maritalCd" column="MARITAL_CD"/> <result property="bloodCd" column="BLOOD_CD"/> <result property="height" column="HEIGHT"/> <result property="weight" column="WEIGHT"/> <result property="phoneMasterFlg" column="PHONE_MASTER_FLG"/> <result property="constellation" column="CONSTELLATION"/> <result property="twelveAnimals" column="TWELVE_ANIMALS"/> <result property="lastTimeContacted" column="LAST_TIME_CONTACTED"/> <result property="TimesContacted" column="TIMES_CONTACTED"/> <result property="syncUserId" column="SYNC_USER_ID"/> <result property="note" column="NOTE"/> <result property="card" column="CARD"/> <result property="contacts" resultMap="Contactbase.contactC"/> </resultMap> <!-- 备份与恢复一对多 --> <resultMap id="contactBase" class="com.piend.rjtserver.domain.ContactBase" groupBy="raw_contact_id"> <result property="raw_contact_id" column="RAW_CONTACT_ID"/> <result property="realName" column="REAL_NAME"/> <result property="surName" column="SUR_NAME"/> <result property="LastNamePy" column="LAST_NAME_PY"/> <result property="NamePy" column="NAME_PY"/> <result property="LastNameToNumber" column="LASTNAME_TO_NUMBER"/> <result property="NameToNumber" column="NAME_TO_NUMBER"/> <result property="aliasName" column="ALIAS_NAME"/> <result property="genderCd" column="GENDER_CD"/> <result property="birthdate" column="BIRTHDATE"/> <result property="age" column="AGE"/> <result property="nationCd" column="NATION_CD"/> <result property="country" column="COUNTRY"/> <result property="maritalCd" column="MARITAL_CD"/> <result property="bloodCd" column="BLOOD_CD"/> <result property="height" column="HEIGHT"/> <result property="weight" column="WEIGHT"/> <result property="phoneMasterFlg" column="PHONE_MASTER_FLG"/> <result property="constellation" column="CONSTELLATION"/> <result property="twelveAnimals" column="TWELVE_ANIMALS"/> <result property="lastTimeContacted" column="LAST_TIME_CONTACTED"/> <result property="TimesContacted" column="TIMES_CONTACTED"/> <result property="syncUserId" column="SYNC_USER_ID"/> <result property="note" column="NOTE"/> <result property="card" column="CARD"/> <result property="contacts" resultMap="Contactbase.contactC"/> </resultMap> <resultMap id="contactC" class="com.piend.rjtserver.domain.ContactC"> <result property="pkId" column="PK_ID"/> <result property="type" column="TYPE"/> <result property="typeSub" column="TYPE_SUB"/> <result property="data" column="DATA"/> <result property="lastTimeContacted" column="LAST_TIME_CONTACTED1"/> <result property="timesContacted" column="TIMES_CONTACTED1"/> </resultMap> <!--Contactbase:动态查询条件 --> <sql id="dynamicQuery"> <dynamic prepend="WHERE"> <!-- 首字母 --> <isNotEmpty prepend=" AND " property="Name_Py">tb.NAME_PY like '$Name_Py$%'</isNotEmpty> <!-- 关键词搜索 --> <isNotEmpty prepend=" AND " property="searcheKey">(tb.REAL_NAME like '%$searcheKey$%' or item.DATA like '%$searcheKey$%')</isNotEmpty> <!-- 用户id --> <isNotEmpty prepend=" AND " property="uid">tb.U_ID=#uid#</isNotEmpty> <!-- 是否删除 --> <isNotEmpty prepend=" AND " property="isDelete">tb.IS_DELETE=#isDelete#</isNotEmpty> <!-- 未分组 --> <isEqual prepend=" AND " property="cgId" compareValue="-1"> tb.raw_contact_id not in (select c_id from cg_reship where u_id=#uid#) </isEqual> <!-- 传分组 --> <isGreaterThan prepend=" AND " property="cgId" compareValue="0">cg.cg_id=#cgId#</isGreaterThan> </dynamic> </sql> <!--Contactbase:添加功能 --> <insert id="insert"> INSERT INTO contactbase (Real_Name,Name_Py,Alias_Name,Gender_Cd,Birthdate,age,Nation_Cd,Marital_Cd,Blood_Cd,Height, Weight,Phone_Master_Flg,Constellation,Twelve_Animals,Sync_User_Id,Last_Time_Contacted,Times_Contacted,Head_Data,Note,Last_Name_Py, Name_To_Number,Lastname_To_Number,Sur_Name,Country,groupCode,groupName,bKey,uid) VALUES(#Real_Name#,#Name_Py#,#Alias_Name#,#Gender_Cd#,#Birthdate#,#age#,#Nation_Cd#,#Marital_Cd#,#Blood_Cd#,#Height#, #Weight#,#Phone_Master_Flg#,#Constellation#,#Twelve_Animals#,#Sync_User_Id#,#Last_Time_Contacted#,#Times_Contacted#,#Head_Data#,#Note#,#Last_Name_Py#, #Name_To_Number#,#Lastname_To_Number#,#Sur_Name#,#Country#,#groupCode#,#groupName#,#bKey#,#uid#) </insert> <!--Contactbase: 删除功能 --> <delete id="delete"> DELETE FROM contactbase WHERE BKEY in($fkeyId$) and U_ID=#uid# </delete> <!--Contactbase:修改功能 --> <update id="update"> UPDATE contactbase <dynamic prepend="SET"> <isNotEmpty prepend="," property="Real_Name">Real_Name=#Real_Name#</isNotEmpty> <isNotEmpty prepend="," property="Name_Py">Name_Py=#Name_Py#</isNotEmpty> <isNotEmpty prepend="," property="Alias_Name">Alias_Name=#Alias_Name#</isNotEmpty> <isNotEmpty prepend="," property="Gender_Cd">Gender_Cd=#Gender_Cd#</isNotEmpty> <isNotEmpty prepend="," property="Birthdate">Birthdate=#Birthdate#</isNotEmpty> <isNotEmpty prepend="," property="age">age=#age#</isNotEmpty> <isNotEmpty prepend="," property="Nation_Cd">Nation_Cd=#Nation_Cd#</isNotEmpty> <isNotEmpty prepend="," property="Marital_Cd">Marital_Cd=#Marital_Cd#</isNotEmpty> <isNotEmpty prepend="," property="Blood_Cd">Blood_Cd=#Blood_Cd#</isNotEmpty> <isNotEmpty prepend="," property="Height">Height=#Height#</isNotEmpty> <isNotEmpty prepend="," property="Weight">Weight=#Weight#</isNotEmpty> <isNotEmpty prepend="," property="Phone_Master_Flg">Phone_Master_Flg=#Phone_Master_Flg#</isNotEmpty> <isNotEmpty prepend="," property="Constellation">Constellation=#Constellation#</isNotEmpty> <isNotEmpty prepend="," property="Twelve_Animals">Twelve_Animals=#Twelve_Animals#</isNotEmpty> <isNotEmpty prepend="," property="Sync_User_Id">Sync_User_Id=#Sync_User_Id#</isNotEmpty> <isNotEmpty prepend="," property="Last_Time_Contacted">Last_Time_Contacted=#Last_Time_Contacted#</isNotEmpty> <isNotEmpty prepend="," property="Times_Contacted">Times_Contacted=#Times_Contacted#</isNotEmpty> <isNotEmpty prepend="," property="Head_Data">Head_Data=#Head_Data#</isNotEmpty> <isNotEmpty prepend="," property="Note">Note=#Note#</isNotEmpty> <isNotEmpty prepend="," property="Last_Name_Py">Last_Name_Py=#Last_Name_Py#</isNotEmpty> <isNotEmpty prepend="," property="Name_To_Number">Name_To_Number=#Name_To_Number#</isNotEmpty> <isNotEmpty prepend="," property="Lastname_To_Number">Lastname_To_Number=#Lastname_To_Number#</isNotEmpty> <isNotEmpty prepend="," property="Sur_Name">Sur_Name=#Sur_Name#</isNotEmpty> <isNotEmpty prepend="," property="Country">Country=#Country#</isNotEmpty> <isNotEmpty prepend="," property="groupName">groupName=#groupName#</isNotEmpty> <!-- 放入回收站 --> <isNotEmpty prepend="," property="isDelete">IS_DELETE=#isDelete#</isNotEmpty> </dynamic> WHERE U_ID=#uid# and BKEY in($bkey$) </update> <!--Contactbase:通过主键查某一条记录 --> <select id="findById" resultMap="contactbaseMap"> select ct.raw_contact_id,Real_Name,Sur_Name,Last_Name_Py,Name_Py,Lastname_To_Number,Name_To_Number,Alias_Name,Gender_Cd,Birthdate,Age,Nation_Cd,Country, Marital_Cd,Blood_Cd,Height,Weight,Phone_Master_Flg,Constellation,Twelve_Animals,ct.Last_Time_Contacted,ct.Times_Contacted,Sync_User_Id,Note,Card, PK_ID,Type,Type_Sub,Data,cc.Last_Time_Contacted as Last_Time_Contacted1,cc.Times_Contacted as Times_Contacted1 from contactbase ct LEFT JOIN contactc cc on (ct.raw_contact_id=cc.raw_contact_id and ct.u_id=cc.u_id) where ct.u_id=#uid# and ct.raw_contact_id=#raw_contact_id# </select> <!--Contactbase:传sql字符串查询 --> <select id="querySql" resultClass="hashmap"> $querySql$ </select> <!--Contactbase:获取分页总条数 --> <select id="queryForListCount" resultClass="java.lang.Integer"> SELECT count(distinct tb.raw_contact_id) FROM contactbase tb LEFT JOIN contactc item on (tb.raw_contact_id=item.raw_contact_id and tb.u_id=item.u_id) <!--传分组--> <isGreaterThan property="cgId" compareValue="0"> LEFT JOIN cg_reship cg on (cg.c_id=tb.raw_contact_id and tb.u_id=cg.u_id) </isGreaterThan> <!-- 全部--> <isEqual property="cgId" compareValue="-2"> LEFT JOIN cg_reship cg on (cg.c_id=tb.raw_contact_id and tb.u_id=cg.u_id) </isEqual> <include refid="dynamicQuery" /> </select> <!--Contactbase:获取分页结果集 --> <select id="queryForList" resultClass="hashmap"> SELECT * FROM ( SELECT TEMP.*, ROWNUM RN FROM ( <!-- sql部分开始 --> SELECT distinct tb.* FROM contactbase tb LEFT JOIN contactc item on (tb.raw_contact_id=item.raw_contact_id and tb.u_id=item.u_id) <!--传分组--> <isGreaterThan property="cgId" compareValue="0"> LEFT JOIN cg_reship cg on (cg.c_id=tb.raw_contact_id and tb.u_id=cg.u_id) </isGreaterThan> <!-- 全部--> <isEqual property="cgId" compareValue="-2"> LEFT JOIN cg_reship cg on (cg.c_id=tb.raw_contact_id and tb.u_id=cg.u_id) </isEqual> <include refid="dynamicQuery" /> <isNotEmpty prepend=" ORDER BY " property="oderByKey">$oderByKey$</isNotEmpty> <!-- sql结束 --> ) TEMP WHERE #endNum#>= ROWNUM) WHERE RN >= #startNum# </select> <!-- 分页外键或者一对多外键 --> <select id="findByFkId" resultClass="hashmap"> SELECT c.pk_id,c.type,c.type_sub,c.data,c.dataremarks,code.data typename,c.raw_contact_id FROM contactc c left join contactcsubcode code on (c.type=code.type and c.type_sub=code.type_sub) WHERE c.raw_contact_id in ($fkid$) and c.u_id=#uid# </select> <!-- 分页外键或者一对多外键 --> <select id="findByShipFkId" resultClass="hashmap"> SELECT cr.c_id,cg.groupname,cr.cg_id FROM cg_reship cr left join contacts_groups cg on (cr.cg_id=cg.pk_id and cr.u_id=cg.u_id) WHERE cr.c_id in ($fkid$) and cr.u_id=#uid# </select> <!-- 批量移至分组 --> <update id="updateGroups"> UPDATE contactbase SET groupCode=#groupCode#,groupName=#groupName# WHERE uid=#uid# and User_Id in($id$) </update> <select id="bakUpDownQuery" resultMap="contactBase"> select ct.raw_contact_id,Real_Name,Sur_Name,Last_Name_Py,Name_Py,Lastname_To_Number,Name_To_Number,Alias_Name,Gender_Cd,Birthdate,Age,Nation_Cd,Country, Marital_Cd,Blood_Cd,Height,Weight,Phone_Master_Flg,Constellation,Twelve_Animals,ct.Last_Time_Contacted,ct.Times_Contacted,Sync_User_Id,Note,Card, PK_ID,Type,Type_Sub,Data,cc.Last_Time_Contacted as Last_Time_Contacted1,cc.Times_Contacted as Times_Contacted1 from contactbase ct LEFT JOIN contactc cc on (ct.raw_contact_id=cc.raw_contact_id and ct.u_id=cc.u_id) where ct.u_id=#uid# and ct.is_delete=1 </select> <!-- 恢复查询 <select id="bakUpDownQuery" resultMap="contactBase"> select ct.bKey,Real_Name,Sur_Name,Last_Name_Py,Name_Py,Lastname_To_Number,Name_To_Number,Alias_Name,Gender_Cd,Birthdate,Age,Nation_Cd,Country, Marital_Cd,Blood_Cd,Height,Weight,Phone_Master_Flg,Constellation,Twelve_Animals,ct.Last_Time_Contacted,ct.Times_Contacted,Sync_User_Id,Note,Card, uniquekey,Type,Type_Sub,Data,cc.Last_Time_Contacted as Last_Time_Contacted1,cc.Times_Contacted as Times_Contacted1 from contactbase ct LEFT JOIN contactc cc on (ct.bKey=cc.bKey and ct.u_id=cc.u_id) where ct.u_id=#uid# </select> --> <!-- 查询业务主键 --> <select id="selectContactbaseMaxID" resultClass="hashmap"> select (select max(raw_contact_id) from contactbase where u_id=#uid#) as ZID, (select max(pk_id) from contactc where u_id=#uid#) as CID from dual </select> <!-- 获取用户的联系人 --> <select id="queryContactbaseCount" resultClass="java.lang.Integer"> select count(*) from contactbase where u_id=#uid# and IS_DELETE=1 </select> </sqlMap>
ibatis例子一对多
猜你喜欢
转载自tangguolong99.iteye.com/blog/2065542
今日推荐
周排行