Java 避免多次查询数据库获取相同的值 减少查询数据库的小技巧

通过Map集合存储数据

1、使用场景

多次访问数据库,但查询的数据结果集是不变的。
比如:1、添加记录到数据库
这条记录中有一个唯一标识,这时候需要查询数据库,进行判断是否数据库中已经存在该值。
2、添加数据时,给的是名称,但要求存的是主键,需要到另一个表去查询这些数据。

2、使用方法

// Map<key, value> map = new HashMap<key, value>();
// key是唯一的,后面加入的key会把相同的前面的值覆盖
// key和value 的数据类型是Object
Map<Object, Object> map = new HashMap<Object, Object>();// jdk版本不同,new HashMap()初始化不一样
...
	// 把查出来的数据存放到map中
	// 需要的时候再用对应的值取出
	// 常用的方法
	map.getKey();// 通过key获取value,返回value值
	map.containsKey(key);// 是否包含key,返回true/false
	map.containsValue(value);// 是否包含value,返回true/false
	// 遍历
	for(Map.Entry<Object, Object> m: map.entrySet()){
		Object = m.getkey();// 获取key
		Object = m.getValue();// 获取value
	}
...

3、举例说明

班上来了几位新同学,需要把同学的信息添加到学生表里面
学号作为唯一标识,添加数据的时候就要校验

	// 语句
	String sql_query= "select 学号 from student";
	String sql_insert= "";
	
	// 方法调用
	QueryValue(sql_query);
		
	// 存值
	Map<Integer, Object> map = new HashMap<Object, Object>();
	for(int i = 0; i< QueryValue(sql_query).length){
		...
			//map.put(key,value);
			map.put(i,queryValue[i]);
		...
	}
	// 取值判定,value 表示要添加的学号
	if(map.containsValue(value)){
		throw new Exception("数据表中已经存在这个学号!\n"+ value);// 抛出错误,中断执行
	}else{
		InsertValue(sql_insert);// 添加数据,一般也要做异常处理
	}
	
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值