JDBC模糊查询的4种方式
1:%放在占位符中
parameters.add("%"+familyMemberQueryBean.getFullName()+"%");
sql+=" and t.full_name like ?";
2:使用concat函数
parameters.add(familyMemberQueryBean.getFullName());
sql+=" and t.full_name like concat('%',?,'%')";
3:使用转义字符\,百分号直接写在sql语句中
parameters.add(familyMemberQueryBean.getFullName());
sql+=" and t.full_name like \"%\"?\"%\"";
直接查询的SQL语句如下:SELECT id,full_name,email,phone,remark FROM family_member t WHERE 1 = 1
AND t.full_name LIKE "%"'李'"%" AND t.email LIKE "%"'qq'"%"
4:直接拼接SQL
sql+=" and t.full_name like '%"+familyMemberQueryBean.getFullName()+"%'";
例如:
- package org.pine.dao.impl;
- import org.pine.dao.FamilyMemberDao;
- import org.pine.dto.FamilyMember;
- import org.pine.util.DbcpUtils;
- import org.pine.vo.FamilyMemberQueryBean;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * FamilyMemberDao实现类
- *
- * @Auther: zts
- * @Date: 2019/5/28 下午 03:21
- * @version: 1.0
- */
- public class FamilyMemberDaoImpl implements FamilyMemberDao {
- /*
- public List<FamilyMember> queryFamilyMembers(FamilyMemberQueryBean familyMemberQueryBean) {
- Connection connection =null;
- PreparedStatement preparedStatement=null;
- ResultSet resultSet=null;
- try {
- connection = DbcpUtils.getConnection();
- String sql ="SELECT id,full_name,email,phone,remark FROM family_member t WHERE 1 = 1 ";
- //拼接SQL
- List<Object> parameters = new ArrayList<Object>();
- if(familyMemberQueryBean.getFullName()!=null&&familyMemberQueryBean.getFullName().length()>0){
- parameters.add("%"+familyMemberQueryBean.getFullName()+"%");
- sql+=" and t.full_name like ?";
- }
- if(familyMemberQueryBean.getEmail()!=null&&familyMemberQueryBean.getEmail().length()>0){
- parameters.add("%"+familyMemberQueryBean.getEmail()+"%");
- sql+=" and t.email like ?";
- }
- if(familyMemberQueryBean.getPhone()!=null&&familyMemberQueryBean.getPhone().length()>0){
- parameters.add("%"+familyMemberQueryBean.getPhone()+"%");
- sql+=" and t.phone like ?";
- }
- if(familyMemberQueryBean.getRemark()!=null&&familyMemberQueryBean.getRemark().length()>0){
- parameters.add("%"+familyMemberQueryBean.getRemark()+"%");
- sql+=" and t.remark like ?";
- }
- sql+="limit ?,?";
- parameters.add(familyMemberQueryBean.getStart());
- parameters.add(familyMemberQueryBean.getLimit());
- DbcpUtils.printlnSQL(sql);
- DbcpUtils.printlnParameters(parameters);
- preparedStatement = connection.prepareStatement(sql);
- //设置参数
- for(int i=0;i<parameters.size();i++){
- preparedStatement.setObject(i+1,parameters.get(i));
- }
- resultSet = preparedStatement.executeQuery();
- List<FamilyMember> familyMembers = new ArrayList<FamilyMember>();
- while (resultSet.next()){
- FamilyMember familyMember = new FamilyMember();
- int id = resultSet.getInt("id");
- String fullName = resultSet.getString("full_name");
- String email = resultSet.getString("email");
- String phone = resultSet.getString("phone");
- String remark = resultSet.getString("remark");
- familyMember.setId(id);
- familyMember.setFullName(fullName);
- familyMember.setEmail(email);
- familyMember.setPhone(phone);
- familyMember.setRemark(remark);
- familyMembers.add(familyMember);
- }
- return familyMembers;
- }catch (Exception e){
- throw new RuntimeException(e);
- }finally {
- DbcpUtils.closeConnection(connection,preparedStatement,resultSet);
- }
- }*/
- /*
- @Override
- public int queryFamilyMemberCount(FamilyMemberQueryBean familyMemberQueryBean) {
- Connection connection =null;
- PreparedStatement preparedStatement=null;
- ResultSet resultSet=null;
- try {
- connection = DbcpUtils.getConnection();
- String sql ="SELECT count(*) FROM family_member t WHERE 1 = 1 ";
- //拼接SQL
- List<String> parameters = new ArrayList<String>();
- if(familyMemberQueryBean.getFullName()!=null&&familyMemberQueryBean.getFullName().length()>0){
- parameters.add(familyMemberQueryBean.getFullName());
- sql+=" and t.full_name like concat('%',?,'%')";
- }
- if(familyMemberQueryBean.getEmail()!=null&&familyMemberQueryBean.getEmail().length()>0){
- parameters.add(familyMemberQueryBean.getEmail());
- sql+=" and t.email like concat('%',?,'%')";
- }
- if(familyMemberQueryBean.getPhone()!=null&&familyMemberQueryBean.getPhone().length()>0){
- parameters.add(familyMemberQueryBean.getPhone());
- sql+=" and t.phone like concat('%',?,'%')";
- }
- if(familyMemberQueryBean.getRemark()!=null&&familyMemberQueryBean.getRemark().length()>0){
- parameters.add(familyMemberQueryBean.getRemark());
- sql+=" and t.remark like concat('%',?,'%')";
- }
- DbcpUtils.printlnSQL(sql);
- DbcpUtils.printlnParameters(parameters);
- preparedStatement = connection.prepareStatement(sql);
- //设置参数
- for(int i=0;i<parameters.size();i++){
- preparedStatement.setString(i+1,parameters.get(i));
- }
- resultSet = preparedStatement.executeQuery();
- resultSet.next();
- int count = resultSet.getInt(1);
- return count;
- }catch (Exception e){
- throw new RuntimeException(e);
- }finally {
- DbcpUtils.closeConnection(connection,preparedStatement,resultSet);
- }
- }*/
- public List<FamilyMember> queryFamilyMembers(FamilyMemberQueryBean familyMemberQueryBean) {
- Connection connection =null;
- PreparedStatement preparedStatement=null;
- ResultSet resultSet=null;
- try {
- connection = DbcpUtils.getConnection();
- String sql ="SELECT id,full_name,email,phone,remark FROM family_member t WHERE 1 = 1 ";
- //拼接SQL
- List<Object> parameters = new ArrayList<Object>();
- if(familyMemberQueryBean.getFullName()!=null&&familyMemberQueryBean.getFullName().length()>0){
- parameters.add(familyMemberQueryBean.getFullName());
- sql+=" and t.full_name like \"%\"?\"%\"";
- }
- if(familyMemberQueryBean.getEmail()!=null&&familyMemberQueryBean.getEmail().length()>0){
- parameters.add(familyMemberQueryBean.getEmail());
- sql+=" and t.email like \"%\"?\"%\"";
- }
- if(familyMemberQueryBean.getPhone()!=null&&familyMemberQueryBean.getPhone().length()>0){
- parameters.add(familyMemberQueryBean.getPhone());
- sql+=" and t.phone like \"%\"?\"%\"";
- }
- if(familyMemberQueryBean.getRemark()!=null&&familyMemberQueryBean.getRemark().length()>0){
- parameters.add(familyMemberQueryBean.getRemark());
- sql+=" and t.remark like \"%\"?\"%\"";
- }
- sql+=" limit ?,?";
- parameters.add(familyMemberQueryBean.getStart());
- parameters.add(familyMemberQueryBean.getLimit());
- DbcpUtils.printlnSQL(sql);
- DbcpUtils.printlnParameters(parameters);
- preparedStatement = connection.prepareStatement(sql);
- //设置参数
- for(int i=0;i<parameters.size();i++){
- preparedStatement.setObject(i+1,parameters.get(i));
- }
- resultSet = preparedStatement.executeQuery();
- List<FamilyMember> familyMembers = new ArrayList<FamilyMember>();
- while (resultSet.next()){
- FamilyMember familyMember = new FamilyMember();
- int id = resultSet.getInt("id");
- String fullName = resultSet.getString("full_name");
- String email = resultSet.getString("email");
- String phone = resultSet.getString("phone");
- String remark = resultSet.getString("remark");
- familyMember.setId(id);
- familyMember.setFullName(fullName);
- familyMember.setEmail(email);
- familyMember.setPhone(phone);
- familyMember.setRemark(remark);
- familyMembers.add(familyMember);
- }
- return familyMembers;
- }catch (Exception e){
- throw new RuntimeException(e);
- }finally {
- DbcpUtils.closeConnection(connection,preparedStatement,resultSet);
- }
- }
- @Override
- public int queryFamilyMemberCount(FamilyMemberQueryBean familyMemberQueryBean) {
- Connection connection =null;
- PreparedStatement preparedStatement=null;
- ResultSet resultSet=null;
- try {
- connection = DbcpUtils.getConnection();
- String sql ="SELECT count(*) FROM family_member t WHERE 1 = 1 ";
- //拼接SQL
- List<String> parameters = new ArrayList<String>();
- if(familyMemberQueryBean.getFullName()!=null&&familyMemberQueryBean.getFullName().length()>0){
- sql+=" and t.full_name like '%"+familyMemberQueryBean.getFullName()+"%'";
- }
- if(familyMemberQueryBean.getEmail()!=null&&familyMemberQueryBean.getEmail().length()>0){
- sql+=" and t.email like '%"+familyMemberQueryBean.getEmail()+"%'";
- }
- if(familyMemberQueryBean.getPhone()!=null&&familyMemberQueryBean.getPhone().length()>0){
- sql+=" and t.phone like '%"+familyMemberQueryBean.getPhone()+"%'";
- }
- if(familyMemberQueryBean.getRemark()!=null&&familyMemberQueryBean.getRemark().length()>0){
- sql+=" and t.remark like '"+familyMemberQueryBean.getRemark()+"'";
- }
- DbcpUtils.printlnSQL(sql);
- DbcpUtils.printlnParameters(parameters);
- preparedStatement = connection.prepareStatement(sql);
- //设置参数
- for(int i=0;i<parameters.size();i++){
- preparedStatement.setString(i+1,parameters.get(i));
- }
- resultSet = preparedStatement.executeQuery();
- resultSet.next();
- int count = resultSet.getInt(1);
- return count;
- }catch (Exception e){
- throw new RuntimeException(e);
- }finally {
- DbcpUtils.closeConnection(connection,preparedStatement,resultSet);
- }
- }
- }
JDBC模糊查询的4种方式的更多相关文章
- MyBatis实现模糊查询的几种方式
在学习MyBatis过程中想实现模糊查询,可惜失败了.后来上百度上查了一下,算是解决了.记录一下MyBatis实现模糊查询的几种方式. 数据库表名为test_student,初始化了几条记录,如图: ...
- 【mysql模糊查询的几种方式】
select * from activyty_code where acname like '%yj%' 1:%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分 ...
- mysql中模糊查询的四种用法介绍
下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...
- JDBC注册驱动的三种方式
JDBC注册驱动的三种方式 1.通过导入的JDBC的驱动包拿到的com.mysql.jdbc.Driver对象,利用java.sql.DriverManager对象的DriverManager.reg ...
- mysql进阶(六)模糊查询的四种用法介绍
mysql中模糊查询的四种用法介绍 这篇文章主要介绍了mysql中模糊查询的四种用法,需要的朋友可以参考下. 下面介绍mysql中模糊查询的四种用法: 1 %: 表示任意0个或多个字符.可匹配任意类型 ...
- 下面介绍mysql中模糊查询的四种用法:
下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...
- Java JDBC 模糊查询 避免输入_,%返回全部数据
Java JDBC 模糊查询 避免输入_,%返回全部数据 "SELECT * FROM employees WHERE INSTR(first_name,?)>0 " 仅供参 ...
- 表单模糊查询的三种简单方式(springboot-h2-mybatis)
前几天运营提到说后台管理系统有几个地方想要模糊查询.. 想了下是简单的,就是要注意以前方法的被调用情况,进行增量改动,以免牵一发而动全身.整理一波记录下(本次案例是按名字模糊查询学生信息). 三种 ...
- MyBatis 模糊查询的 4 种实现方式
引言 MyBatis 有 4 种方式可以实现模糊查询. 员工信息表 ( tb_employee ) 如下: id name sex email birthday address 001 张一凡 男 z ...
随机推荐
- ChIP-seq | ATAC-seq | 数据分析流程
思来想去,还是觉得ENCODE的流程靠谱,所以又花了快一周来调试,终于排除万难,跑成功了.[2019年12月08日] 以下是ATAC生成的结果目录: call-align call-call_peak ...
- ROLLUP、CUBE、GROUP BY的使用区别
1.ROLLUP:根据维度在数据结果集中进行的聚合操作,可多维度SELECT count(*) num,MONTH(register_time) times,`status` FROM `user` ...
- Sonar错误 Invoke method(s) only conditionally
sonarLint总是报错: Invoke method(s) only conditionally 代码如下: if(us != null){ logger.info("Log this: ...
- RSA加密和数字签名在Java中常见应用【原创】
相关术语解释: RSA,参考: https://en.wikipedia.org/wiki/RSA_(cryptosystem) 非对称加密算法 ,参考:https://baike.baidu.com ...
- JDBC操作数据库工具类(使用阿里Druid原生API创建数据源)
1.数据库配置类 package com.zdlt.auth.api.common.druid; import java.util.Properties; import static com.alib ...
- TrueType字体
TrueType字形描述技术和TTF文件 TrueType字体技术的研究分析与应用 看起来上面两篇都是翻译的文档. 看微软的原文介绍: TrueType fundamentals 其他文章: 获取Tr ...
- k8s记录-国内下载k8s组件镜像
#!/bin/sh ### 版本信息 K8S_VERSION=v1.13.2 ETCD_VERSION=3.2.24 DASHBOARD_VERSION=v1.8.3 FLANNEL_VERSION= ...
- LwIP应用开发笔记之七:LwIP无操作系统HTTP服务器
前面我们实现了TCP服务器和客户端的简单应用,接下来我们实现一个基于TCP协议的应用协议,那就是HTTP超文本传输协议 1. HTTP协议简介 超文本传输协议(Hyper Text Transf ...
- 转载:postman自动设置token(csrf及authorization token)
原文链接: https://knktc.com/2018/06/03/postman-set-token/ 正文引用: 近期在开发一个Django的项目,由于开启了csrf防护,所以需要在请求的hea ...
- MacbookPro15 2019 闪屏雪花现象方案汇总
1. 系统偏好设置,显示器,关闭 "自动调节亮度" "原彩显示",即取消勾选. 2. 系统偏好设置,节能,关闭 "自动切换图形卡模式",即取 ...