关于使用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)
上一篇 2022年6月4日 下午9:46
下一篇 2022年6月4日 下午9:46


相关推荐

  • 最全的ios系统导出微信聊天记录&生成词云教程

    首先放一张我的iPhone手机导出微信聊天记录生成的词云效果图(个别敏感词汇请大家自行忽略hhh):对于如何导出手机上的微信聊天记录,网上绝大部分教程提到的“楼月微信聊天记录导出恢复助手”和“手机博士微信聊天记录查看”等软件都是收费的,免费版本只能查看很少的几条聊天记录并且不能导出。在这里提供一种绝对免费的方法可以方便地导出微信聊天记录,后面附上根据聊天记录生成词云的教程。由于我个人的手机是i…

    2022年4月8日
    102
  • 【推荐】mysql联合 索引(复合索引)的探讨

    【推荐】mysql联合 索引(复合索引)的探讨 Mysql联合索引(复合索引)的使用原则 命名规则:表名_字段名需要加索引的字段,要在where条件中。 数据量少的字段不需要加索引。最窄的字段放在键的左边。 如果where条件中是OR关系,必须所有的or条件都必须是独立索引,否则加索引不起作用。见:mysql关于or的索引问题 最左匹配原则。 只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL…

    2022年5月18日
    62
  • 利用MATLAB 2016a进行BP神经网络的预测(含有神经网络工具箱)「建议收藏」

    利用MATLAB 2016a进行BP神经网络的预测(含有神经网络工具箱)「建议收藏」利用MATLAB2016a进行BP神经网络的预测(含有神经网络工具箱)   最近一段时间在研究如何利用预测其销量个数,在网上搜索了一下,发现了很多模型来预测,比如利用回归模型、时间序列模型,GM(1,1)模型,可是自己在结合实际的工作内容,发现这几种模型预测的精度不是很高,于是再在网上进行搜索,发现神经网络模型可以来预测,并且有很多是结合时间序列或者SVM(支持向量机)等组合模型来

    2022年6月20日
    64
  • Ubuntu 查看磁盘空间大小命令

    Ubuntu 查看磁盘空间大小命令http blog sina com cn s blog 6432901c0100 html nbsp nbsp Df 命令是 linux 系统以磁盘分区为单位查看文件系统 可以加上参数查看磁盘剩余空间信息 命令格式 df hl 显示格式为 文件系统 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 容量已用可用已用 挂载点 Filesystem nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp SizeUsedAva

    2026年3月17日
    2
  • Java中Random用法

    Java中Random用法今天看帖子时候看到了蓄水池算法,想起来之前看到过这样的题目,记录一下用到的Random类吧,面试写算法应该会碰到这样的题目。首先Random是随机生成数用法,介绍一下:1、Random.nextInt():这个用法就是生成一个Int范围里的一个随机数,用法举个例子:Randonmrandom=newRandom;System.out.println(random.nextInt());这时候输出的就是一个随机数,范围就是int的范围,当然括号里是可以填参数的,比如random.nextInt

    2022年7月7日
    23
  • 服务器iscsi存储挂载_redis查询命令

    服务器iscsi存储挂载_redis查询命令当前包含磁盘[root@xifenfei~]#fdisk-lDisk/dev/sda:21.4GB,21474836480bytes255heads,63sectors/track,2610cylindersUnits=cylindersof16065*512=8225280bytesDeviceBootStartEnd…

    2022年8月22日
    13

发表回复

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

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