JDBC 模糊查询使sql语句失效

JDBC 模糊查询使sql语句失效:

一,首先先创建一个模糊查询用的表FuzzyQuery并添加数据

use test01;
create table FuzzyQuery
(
	id int auto_increment primary key,
    name varchar(255)
);
insert into FuzzyQuery(id,name) values(1,'jack');
insert into FuzzyQuery(id,name) values(2,'rose');
insert into FuzzyQuery(id,name) values(3,'lace');
insert into FuzzyQuery(id,name) values(4,'langce');
insert into FuzzyQuery(id,name) values(5,'dick');
select *from FuzzyQuery;

结果
二.进行JDBC编程,首先编写工具类DBUtil(主要功能是注册驱动,获取连接,释放资源)

package utils;

import java.sql.*;
/**
 * Connection conn 连接对象
 * Statement ps 数据库操作对象
 * ResultSet rs 结果集
 * */
public class DBUtil {
    public DBUtil() {
    }
    static {
        try {
            //1.注册驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    public static Connection getConnection () throws SQLException {
        return DriverManager.getConnection("jdbc:mysql://localhost:3306/test01","root","zaiy0314");//2.获取连接
    }
    public static void close(Connection conn,Statement ps,ResultSet rs){//5.释放资源
        if (rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (ps!=null){
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

三.建立JDBC连接进行模糊查询

import utils.DBUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JDBCFuzzyQuery {
    public static void main(String[] args) {
    /**
 * Connection conn 连接对象
 * Statement ps 数据库操作对象
 * ResultSet rs 结果集
 * */
        Connection conn=null;
        PreparedStatement ps=null;
        ResultSet rs=null;
        try {
            conn= DBUtil.getConnection();//调用获取连接的方法,在类加载时在静态代码的注册驱动会先执行
           //查询的目的是查询name中第二个字母为a的name,
           //String sql="select name from FuzzyQuery where name like '_?%'";
            //ps=conn.prepareStatement(sql);
            //ps.setString(1,"a");
            //以上方法是不行的,?必须是一个占位符如果在''中则找不到该占位符,所以我们采取以下方法,将该整体看成一个占位符来进行传值.
           String sql="select name from FuzzyQuery where name like ? ";
            ps=conn.prepareStatement(sql);//3.获取预编译数据库操作对象并执行sql语句
            ps.setString(1,"_a%");
            rs=ps.executeQuery();//4.处理查询结果集
            while (rs.next()){
                System.out.println(rs.getString("name"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            DBUtil.close(conn,ps,rs);//调用关闭资源方法
        }
    }
}

结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值