Mysql 存储过程 实现模糊查询 并在Java中调用

首先,有一个模糊查询订单信息的存储过程:

#通过模糊查找订单信息
drop procedure if exists findOrder;
delimiter ;;
create procedure findOrder(IN _orderid varchar(10), IN _cid varchar(10), IN _dessertnum varchar(20), 
		IN _count varchar(10), IN _bills varchar(10), IN _createtime varchar(20), IN _destination varchar(50), 
					IN _paymethod varchar(20), IN _deletestate varchar(10))
							begin								
								set _orderid = concat('%', _orderid , '%');	
								set _cid = concat('%', _cid , '%');	
								set _dessertnum = concat('%', _dessertnum , '%');
								set _count = concat('%', _count , '%');	
								set _bills = concat('%', _bills , '%');	
								set _createtime = concat('%', _createtime , '%');	
								set _destination = concat('%', _destination , '%');
								set _paymethod = concat('%', _paymethod , '%');
								set _deletestate = concat('%', _deletestate , '%');	
								select * from order_form where delete_state=1 and (order_id like _orderid or c_id like _cid or dessert_num like _dessertnum
													or count like _count or bills like _bills or create_time like _createtime or destination like _destination
																or pay_method like _paymethod or delete_state like _deletestate);
							end;;
delimiter ;

然后再业务逻辑类中调用该存储过程:

conn= tastetime_utils.getConnection();
CallableStatement	cs=conn.prepareCall("{call	findOrder(?,?,?,?,?,?,?,?,?)}");
			cs.setString(1, aa);
			cs.setString(2, aa);
			cs.setString(3, aa);
			cs.setString(4, aa);
			cs.setString(5, aa);
			cs.setString(6, aa);
			cs.setString(7, aa);
			cs.setString(8, aa);
			cs.setString(9, aa);
			rs=cs.executeQuery();

此处的CallableStatement 类似于 StatStatement

猜你喜欢

转载自blog.csdn.net/hst_gogogo/article/details/81292424