`
qq1988627
  • 浏览: 107168 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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>

 

分享到:
评论

相关推荐

    iBatis资料 语法

    本资料包包含了关于iBatis语法和常用方法的全面介绍,帮助开发者深入理解并熟练运用iBatis进行数据库操作。 首先,`iBatis 2.3.4 api.chm`是iBatis 2.3.4版本的API参考手册,包含了所有类和接口的详细说明,是学习...

    ibatis

    "ibatis in action" 暗示这可能是一本关于如何有效使用iBATIS的实战指南,通常这类书籍会深入讲解框架的各个方面,包括安装配置、基本概念、映射文件、事务管理、动态SQL以及最佳实践等。 标签 "教程" 指出这是一个...

    ibatis教程 输入参数详解

    标题:ibatis教程 输入参数详解 描述:ibatis教程 输入参数详解 ibatis快速入门 ...通过上述知识点的学习,可以深入理解ibatis的工作原理,掌握ibatis的基本使用方法,为开发高性能的Java数据库应用打下坚实的基础。

    ibatis2.X升级mybatis3.X之曲径通幽处

    然而,随着技术的发展,Mybatis3.x应运而生,它在Ibatis的基础上进行了诸多改进和优化。 首先,从版本号的升级可以察觉到一个明显的改变,Mybatis3.x引入了更现代化的设计理念。例如,Mybatis3.x的API更加简洁,对...

    ibatis的使用教程

    Ibatis 提供了一些基本的API,如查询、添加、删除和修改方法。通常,会通过 SqlMapClient 的工厂类创建 SqlMapClient 实例,以管理数据库操作。例如,使用 SqlMapClientBuilder 创建 SqlMapClient 对象,然后执行...

    ibatis+oracle实例

    这个文件包含一系列的`&lt;select&gt;`、`&lt;insert&gt;`、`&lt;update&gt;`和`&lt;delete&gt;`元素,对应SQL的四种基本操作。每个元素可以包含动态SQL,提供更复杂的查询逻辑。 2. **Java接口与映射**:在Java代码中,创建与SQL Map对应的...

    c# net ibatis.net 模板

    2. "IBatis.cst" - 同样,这可能也是一个代码生成模板,可能用于生成与iBatis.NET集成的基础结构,比如数据库连接配置、数据访问层接口或实体类。 使用这样的模板,开发者可以避免手动编写重复的数据库操作代码,...

    iBatis和Hibernate的区别

    - iBatis支持基本的Java对象与数据库表之间的映射,但对象间的关系处理较弱。 - Hibernate则提供了丰富的对象关系映射功能,能够很好地支持复杂对象模型的构建。 - **性能与灵活性**: - 在性能敏感的应用中,...

    IBatis codesmith模板

    7. **优化与扩展**:除了基本的代码生成,`IBatis Codesmith`还可以进行一些优化,比如生成分页查询的代码、添加事务管理等。同时,由于模板机制的存在,开发者可以根据实际需求扩展功能,定制更符合自己项目的代码...

    ibatis中iterate的例子

    其基本语法结构如下: ```xml (" property="propertyName" open="," close=")" conjunction=","&gt; #{propertyName} ``` - `prefix`: 定义在迭代开始前插入的字符串,通常用于生成IN或OR等关键字。 - `property`: ...

    ibatisjar包

    Ibatis这个名字来源于"i"(互联网)和"bati"(基础数据访问工具),它提供了SQL映射功能,允许开发者编写自定义的SQL语句,而无需传统的Hibernate等对象关系映射(ORM)框架的复杂性。 Ibatis的主要特点是将SQL与...

    ibatis批量存储

    iterate标签的基本语法是`(" close=")" conjunction=","/&gt;`,其中`property`指定了集合属性的名称,`open`和`close`定义了循环开始和结束的符号,`conjunction`则是元素之间的连接符。在实际应用中,iterate可以帮助...

    ibatis3应用实例(oracle数据库)

    对于Oracle的特殊语法,如PL/SQL块,Ibatis3也能够良好支持。 3. CRUD操作:Ibatis3提供了一套完整的API,用于执行增删改查操作。例如,`SqlSession.insert()`用于插入数据,`SqlSession.update()`用于更新,`...

    freemark与ibatis动态运用与说明,程序,源代码,文档

    5. 学习路径:对于初学者,首先需要理解Freemarker的基本语法和模板设计理念,然后学习iBatis的配置、映射和动态SQL,最后通过实践项目将两者结合。同时,阅读提供的文档和源代码,可以帮助你快速掌握这两项技术的...

    操作数据库 iBATIS查询

    ##### 1.1 基础LIKE查询语法 当需要执行一个模糊查询时,通常会使用`LIKE`关键字配合通配符`%`。例如,以下SQL语句将查询所有姓“张”的学生: ```sql SELECT * FROM T_STUDENT WHERE S_NAME LIKE '张%'; ``` 在...

    扩展 iBatis 以透明支持多种数据库

    标题 "扩展 iBatis 以透明支持多种数据库" 指的是在 iBatis 数据库持久层框架的基础上,通过一定的编程技巧和配置方法,使其能够灵活地适应不同的数据库系统,无需对应用程序代码进行大规模修改。iBatis 是一个轻量...

    修改ibatis源代码实现物理分页

    7. **性能优化**:除了基本的物理分页,还可以考虑优化策略,如使用索引、避免全表扫描、预热缓存等,以提升查询速度。 综上所述,修改Ibatis源代码实现物理分页涉及的关键技术包括动态SQL、自定义插件、数据库方言...

Global site tag (gtag.js) - Google Analytics