关于使用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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android触摸事件_android设置按钮点击事件

    Android触摸事件_android设置按钮点击事件在Android系统中,手势的识别是通过.OnGestureListener接口来实现的,利用,摸屏的Fling、Scroll等方法可以进行滑动或翻页效果的实现;触摸屏相关的事件,是通过onTouchListener来实现的。我们可以通过MotionEvent的getAction()方法来获取Touch事件的类型,包括ACTION_DOWN,ACTION_MOVE,ACTION_UP,

    2022年9月5日
  • 安捷伦示波器使用说明书_安捷伦labview采集

    安捷伦示波器使用说明书_安捷伦labview采集Step1:配置VISA协议。VISA协议是AgilentIOLibraries的一部分,主要包含一个虚拟仪器软件架构VISA(一个比较通用的工业仪器软件架构)和标准控制库SICL.我理解前者相当一个底层架构,后者相当于一个指令集.先配置好VISA,然后通过SICL指令集发命令。直接上例子,简单明了。agilent示波器可以直接用VISA,所以只要在C++项目里进行配置。首先在C++里配…

    2022年10月12日
  • 广东省-IT红黑榜排名公司名称

    广东省-IT红黑榜排名公司名称

    2021年12月17日
  • 理解几种常见的进程间通信方式

    理解几种常见的进程间通信方式什么是进程间通信广义上讲,进程间通信(Inter-ProcessCommunication,IPC)是指运行在不同进程(不论是否在同一台机器)中的若干线程间的数据交换。从上面的定义可以得出两点:参与通信的进程即可以运行在同一台机器上,也可以运行在各自的设备环境中(RemoteProcedureCallProtocol,RPC)。如果进程是跨机器运行的,则通常是由网络连接在一起。实现方

    2022年10月9日
  • iis的安装及web服务器配置_药物配置流程

    iis的安装及web服务器配置_药物配置流程 今天在学习ASP.NET网站部署、打包与安装时,先按书上的流程安装了IIS,打开IIS才发现,里面没有ASP.NET,所以为IIS配置ASP,NET又搞了好一阵。没办法,小编是一只没经验的菜鸟,没大佬们那种手速。好啦,现在来分享一下,希望对遇到同样问题的博友有帮助。   (一)IIS的安装过程: (1)在开始栏输入控制面板,打开“控制面板”,点击”程序和功能“ (…

    2022年11月1日
  • websocket 在线工具_websocket添加请求头

    websocket 在线工具_websocket添加请求头Websocket在线模拟请求工具:支持内网和外网Websocket测试连接格式为ws://IP或域名:端口(示例ws://127.0.0.1:8080)

    2022年8月3日

发表回复

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

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