zoukankan      html  css  js  c++  java
  • Mybatis学习笔记11

    trim标签体中是整个字符串拼串后的结果。
    prefix="" 前缀: prefix给拼串后的整个字符串加一个前缀
    prefixOverrides="" 前缀覆盖: 去掉整个字符串前面多余的字符
    suffix="" 后缀: suffix给拼串后的整个字符串加一个后缀
    suffixOverrides="" 后缀覆盖:去掉整个字符串后面多余的字符

    示例代码:

    接口定义:
    package com.mybatis.dao;
    
    import com.mybatis.bean.Employee;
    
    import java.util.List;
    
    public interface EmployeeMapper {
        public List<Employee> getEmpsByConditionTrim(Employee employee);
    }
    
    mapper定义:
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.mybatis.dao.EmployeeMapper">
        <!-- 查询员工,要求,携带了哪个字段查询条件就带上这个字段的值 -->
        <!-- public List<Employee> getEmpsByConditionTrim(Employee employee); -->
        <select id="getEmpsByConditionTrim" resultType="com.mybatis.bean.Employee">
            select * from tbl_employee
            <!--
            后面多出的and或者or where标签不能解决
            trim标签体中是整个字符串拼串后的结果。
    	 	prefix="" 前缀:prefix给拼串后的整个字符串加一个前缀
    	 	prefixOverrides="" 前缀覆盖: 去掉整个字符串前面多余的字符
    	 	suffix="" 后缀 suffix给拼串后的整个字符串加一个后缀
    	 	suffixOverrides="" 后缀覆盖:去掉整个字符串后面多余的字符
    	 	-->
            <!-- 自定义字符串的截取规则 -->
            <trim prefix="where" prefixOverrides="and">
                <if test="id!=null">
                    id=#{id}
                </if>
                <if test="lastName!=null && lastName!=''">
                    and last_name like #{lastName}
                </if>
                <if test="email!=null and email.trim()!=""">
                    and email=#{email}
                </if>
                <if test="gender==0 or gender==1">
                    and gender=#{gender}
                </if>
            </trim>
        </select>
    </mapper>
    
    测试代码:
    package com.mybatis.demo;
    
    import com.mybatis.bean.Employee;
    import com.mybatis.dao.EmployeeMapper;
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    import org.junit.Test;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.List;
    
    public class MyTest {
        public SqlSessionFactory getSqlSessionFactory() throws IOException {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            return new SqlSessionFactoryBuilder().build(inputStream);
        }
    
        @Test
        public void test() throws IOException {
            SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
            SqlSession openSession = sqlSessionFactory.openSession(true);
            try {
                EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
                List<Employee> emps = mapper.getEmpsByConditionTrim(new Employee(null, "jetty", "jetty@126.com", 1));
                for (Employee emp : emps) {
                    System.out.println(emp);
                }
            } finally {
                openSession.close();
            }
        }
    }
    
  • 相关阅读:
    Android移动view动画问题
    GIT常用操作
    linux下mysql安装
    jdk安装
    linux下Tomcat安装
    猜测性能瓶颈
    MySQL没有远程连接权限设置
    linux下jmeter使用帮助
    BI的核心价值[转]
    BI与大数据
  • 原文地址:https://www.cnblogs.com/xidian2014/p/10351264.html
Copyright © 2011-2022 走看看