ibatis基本语法
<?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="User"> <typeAlias alias="page" type="byd.core.Page"/> <typeAlias alias="user" type="byd.entity.User"/> <parameterMap id="userMap" class="user"> <parameter property="userName" javaType="string" jdbcType="VARCHAR"/> <parameter property="passWord" javaType="string" jdbcType="VARCHAR"/> <parameter property="emplNo" javaType="string" jdbcType="VARCHAR"/> <parameter property="emplName" javaType="string" jdbcType="VARCHAR"/> <parameter property="phoneNum" javaType="string" jdbcType="VARCHAR"/> <parameter property="email" javaType="string" jdbcType="VARCHAR"/> <parameter property="deptName" javaType="string" jdbcType="VARCHAR"/> <parameter property="dutyName" javaType="string" jdbcType="VARCHAR"/> <parameter property="remark" javaType="string" jdbcType="VARCHAR"/> <parameter property="companyName" javaType="string" jdbcType="VARCHAR"/> </parameterMap> <sql id="byUserIdCondition"> <![CDATA[ id = #id:INTEGER# ]]> </sql> <!-- 新增用户 --> <insert id="save" parameterMap="userMap"> <![CDATA[ INSERT INTO PLAN_USER (id,userName,passWord,emplNo,emplName,phoneNum,email,deptName,dutyName,remark,companyName) VALUES (PLAN_USER_LOG_S.nextval,?,?,?,?,?,?,?,?,?,?) ]]> <selectKey resultClass="java.lang.Integer"> <![CDATA[ SELECT PLAN_USER_LOG_S.currval AS id FROM dual ]]> </selectKey> </insert> <!-- 删除用户 --> <delete id="deleteById" parameterClass="user"> <![CDATA[ delete PLAN_USER ]]> <dynamic prepend="WHERE"> <include refid="byUserIdCondition"/> </dynamic> </delete> <!-- 修改用户 --> <update id="update" parameterClass="user"> <![CDATA[ update PLAN_USER ]]> <dynamic prepend="SET"> <isNotNull property="userName" prepend=","> <![CDATA[ userName = #userName# ]]> </isNotNull> <isNotNull property="passWord" prepend=","> <![CDATA[ passWord = #passWord# ]]> </isNotNull> <isNotNull property="emplNo" prepend=","> <![CDATA[ emplNo = #emplNo# ]]> </isNotNull> <isNotNull property="emplName" prepend=","> <![CDATA[ emplName = #emplName# ]]> </isNotNull> <isNotNull property="phoneNum" prepend=","> <![CDATA[ phoneNum = #phoneNum# ]]> </isNotNull> <isNotNull property="deptName" prepend=","> <![CDATA[ deptName = #deptName# ]]> </isNotNull> <isNotNull property="dutyName" prepend=","> <![CDATA[ dutyName = #dutyName# ]]> </isNotNull> <isNotNull property="remark" prepend=","> <![CDATA[ remark = #remark# ]]> </isNotNull> <isNotNull property="email" prepend=","> <![CDATA[ email= #email# ]]> </isNotNull> <isNotNull property="companyName" prepend=","> <![CDATA[ companyName = #companyName# ]]> </isNotNull> </dynamic> <dynamic prepend="WHERE"> <include refid="byUserIdCondition" /> </dynamic> </update> <!-- 分页查询 --> <select id="findByPage" parameterClass="page" resultClass="user"> <![CDATA[ SELECT id,userName,passWord,emplNo,emplName,phoneNum,email,deptName,dutyName,remark,companyName,state FROM (SELECT a.*,ROWNUM nm FROM (SELECT u.id, u.username, u.passWord, u.emplname, u.emplno, u.companyname,u.phoneNum, u.deptname, u.dutyname,u.remark, u.email,l.state FROM PLAN_user u LEFT JOIN TIME_logout l ON u.id =l.userid WHERE ( ('$objCondition$' is null or upper(u.userName) LIKE upper('%$objCondition$%')) OR('$objCondition$' is null or upper(u.phoneNum) LIKE upper('%$objCondition$%')) OR('$objCondition$' is null or upper(u.email) LIKE upper('%$objCondition$%')) OR('$objCondition$' is null or upper(u.companyName) LIKE upper('%$objCondition$%')) OR('$objCondition$' is null or upper(u.deptName) LIKE upper('%$objCondition$%')) OR('$objCondition$' is null or upper(u.dutyName) LIKE upper('%$objCondition$%'))) ORDER BY id DESC) a WHERE ($start$=0 OR ROWNUM <= DECODE ($start$, 1, $limit$, $start$ + $limit$ - 1))) WHERE ($start$=0 OR nm >= $start$) ]]> </select> <select id="findByCount" parameterClass="page" resultClass="int"> <![CDATA[ SELECT COUNT(*) FROM PLAN_USER WHERE ( ('$objCondition$' is null or upper(userName) LIKE upper('%$objCondition$%')) OR('$objCondition$' is null or upper(phoneNum) LIKE upper('%$objCondition$%')) OR('$objCondition$' is null or upper(email) LIKE upper('%$objCondition$%')) OR('$objCondition$' is null or upper(companyName) LIKE upper('%$objCondition$%')) OR('$objCondition$' is null or upper(deptName) LIKE upper('%$objCondition$%')) OR('$objCondition$' is null or upper(dutyName) LIKE upper('%$objCondition$%'))) ]]> </select> <!-- 用户登录 --> <select id="login" parameterClass="user" resultClass="user"> <![CDATA[ SELECT * FROM PLAN_USER u WHERE userName = #userName# and passWord = #passWord# and u.id not in(SELECT userId FROM TIME_LOGOUT) ]]> </select> <!-- 查询所有用户姓名 --> <select id="findUser" resultClass="user"> <![CDATA[ SELECT emplName FROM PLAN_USER ]]> </select> </sqlMap>