精华内容
下载资源
问答
  • Oracle 多参数查询语句

    2020-09-09 22:19:32
    主要介绍了Oracle 多参数查询语句 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
  • Oracle 多参数查询

    2016-12-10 15:34:25
    Oracle 多条件查询,多参数查询
    CREATE OR REPLACE FUNCTION f_get_param(
    			IN_PARAM IN VARCHAR2,
    			IN_FLAG IN VARCHAR2)
    RETURN VARCHAR2 IS
    RESULT VARCHAR2(500);
    v_leng NUMBER;
    v_left NUMBER;
    v_right NUMBER;
    v_param VARCHAR2(200);
    v_param1 VARCHAR2(200);
    BEGION
     RESULT := '';
     v_param:=IN_PARAM;
     v_leng := LENGTH(v_param);
     v_left := instr(v_param,in_flag);
     IF v_left > 0 THEN
    	v_param1 := substr(v_param,v_left,v_leng - v_left +1)
    	v_left := instr(v_param1,':') + 1;
    	v_right := indtr(v_param1,'$');
    	RESULT := substr(v_param1,v_left,v_right-v_left)
     END IF;
     RETURN(RESULT);
     EXCEPTION
    	WHEN OTHERS THEN
    	RETURN '';
    END f_get_param;
    
    //数据库赋值格式
    f_get_param(v_param,'materialtype:');//器件编码类型
    //数据库展示
    public string BuildToParams(ListArgs Args)
    {
    	string params = '$';
    	if(Args != null)
    	{
    		if(!string.isNotEmpty(Args.MaterailType))
    		{
    			params = params + 'materialtypes:' + Args.MaterailType + '$';
    		}
    	}
    	return params;
    }
    //Oracle 数据库拓展-多选参数
    SELECT instr(',' || '1,2,3,21' || ',',',' || '1' || ',') FROM DUAL
    SELECT * FROM table_name where instr(',' || list_id || ',',',' || id || ',') > 0
    //Oarcle 多条件','隔开查询 
    select distinct regexp_substr('我爱你','[^.]+',1,rownum) xyz_name From dual
    connect by rownum <= length('我爱你') - length(replace('我爱你',',')) + 1

    展开全文
  • 本文要实现Mybatis多参数查询与列表查询不同方式实现,以一个实例来说明。 本文示例工程下载 一、查询所有数据,返回List 查询出列表,也就是返回list, 在我们这个例子中也就是 List , 这种方式返回数据...

       本文要实现Mybatis多参数查询与列表查询不同方式实现,以一个实例来说明。

    本文示例工程下载

    一、查询所有数据,返回List

    查询出列表,也就是返回list, 在我们这个例子中也就是 List<Employeer> , 这种方式返回数据,需要在Employeer.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个resultMap 所对应的应该是我们自己配置的

    [html] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. <!-- 定义数据库字段与实体对象的映射关系 -->  
    2. <resultMap type="Employeer" id="resultMap">  
    3.    <id property="employeer_id" column="employeer_id"/>   
    4.    <result property="employeer_name" column="employeer_name"/>  
    5.    <result property="employeer_age" column="employeer_age"/>  
    6.    <result property="employeer_department" column="employeer_department"/>  
    7.    <result property="employeer_worktype" column="employeer_worktype"/>  
    8. </resultMap>  
    id、result是最简单的映射,id为主键映射;result其他基本数据库表字段到实体类属性的映射。

    查询列表的语句在 Employeer.xml 

    [html] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. <!-- 返回list 的select 语句,注意 resultMap 的值是指向前面定义好的 -->  
    2.     <select id="findEmployeerByName" parameterType="string" resultMap="resultMap">  
    3.         select * from `t_employeer` where employeer_name like #{employeer_name}  
    4.     </select>  
    在EmployeerMapper 接口中增加方法:public List<Employeer> findEmployeerByName(String employeer_name);   
    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. /** 
    2.  * 注意要和Employeer.xml的方法名对应 
    3.  */  
    4. public List<Employeer> findEmployeerByName(String employeer_name);     

    测试:

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. /** 
    2.  * 查询列表 
    3.  */  
    4. public static List<Employeer> getEmployeerList(String employeer_name){  
    5.     SqlSession session = null;  
    6.      List<Employeer> employeers=null;  
    7.     try {  
    8.         session = sqlSessionFactory.openSession();   
    9.         EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);  
    10.          employeers = employeerMapper.findEmployeerByName(employeer_name);    
    11.            session.commit() ;         
    12.     } finally {  
    13.         session.close();  
    14.     }  
    15.     return employeers;  
    16.     
    17.    }  
    18. public static void main(String[] args) {                              
    19.     List<Employeer> employeers=getEmployeerList("张三");  
    20.      for(Employeer employeer:employeers){  
    21.             System.out.println(employeer);  
    22.         }  
    23.   
    24. }  

    结果:


    其中的数据的之前插入的,现在要查找张三的列表全部都列出来了。

    二、多参数查询

    (1)方法一


    EmployeerMapper中定义

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. /** 
    2.  * 多参数查询,注意要和Employeer.xml的方法名对应 
    3.  */  
    4. public List<Employeer> findEmployeerByNameandDep(String employeer_name,String employeer_department);  
    Employeer.xml中定义

    [html] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. <!-- 定义数据库字段与实体对象的映射关系 -->  
    2. <resultMap type="Employeer" id="resultMap">  
    3.    <id property="employeer_id" column="employeer_id"/>   
    4.    <result property="employeer_name" column="employeer_name"/>  
    5.    <result property="employeer_age" column="employeer_age"/>  
    6.    <result property="employeer_department" column="employeer_department"/>  
    7.    <result property="employeer_worktype" column="employeer_worktype"/>  
    8. </resultMap>  
    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. <!--多参数 查找 返回list 的select 语句,注意 resultMap 的值是指向前面定义好的 -->  
    2.      <select id="findEmployeerByNameandDep"  resultMap="resultMap">  
    3.      select* from `t_employeer` where employeer_name=#{0} and employeer_department=#{1}  
    4.      </select>   
    由于是多参数那么就不能使用parameterType, 改用#{index}是第几个就用第几个的索引,索引从0开始


    测试代码:

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. /** 
    2.  * 多参数查询列表 
    3.  */  
    4. public static List<Employeer> getEmployeerList(String employeer_name,String employeer_department){  
    5.     SqlSession session = null;  
    6.      List<Employeer> employeers=null;  
    7.     try {  
    8.         session = sqlSessionFactory.openSession();   
    9.         EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);  
    10.          employeers = employeerMapper.findEmployeerByNameandDep(employeer_name, employeer_department);  
    11.            session.commit() ;         
    12.     } finally {  
    13.         session.close();  
    14.     }  
    15.     return employeers;  
    16.     
    17.    }  

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. public static void main(String[] args) {     
    2.      System.out.println("=========================使用多单参数查询===========================");  
    3.      List<Employeer> employeers1=getEmployeerList("张三","产品二部");  
    4.      for(Employeer employeer1:employeers1){  
    5.          System.out.println(employeer1);  
    6.      }  

    结果:


    方法二:

    将 resultMap="resultMap" 改成 resultType="Employeer"

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. <!--多参数 查找 返回list 的select 语句,注意 resultMap 的值是指向前面定义好的 -->  
    2.      <select id="findEmployeerByNameandDep"  resultType="Employeer">  
    3.      select* from `t_employeer` where employeer_name=#{0} and employeer_department=#{1}  
    4.      </select>   
    方法三:Map封装多参数
    EmployeerMapper.java中添加
    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. /** 
    2.  * 多参数查询,注意要和Employeer.xml的方法名对应 
    3.  */  
    4. public List<Employeer> findEmployeerByNameandDep1(Map<String,String> map);  
    Employeer.xml中添加:

    [html] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. <!--多参数 查找 返回list 的select 语句,注意 resultMap 的值是指向前面定义好的,注意key1和key2为传入的map的键值 -->  
    2. <select id="findEmployeerByNameandDep1" parameterType="map" resultType="Employeer">  
    3. select* from `t_employeer` where employeer_name=#{key1} and employeer_department=#{key2}  
    4. </select>   

    其中map是mybatis自己配置好的直接使用就行。map中key的名字是那个就在#{}使用那个。

    测试使用:

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. /** 
    2.  * 多参数查询列表,使用map 
    3.  */  
    4. public static List<Employeer> getEmployeerList(Map<String, String> map){  
    5.     SqlSession session = null;  
    6.      List<Employeer> employeers=null;  
    7.     try {  
    8.         session = sqlSessionFactory.openSession();   
    9.         EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);  
    10.          employeers = employeerMapper.findEmployeerByNameandDep1(map);  
    11.            session.commit() ;         
    12.     } finally {  
    13.         session.close();  
    14.     }  
    15.     return employeers;  
    16.     
    17.    }  

    [java] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. System.out.println("=========================使用多单参数map方式查询===========================");  
    2. Map<String, String> map = new HashMap<String, String>();   
    3. map.put("key1""明明");   
    4. map.put("key2""财会部");  
    5. List<Employeer> employeers2=getEmployeerList(map);  
    6. for(Employeer employeer2:employeers2){  
    7.           System.out.println(employeer2);  
    8.       }  

    一定要注意key:

    结果:


    本文示例工程下载


    出自:http://blog.csdn.net/evankaka

    展开全文
  • MySQL多参数查询

    2020-06-24 09:33:36
    where 列名 in (参数1,参数2)
    where 列名 in (参数1,参数2)
    
    展开全文
  • mybatis多参数查询

    2019-08-29 12:59:44
    一、利用map封装参数 xxxmapper.xml的查询语句(直接用占位符#{key},key就是map的key) <select id="selectByMap" parameterType="hashmap" resultType="com.mybatis_demo.domain.User"> select * from t...

    一、利用map封装多个参数

    xxxmapper.xml的查询语句(直接用占位符#{key},key就是map的key)

    <select id="selectByMap" parameterType="hashmap" resultType="com.mybatis_demo.domain.User">
    	select * from t_user where uname like concat('%',#{uname},'%') and age>#{age}
    </select>
    

    测试代码

    //用map封装多个参数实现多参数查询
    	@Test
    	public void test6() {
    		try {
    			//读取配置文件
    			InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
    			//创建sqlSessionFactoryBuilder
    			SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    			//利用sqlSessionFactoryBuilder获取sqlSessionFactory
    			SqlSessionFactory sqlSessionFactory = builder.build(in);
    			//利用sqlSessionFactory获取sqlSeesion
    			SqlSession session = sqlSessionFactory.openSession();
    			//利用sqlSeesion操作数据库
    			Map<String,Object> map = new HashMap<String,Object>();
    			map.put("uname", "明");
    			map.put("age", 95);
    			List<User> list = session.selectList("UserMapper.selectByMap", map);
    			for (User user : list) {
    				System.out.println(user);
    			}
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    

    二、利用list封装多个参数

    xxxmapper.xml的查询语句(通过foreach遍历list集合,其中item代表变量,open表示以"(“开头,separator表示变量之间以”,“隔开,close表示以”)"结尾,即遍历结果是(1,3,4,9)

    <select id="selectByList" parameterType="java.util.List" resultType="com.mybatis_demo.domain.User">
    	select * from t_user where uid in
    	<foreach collection="list" item="item" open="(" separator="," close=")">
    		#{item}
    	</foreach>
    </select>
    

    测试代码:

    //多参数查询,用list传递参数,在对应的mapper.xml文件中使用foreach进行遍历
    	@Test
    	public void test7() {
    		try {
    			//读取配置文件
    			InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
    			//创建sqlSessionFactoryBuilder
    			SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    			//利用sqlSessionFactoryBuilder获取sqlSessionFactory
    			SqlSessionFactory sqlSessionFactory = builder.build(in);
    			//利用sqlSessionFactory获取sqlSeesion
    			SqlSession session = sqlSessionFactory.openSession();
    			//利用sqlSeesion操作数据库
    			List<Integer> test = new ArrayList<Integer>();
    			test.add(1);
    			test.add(3);
    			test.add(4);
    			test.add(9);
    			List<User> users = session.selectList("UserMapper.selectByList", test);
    			for (User user : users) {
    				System.out.println(user);
    			}
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    

    三、如果使用动态代理mapper开发,还有另外一种方法

    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_demo.mapper.UserMapper">
    <select id="selectByMoreParamter" resultType="com.mybatis_demo.domain.User">
    	<!-- select * from t_user where uname like concat('%',#{param1},'%') and age = #{param2} and address = #{param3} -->
    	select * from t_user where uname like concat('%',#{arg0},'%') and age = #{arg1} and address = #{arg2}
    </select>
    </mapper>
    

    mapper接口

    public interface UserMapper {
    	//mybatis使用mapper动态代理
    	
    	//4大原则,一个注意
    	//1.接口中的方法名需要与对应mapper.xml的id一致
    	//2.接口中的返回值需要与对应mapper.xml的返回值类型保持一致
    	//3.接口中的参数需要与对应mapper.xml的参数类型、个数、参数名保持一致
    	//4.对应mapper.xml的名字空间需要修改成对应接口的全包名
    	//注意:mapper动态代理根据返回值类型,mybatis会自动选择调用selectone还是selectlist....
    
    	//直接传多个参数
    	public User selectByMoreParamter(String uname,Integer age,String address);
    	
    }
    

    测试代码

    //当传入多个参数时,使用#{arg0}、#{arg1},arg+下标获取参数,下标从0开始
    	//或者使用#{param1},param+下标获取参数下标从1开始
    	@Test
    	public void test_selectByMoreParamter() {
    		try {
    			 //读取配置文件
    			InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
    			//创建SqlSessionFactoryBuilder对象,用来获取SqlSessionFactory对象
    			SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    			//利用SqlSessionFactoryBuilder对象build一个SqlSessionFactory对象
    			SqlSessionFactory build = builder.build(in);
    			//利用sqlSessionFactory获取session对象
    			SqlSession session = build.openSession();
    			//通过session对象获取对应mapper接口
    			UserMapper mapper = session.getMapper(UserMapper.class);
    			User user = mapper.selectByMoreParamter("白", 4, "北京朝阳区");
    			System.out.println(user);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    

    总结:用map可以封装多种不同类型的参数,list只能封装同种类型的参数;使用动态代理可以使用arg+下标获取参数,下标从0开始;或者使用param+下标获取参数,下标从1开始

    展开全文
  • Mybatis多参数查询映射

    千次阅读 2013-06-09 17:09:37
    Mybatis多参数查询映射 www.360doc.com/content/12/1029/09/7471983_244390770.shtml 1/2 最近在做一个Mybatis的项目,由于是接触不久,虽然看了一下资料,但在实际开发中还是暴 露了很多问题,其中最让我头疼的...
  • 在使用Dapper操作Mysql数据库中我介绍了使用dapper进行CURD基本操作,但在示例代码中参数虽然也是通过@开头,但其实不是真正意义的参数查询,而是拼接sql,这种方式不利于防止sql注入,所以在Dappe中可以使用...
  • 主要讲述mybatis多参数查询与列表查询不同方式实现
  • 本文要实现Mybatis多参数查询与列表查询不同方式实现,以一个实例来说明。 本文示例工程下载 一、查询所有数据,返回List 查询出列表,也就是返回list, 在我们这个例子中也就是 List , 这种方式返回数据...
  • 问题描述:在查询的时候,多参数查询,使用(String a,String b)的模式,去查询,查询的时候,报下面的错: “error”: “Internal Server Error”, “message”: “nested exception is org.apache.ibatis.binding...
  • 使用dapper进行参数查询在使用Dapper操作Mysql数据库中我介绍了使用dapper进行CURD基本操作,但在示例代码中参数虽然也是通过@开头,但其实不是真正意义的参数查询,而是拼接sql,这种方式不利于防止sql注入,...
  • MyBatis 多参数查询

    2018-08-22 22:19:33
    userMapper List&lt;UserReponseDto&gt;selectAllUserByTime(@Param(value="user")User user,@Param(value="startTime") String startTime,@Param(value="...select ...
  • 多参数查询@Param 引入 MyBatis中的参数 1、SqlSession中的insert/update/delete/selectOne/selectList方法只能至多传入一个参数; 2、如果要在MyBatis中,传入多个参数,要么把参数封装到JavaBean对象要么封装...
  • 在hibernate中使用hql语句多参数查询,可用多种方式进行! 如:查询登录信息,用户名为root,密码为123;那么可用以下方式进行查询 第一种: [code="java"]Query q=this.getSession().createQuery("...
  • 本文要实现Mybatis多参数查询与列表查询不同方式实现,以一个实例来说明。 本文示例工程下载 一、查询所有数据,返回List 查询出列表,也就是返回list, 在我们这个例子中也就是 List , 这种方式返回数据,需要...
  • resultMap &lt;association column="STR_ID=B2,VIN=B3" property="...其中column是键值对形式,中间用,分割,值为当前sql中的值,键为关联sql中的参数 当前sql SELE...
  • 一、根据日期范围查询 如果数据库里的日期字段属性是date或者是datetime那么maper.xml中应该这样写: 其中<![CDATA[ ]]>:这是XML语法。在CDATA内部的所有内容都会被解析器忽略。如果文本包含了很的"<...
  • ibatis的多参数查询

    2015-04-26 17:04:55
    在ibatis中,会发现其输入参数只能有一个,于是当出现需要进行个输入参数的时候,就要想点办法了,我看到的有以下两种比较好的方法能够解决这个问题 1) 用String代替 SELECT count(*) AS value FROM userinfo...
  • 实体类NewsQuery存储查询参数 package com.gitee.xvyihj.po; public class NewsQuery { private String title; private String typeId; private Boolean recommend; public String getTitle() { return title...
  • 4.通过如果参数的个数超过5个建议为javaBean的形式 package com.test.params public class Good{  private String goodId;  private String orderId;  public String getGoodId() ...
  • <select id="xxx" resultMap="BaseResultMap"> select <include refid="Base_Column_List" />... where 参数1 = #{arg0} and 参数2 = #{arg1} </select> 对象 selectByco...
  • 需求:项目中想实现无限下拉子菜单功能,后台就需要返回包括子节点的所有数据 数据库表结构如下: 上次是通过在java程序中递归不断通过父级id查询子节点...mybatis可以在数据库内部实现递归查询被自动装填...
  • 现有一个参数,是以逗号隔开的字符串,想根据该字符串查询想要的数据(如:select * from where id in (1,2,3,4,5))这里的字符串值就是 soid = "1,2,3,4,5" 解答: 在action或者是控制层写法就是将以逗号隔开的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,339
精华内容 4,535
关键字:

多参数查询