`

mybatis-杂记

阅读更多

 1、mybatis在xml文件中处理大于号小于号的方法

         第一种方法:

              用了转义字符把>和<替换掉,然后就没有问题了。
             SELECT * FROM test WHERE 1 = 1 AND start_date  &lt;= CURRENT_DATE AND end_date &gt;= CURRENT_DATE

    附:XML转义字符

&lt;

小于号

&gt;

大于号

&amp;

&

&apos;

'

单引号

&quot;

"

双引号

         第二种方法: 
             因为这个是xml格式的,所以不允许出现类似“>”这样的字符,但是都可以使用<![CDATA[ ]]>符号进行说明,将此类符号不进行解析 你的可以写成这个,mapper文件示例代码:

 

<![CDATA[ when min(starttime)<='12:00' and max(endtime)<='12:00' ]]>

 

2、SQL语句中“resultMap”和"parameterMap"的设置

     在配置文件先申明resultMap和parameterMap

 <resultMap id="BaseResultMap" type="com.etwin.order.model.UserNew" >
    <id column="ID" property="id" jdbcType="INTEGER" />
    <result column="USER_ID" property="userId" jdbcType="VARCHAR" />
    <result column="Name" property="name" jdbcType="VARCHAR" />
    <result column="PassWord" property="password" jdbcType="VARCHAR" />
    <result column="Sex" property="sex" jdbcType="INTEGER" />
    <result column="Phone" property="phone" jdbcType="VARCHAR" />
    <result column="IDCard" property="idcard" jdbcType="VARCHAR" />
    <result column="Email" property="email" jdbcType="VARCHAR" />
    <result column="Add_Person" property="addPerson" jdbcType="VARCHAR" />
    <result column="Add_Time" property="addTime" jdbcType="TIMESTAMP" />
    <result column="Role_ID" property="roleId" jdbcType="VARCHAR" />
    <result column="status" property="status" jdbcType="INTEGER" />
    <result column="loginTime" property="logintime" jdbcType="TIMESTAMP" />
    <result column="Cash_Password" property="cashPassword" jdbcType="VARCHAR" />
    <result column="Agent_ID" property="agentId" jdbcType="INTEGER" />
    <result column="Is_Enable" property="isEnable" jdbcType="VARCHAR" />
    <result column="Agent_Type" property="agentType" jdbcType="VARCHAR" />
  </resultMap>

 说明:
      resultMap:返回结果集
      parameterMap:查询参数集

      BaseResultMap:可以为返回结果集也可以为查询参数集,jdbcType可写可不写。

    

      SQL查询例子

<select id="selectUserOldJiLian" resultType="com.etwin.order.model.UserOld" parameterType="com.etwin.order.model.UserOld">
	select distinct u.User_ID userId, u.Agent_ID agentId, u.User_Name userName, u.Password Password, u.User_Type userType, u.Create_Date createDate,
	u.Create_By createBy,u.Modify_Date modifyDate, u.Modify_Pass_Date modifyPassDate, u.Modify_PayPass_Date modifyPaypassDate, u.Modify_By modifyBy,
	u.Active_Flag activeFlag,u.Employee_Name employeeName, u.Email email, u.Tel tel, u.Mobile_Tel mobileTel, u.Stop_CMD stopCmd, u.Is_Admin isAdmin,
	u.Pay_Password payPassword, u.Parent_Agent_Id parentAgentId, u.Question question, u.Answer answer, u.User_Security userSecurity, r.Role_ID RoleId
	from  om_user u,om_userrole ur,om_role r
	<where>
		1=1 and u.user_id = ur.User_id and ur.Role_Code = r.Role_Code
		<if test="agentId != null">
			AND Agent_ID = #{agentId}
		</if>
	</where>
</select>

 说明:

      resultType="com.etwin.order.model.UserOld",返回结果为对象,可以换成上面配置好的resultMap="BaseResultMap"

      parameterType="com.etwin.order.model.UserOld",查询差数为对象,可以换成上面配置好的parameterMap="BaseResultMap"

 

3、mybatis批量操作

     xml文件配置      

<!-- 批量插入 -->
<insert id="insertRoleNewList" parameterType="java.util.List">
	insert into sys_role(ID,Role_ID,Name)
		values
	<foreach collection="list" item="item" index="index" separator=",">
		(#{item.id}, #{item.roleId},#{item.name})
	</foreach>
</insert>
 注释:list为道中传入的参数(集合)
    dao调用
int insertRoleNewList(List list);
 注释:list为向xml文件中传递的参数
 
4、迭代写法    
     xml文件写法
<select id="findUserIdRole" resultMap="roleResultMap" parameterType="java.util.Map">
     select * from t_role
     <trim prefix="where" prefixOverrides="and" >
	      <if test="userRoleIdList!=null">
                  and id in
                  <foreach item="item" index="index" collection="userRoleIdList" open="(" separator="," close=")">  
 			#{item}  
		  </foreach>   
	      </if>
     </trim>     
</select>
  注释:collection="userRoleIdList"中userRoleIdList为集合
    调用类写法
package com.gamexun.support.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.gamexun.support.model.Role;
import com.gamexun.support.service.RoleService;

public class Test {
	public static void main(String[] args) {         
        @SuppressWarnings("resource")
	ApplicationContext context = new ClassPathXmlApplicationContext("gx-support-common-context-test.xml");
        RoleService roleService = (RoleService)context.getBean("roleService");     

        try { 
        	Map<String,Object> params = new HashMap<String,Object>();
        	List userRoleIdList = new ArrayList();
        	userRoleIdList.add(1);
        	userRoleIdList.add(2);
        	userRoleIdList.add(3);
        	params.put("userRoleIdList",userRoleIdList);
        	List<Role> list = roleService.findUserIdRole(params);
        	System.out.println("---------------------------------------------");
		System.out.println(list.size());
	} catch (Exception e) {
		e.printStackTrace();
	}      
    }
}
5、在mybatis中使用模糊查询
<!-- 查询用户 -->
<select id="getUser" resultMap="usertMap" parameterType="java.util.Map">
       select * from user
       <where>
       		1=1
       		<if test="account!=null"><![CDATA[ and account like '${account}%' ]]></if>
       		<if test="name!=null"><![CDATA[ and name like '${name}%' ]]></if>
       		<if test="tel!=null"><![CDATA[ and phone like '${tel}%' ]]></if>
       		<if test="beginNum!=null and count!=null">
       			order by id limit #{beginNum},#{count}
       		</if>
       </where>
</select>
 说明:like后面必须用$;
分享到:
评论

相关推荐

    MyBatis-Plus 的官方示例(mybatis-plus-samples-master.zip)

    本工程为 MyBatis-Plus 的官方示例,项目结构如下: mybatis-plus-sample-quickstart: 快速开始示例 mybatis-plus-sample-quickstart-springmvc: 快速开始示例(Spring MVC版本) mybatis-plus-sample-reduce-...

    mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip

    mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip ...

    MyBatis-Plus入门+MyBatis-Plus文档手册 中文pdf高清版.rar

    mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中...《MyBatis-Plus入门文档》主要介绍了MyBatis-Plus入门使用,以及关于mybatis-plus的更多介绍及特性,感兴趣的可以下载学习一下

    mybatis-3-config.dtd mybatis-3-mapper.dtd

    在MyBatis的配置和映射文件中,`mybatis-3-config.dtd` 和 `mybatis-3-mapper.dtd` 是两个至关重要的DTD(Document Type Definition)文件,它们定义了MyBatis配置文件和映射文件的结构和规则。 首先,我们来看`...

    mybatis-plug.jar和 mybatis-plug的安装说明

    MyBatis-Plus是一个强大的扩展库,它是MyBatis框架的增强工具,旨在简化开发,减少常规 CRUD(创建、读取、更新、删除)操作的代码量。在本指南中,我们将详细介绍如何安装和使用mybatis-plus.jar以及相关的mybatis-...

    mybatis-spring-1.3.1.jar下载

    MyBatis-Spring 1.3.1 是一个重要的Java库,它为MyBatis持久层框架和Spring框架提供了一座桥梁,使得两个强大的库能够无缝集成。这个版本的jar文件是开发者在使用MyBatis与Spring进行项目开发时必不可少的组件。下面...

    mybatis-flex-1.6.2.zip

    mybatis-flex-1.6.2.zip源码: 更轻量 MyBatis-Flex 除了 MyBatis 本身,再无任何第三方依赖,因此会带来更高的自主性、把控性和稳定性。在任何一个系统中,依赖越多,稳定性越差。 更灵活 MyBatis-Flex 提供了...

    mybatis-plus-boot-starter-3.5.1-API文档-中文版.zip

    赠送jar包:mybatis-plus-boot-starter-3.5.1.jar; 赠送原API文档:mybatis-plus-boot-starter-3.5.1-javadoc.jar; 赠送源代码:mybatis-plus-boot-starter-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-...

    mybatis-spring-2.0.0-API文档-中文版.zip

    赠送jar包:mybatis-spring-2.0.0.jar; 赠送原API文档:mybatis-spring-2.0.0-javadoc.jar; 赠送源代码:mybatis-spring-2.0.0-sources.jar; 赠送Maven依赖信息文件:mybatis-spring-2.0.0.pom; 包含翻译后的API...

    mybatis-spring-2.0.6-API文档-中文版.zip

    赠送jar包:mybatis-spring-2.0.6.jar; 赠送原API文档:mybatis-spring-2.0.6-javadoc.jar; 赠送源代码:mybatis-spring-2.0.6-sources.jar; 赠送Maven依赖信息文件:mybatis-spring-2.0.6.pom; 包含翻译后的API...

    mybatis-plus-annotation-3.5.1-API文档-中文版.zip

    赠送jar包:mybatis-plus-annotation-3.5.1.jar; 赠送原API文档:mybatis-plus-annotation-3.5.1-javadoc.jar; 赠送源代码:mybatis-plus-annotation-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-...

    mybatis-plus-extension-3.5.1-API文档-中英对照版.zip

    赠送jar包:mybatis-plus-extension-3.5.1.jar; 赠送原API文档:mybatis-plus-extension-3.5.1-javadoc.jar; 赠送源代码:mybatis-plus-extension-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-...

    mybatis-plus-boot-starter-3.1.0-API文档-中文版.zip

    赠送jar包:mybatis-plus-boot-starter-3.1.0.jar; 赠送原API文档:mybatis-plus-boot-starter-3.1.0-javadoc.jar; 赠送源代码:mybatis-plus-boot-starter-3.1.0-sources.jar; 赠送Maven依赖信息文件:mybatis-...

    mybatis-spring-boot-autoconfigure-1.3.2-API文档-中英对照版.zip

    赠送jar包:mybatis-spring-boot-autoconfigure-1.3.2.jar; 赠送原API文档:mybatis-spring-boot-autoconfigure-1.3.2-javadoc.jar; 赠送源代码:mybatis-spring-boot-autoconfigure-1.3.2-sources.jar; 赠送...

    mybatis-plus 实践及架构原理

    Mybatis-Plus是一款在Mybatis基础上进行增强的优秀工具,它简化了单表的CRUD操作,提高了开发效率,且对原有的SQL操作不做改变。Mybatis-Plus的实践及架构原理主要包含以下几个方面的知识点: 1. Mybatis-Plus的...

    mybatis-generator-core-1.3.7-API文档-中文版.zip

    赠送jar包:mybatis-generator-core-1.3.7.jar; 赠送原API文档:mybatis-generator-core-1.3.7-javadoc.jar; 赠送源代码:mybatis-generator-core-1.3.7-sources.jar; 赠送Maven依赖信息文件:mybatis-generator-...

Global site tag (gtag.js) - Google Analytics