`

动态sql和模糊查询

 
阅读更多

动态sql和模糊查询

<?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.hous.day6.userMapper">
	<!-- 
		根据id查询到一个对象
		模糊查询:name like #{name} 或者  name like '%${name}%'
		查询条件and处理:使用<where>标签
	 -->
	<select id="getUser" parameterType="com.hous.day6.ConditionUser" 
		resultType="com.hous.day6.User">
		select * from users 
		<where>
			<if test="name != '%null%'">
				and name like #{name} 
			</if>
			<if test="minAge != 0 and maxAge != 0">
				and age between #{minAge} and #{maxAge}
			</if>
		</where> 
	</select>
</mapper>

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC"/>
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver"/>
				<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
				<property name="username" value="root" />
				<property name="password" value="root" />
			</dataSource>
		</environment>
	</environments>
	
	<mappers>
		<mapper resource="com/hous/day6/userMapper.xml" />
	</mappers>
</configuration>

 

package com.hous.day6;

import static org.junit.Assert.*;

import java.io.InputStream;
import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;

public class MyTest {
	
	private SqlSessionFactory factory = null;
	
	@Before
	public void setUp() throws Exception {
		String resource = "day6/config.xml";
		InputStream config = MyTest.class.getClassLoader().getResourceAsStream(resource);
		factory = new SqlSessionFactoryBuilder().build(config);
	}

	@Test
	public void testGetUsers() {
		SqlSession session = factory.openSession();
		String statement = "com.hous.day6.userMapper.getUser";
		String name = null;
		ConditionUser conditionUser = new ConditionUser("%"+name+"%", 1, 100);
		List<User> users = session.selectList(statement, conditionUser);
		session.commit();
		session.close();
		System.out.println("查询结果:" + users);
	}

}

 

package com.hous.day6;

public class ConditionUser {
	private String name;
	private int minAge;
	private int maxAge;

	public ConditionUser(String name, int minAge, int maxAge) {
		super();
		this.name = name;
		this.minAge = minAge;
		this.maxAge = maxAge;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getMinAge() {
		return minAge;
	}

	public void setMinAge(int minAge) {
		this.minAge = minAge;
	}

	public int getMaxAge() {
		return maxAge;
	}

	public void setMaxAge(int maxAge) {
		this.maxAge = maxAge;
	}

}

 

package com.hous.day6;

public class User {
	private int id;
	private String name;
	private int age;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
	}

}

 

分享到:
评论

相关推荐

    SQL数据库模糊查询内容语句

    在SQL(Structured Query Language)中,模糊查询是一种非常重要的功能,它允许我们使用通配符来匹配不完全或不确定的数据...在学习和实践中,不断探索和理解SQL的模糊查询能力,将有助于提升数据操作的效率和准确性。

    sql联合 模糊查询

    在SQL查询语言中,"SQL联合模糊查询"是一种高级技巧,它结合了多个查询结果集以及模糊匹配技术,用于处理复杂的数据检索需求。这一主题涵盖了SQL中的JOIN操作、模糊查询(LIKE语句)以及ORDER BY排序,是数据库管理...

    SQL SERVER 模糊查询的技巧

    在数据库管理和开发工作中,模糊查询是非常实用且常见的功能之一,它能够帮助我们高效地查找符合条件的数据记录。本文将详细介绍SQL Server中的模糊查询技巧,包括基本的通配符使用方法以及如何进行更为复杂的模式...

    sql模糊查询并按匹配度排序

    ### SQL模糊查询并按匹配度排序 在数据库查询操作中,模糊查询是非常常见的一种需求,尤其是在需要处理大量数据且查询条件不确定的情况下。本篇文章将基于提供的SQL查询语句,详细介绍如何进行SQL模糊查询以及如何...

    sql模糊查询

    本文将基于给定的文件信息——“SQL模糊查询”这一主题,进行深入探讨,涵盖模糊查询的基本概念、应用场景、实现方法及其在C#中的具体应用。 ### SQL模糊查询基本概念 SQL模糊查询是指在SQL查询语句中,利用通配符...

    sql server数据库模糊查询语句

    SQL Server 模糊查询语句是指使用 LIKE 关键字和通配符来搜索符合指定模式的字符串。下面是 SQL Server 模糊查询语句的详细说明: 1. LIKE 关键字:LIKE 关键字用于搜索符合指定模式的字符串。它可以与通配符结合...

    SQL模糊查询

    本文将围绕“SQL模糊查询”这一主题,结合提供的示例代码和场景,详细介绍如何在Android应用中实现SQL模糊查询。 #### 一、SQL模糊查询基础 SQL(Structured Query Language)是一种用于管理关系型数据库的标准...

    SQL模糊查询表格.xlsm

    VBA+SQL模糊查询匹配多个表格信息,并提取出来

    Sqlserver 2008模糊查询

    sqlserver 2008 模糊查询和联表查询

    织梦sql标签模糊查询+sql标签分页

    它通常包含了详细的使用教程、注意事项和常见问题解答,可以帮助开发者更准确、高效地运用SQL标签和模糊查询功能。确保先阅读并理解文档,避免出现错误或不期望的结果。 5. **安全注意事项** 虽然SQL标签提供了极...

    Python使用sql语句对mysql数据库多条件模糊查询.pdf

    Python 使用 SQL 语句对 MySQL 数据库多条件模糊查询 Python 是一种广泛使用的编程语言,而 MySQL 是一种常用的关系型数据库管理系统。在实际应用中,我们经常需要使用 Python 连接 MySQL 数据库,并执行多条件...

    SQL模糊查询语法小结

    ### SQL模糊查询语法详解 #### 一、引言 在数据库操作中,模糊查询是非常实用的一种数据检索方式,尤其在需要根据部分信息进行查询时。本文主要介绍SQL模糊查询的基本语法,并着重讲解如何解决因使用通配符而导致...

    SQL使用Like模糊查询

    在SQL(Structured Query Language)中,`LIKE` 模糊查询是一种非常实用的功能,它允许用户根据特定的模式匹配数据库中的数据。这个功能在数据检索、分析和处理时尤其有用,尤其是在我们不确定确切的搜索词或者需要...

    sql\(很长的l模糊查询拼接)sql存储过程

    本文将深入探讨一种特殊的SQL存储过程——基于条件动态构建的模糊查询语句,该方法允许用户根据传入参数的不同组合来构建灵活多变的查询逻辑。 #### 标题解读:“SQL(很长的L模糊查询拼接)SQL存储过程” 标题中...

    sqlserver模糊查询

    仿照百度模糊化查询,根据识别关键字下标,返回最先匹配到的数据。

    c#模糊查询之sql语句

    本主题聚焦于“C#模糊查询之SQL语句”,这是一个关于如何在C#程序中利用SQL进行模糊查询的关键知识点。模糊查询是数据库检索中的一个重要功能,允许用户输入部分关键词或通配符来搜索匹配的数据,这对于数据量庞大的...

    sql 模糊查询

    SQL Server 支持多种通配符来进行模糊查询,这些通配符包括但不限于 `%`、`_`、`[]` 和 `[^]` 或 `[!]`。每种通配符都有其独特的用途和语法: 1. **百分号 `%`**:用于匹配任意数量(包括零个)的字符。 2. **...

    SQL高级实例-模糊查询-分组随机查询-转换

    本资源包"SQL高级实例-模糊查询-分组随机查询-转换"聚焦于SQL的一些关键特性,旨在提升你在实际工作中的查询效率和数据处理能力。让我们逐一探讨这些主题。 首先,**模糊查询**是SQL中用于处理不精确或部分匹配搜索...

    sql正宗模糊查询(仿百度)关键字密度排序查询,不一定要词组匹配

    在SQL查询中,模糊查询是一种非常实用的技术,它允许我们搜索数据库中与特定模式匹配的数据。在本主题中,我们将深入探讨"sql正宗模糊查询",特别是如何模仿百度搜索引擎的关键字密度排序查询,同时理解不一定要词组...

Global site tag (gtag.js) - Google Analytics