关于使用preparestatement来实现模糊查询

关于使用preparestatement来实现模糊查询关于使用prparestatement来实现模糊查询

大家好,又见面了,我是你们的朋友全栈君。

使用preparestatement来实现模糊查询

对于在IDEA中实现jdbc的模糊查询操作,模糊查询就例如,查询数据库的某个表中的名字含有“文”的人的姓名,这种,对此使用的sql语句为:” select * from demo(此为表名)where name(此为变量名) like ?”。在后面指定参数的时候把?指定为”%”+name+”%”,name是指定的查询条件。在前面赋变量。
具体的实现过程如下:

Connection conn = null;
        ResultSet rs=null;
        PreparedStatement stmt=null;
        String ppt="k";

        try {
            //加载驱动类
            Class.forName("com.mysql.jdbc.Driver");
            //建立连接
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/demo",
                        "root", "132456");
            String sql="select * from customer where name =?";
            stmt=conn.prepareStatement("select * from demo where name like ? ");
            stmt.setString(1,"%"+ppt+"%");
            rs=stmt.executeQuery();
            while(rs.next()){
                System.out.println(rs.getString("name"));
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }

在这里插入图片描述
在编写代码的工程中,我遇到了的一个问题就是,在提前设变量的时候,如果我设置createstatement来创建时,会出现这样的情况:

Statement  stmt=conn.prepareStatement(sql);
stmt.setString(1,"%"+ppt+"%");
rs.stmt.executeQuery(sql);

但是实际上executeQuery()是不用添加sql语句的。
后来发现了原因,创建对象时,要使用PrepareStatement stmt来创建,这样就不会报错。
模糊查询的重点还是如何使用setString来进行替换,比较容易理解。
在实际中,sql语句有两种更新数据库的方法:
第一种使用executeQuery(),此方法返回的是数据,通常用于查询语句。
第二种使用executeUpdate(sql),此方法返回的是真假值,是执行增,删,查,改等操作的时候用到的。
另外,最后记得要关闭连接池。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135601.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 进入zookeeper客户端的操作步骤_ajp连接器配置secretRequired

    进入zookeeper客户端的操作步骤_ajp连接器配置secretRequiredzookeeper客户端使用原生JavaApi操作节点

    2022年4月21日
    102
  • es6模板字符串_模板字符串如何实现

    es6模板字符串_模板字符串如何实现<spanclass=”fr”>${(function(){if(list[item].oStatus==0){return`待交易`;}elseif(list[item].oStatus==1){return’已交易’;}else{return’已过期’;}

    2022年8月21日
    13
  • 修改密码passwd鉴定令牌操作错误_命令行修改用户密码

    修改密码passwd鉴定令牌操作错误_命令行修改用户密码修改Linux下一个用户的密码,输入passwdfmuser,提示鉴定令牌操作错误:查看/etc/group/etc/passwd/etc/shadow文件权限输入:lsattr/etc/group/etc/passwd/etc/shadow设置i权限:chattr-i/etc/group/etc/passwd/etc/shadow然后再次查…

    2025年9月19日
    6
  • 十字路口的交通灯控制系统_十字路口红绿灯控制程序设计

    十字路口的交通灯控制系统_十字路口红绿灯控制程序设计十字路口交通信号灯控制系统主要任务开发平台设计思路主要任务设计一个用于十字路口的交通灯控制器,能显示十字路口东西、南北两个方向的红、黄、绿的指示状态;具有倒计时的功能,用两组数码管作为东西和南北方向的倒计时显示,**主干道直行(绿灯)60秒后,左转(绿灯)40秒;支干道直行(绿灯)45秒后,左转(绿灯)30秒,**在每次绿灯变成红灯的转换过程中,要亮黄灯5秒作为过渡。黄灯每秒闪亮一次。只考虑直行和左转车辆控制信号灯,右转车辆不受信号灯控制,南北向车辆与东西向车辆交替方向,同方向等待车辆应先方向直

    2022年9月25日
    4
  • SpringMVC工作流程及其原理

    SpringMVC工作流程及其原理1、序言一、什么是SpringMVC?pring 配备构建Web 应用的全功能MVC框架。Spring可以很便捷地和其他MVC框架集成,如Struts,Spring 的MVC框架用控制反转把业务对象和控制逻辑清晰地隔离。它也允许以声明的方式把请求参数和业务对象绑定。springmvc是一个基于mvc的web框架。springmvc是spring框架的一个模块,springmvc和s…

    2022年6月7日
    25
  • R语言做小提琴图_小提琴用英语怎么读?

    R语言做小提琴图_小提琴用英语怎么读?原创黄小仙即便小仙同学决定学习R语言来提升自己作图的“逼格”的时候,心中还有有些疑虑的(嘿嘿,我这么懒,可不愿意做无用功了

    2022年10月9日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号