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种方式的更多相关文章

  1. MyBatis实现模糊查询的几种方式

    在学习MyBatis过程中想实现模糊查询,可惜失败了.后来上百度上查了一下,算是解决了.记录一下MyBatis实现模糊查询的几种方式. 数据库表名为test_student,初始化了几条记录,如图: ...

  2. 【mysql模糊查询的几种方式】

    select * from activyty_code where acname like '%yj%' 1:%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分 ...

  3. mysql中模糊查询的四种用法介绍

    下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...

  4. JDBC注册驱动的三种方式

    JDBC注册驱动的三种方式 1.通过导入的JDBC的驱动包拿到的com.mysql.jdbc.Driver对象,利用java.sql.DriverManager对象的DriverManager.reg ...

  5. mysql进阶(六)模糊查询的四种用法介绍

    mysql中模糊查询的四种用法介绍 这篇文章主要介绍了mysql中模糊查询的四种用法,需要的朋友可以参考下. 下面介绍mysql中模糊查询的四种用法: 1 %: 表示任意0个或多个字符.可匹配任意类型 ...

  6. 下面介绍mysql中模糊查询的四种用法:

    下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...

  7. Java JDBC 模糊查询 避免输入_,%返回全部数据

    Java JDBC 模糊查询 避免输入_,%返回全部数据 "SELECT * FROM employees WHERE INSTR(first_name,?)>0 " 仅供参 ...

  8. 表单模糊查询的三种简单方式(springboot-h2-mybatis)

    前几天运营提到说后台管理系统有几个地方想要模糊查询..   想了下是简单的,就是要注意以前方法的被调用情况,进行增量改动,以免牵一发而动全身.整理一波记录下(本次案例是按名字模糊查询学生信息). 三种 ...

  9. MyBatis 模糊查询的 4 种实现方式

    引言 MyBatis 有 4 种方式可以实现模糊查询. 员工信息表 ( tb_employee ) 如下: id name sex email birthday address 001 张一凡 男 z ...

随机推荐

  1. Win10登陆界面卡住,进去后无法打开网络相关的设置,谷歌浏览器无法上网

    今天Win10抽风,进入登录页面输入用户名和密码之后,大约过了10分钟才进入桌面.重启后仍然如此. 经过调查,问题主要出在网络相关模块上,网络无法正常初始化,导致登录一直卡在网络初始化上. 解决方法如 ...

  2. 使用python脚本批量设置nginx站点的rewrite规则

    一般情况下,配置rewrite重写规则使用shell脚本即可: 把url拼凑成1,2文件中中的格式,运行 chongxie.sh 即可生成我们需要的rewrite规则 [root@web01:/opt ...

  3. Java的面向对象的原则

    1.单一职责原则: /* * (有且只有一个引起功能变化的原因) * 如果在一个类中,承载的功能越多. * 交融的耦合性越高,被复用的可能性越低. * 耦合性高的话,当一个类的职责发生变化的时候,会引 ...

  4. Idea导入maven项目没有识别

    选中module的pom.xml,右键,选择" add as maven project",idea会识别该pom的项目  

  5. phpspreadsheet 中文文档(八)读写文件+读取文件

    2019年10月11日14:09:40 配置设定 将PhpSpreadsheet文件包含在脚本中之后,但是在实例化Spreadsheet对象或加载工作簿文件之前,可以设置许多配置选项,这些配置选项将影 ...

  6. 设置table表格的单元格间距两种方式

    table表格里设置单元格td之间的间距,通常用cellspacing设置单元格间距,有时候该属性可能无效,或需要用其他方式时,可用其他方式实现,例如在背景是白色背景的时候,设置单元格td的borde ...

  7. Linux 就该这么学 CH04 VIM编辑器和Shell命令脚本

    0 概述 1 Vim编辑器 在linux 中一切都是文件,而配置一个服务就是修改其配置文件的参数. vim 编辑器有三种模式:命令模式,末行模式和编辑模式. 命令模式:控制光标移动,对文件进行操作. ...

  8. [ERROR ]Failed to execute goal org.codehaus.mojo:flatten-maven-plugin:1.1.0:flatten (flatten) on project

    今天在启动项目的时候,莫名的Maven install命令的时候出现错误 错误提示:Failed to execute goal org.codehaus.mojo:flatten-maven-plu ...

  9. (二)Python的应用领域

    Python 的应用领域主要有如下几个: Web应用开发 Python 经常被用于 Web 开发,尽管目前 PHP.JS 依然是 Web 开发的主流语言,但 Python 上升势头更劲.尤其随着 Py ...

  10. python入门之与用户交互

    目录 一.程序与用户交互 1.1 什么是与用户交互 1.2 为什么要与用户交互 1.3 如何与用户交互 1.4 python2和python3中input的区别 1.4.1 python3中的inpu ...