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


相关推荐

  • 分别用N-S图和PAD表示下面的程序流程图_程序流程图,n-s图和pad图是

    分别用N-S图和PAD表示下面的程序流程图_程序流程图,n-s图和pad图是例题:某程序流程图如右图所示,请分别用 N-S图和PAD图表示。PAD图:N-S:盒图2.计算n阶乘的程序N-S图,PAD图

    2022年8月13日
    4
  • unit在matlab中啥意思,unit8(matlab中uint8函数)

    unit在matlab中啥意思,unit8(matlab中uint8函数)就是宏定义,代码中就用这些去定义变量如uint16a;就表示定义了一个无符号整形变量a(等价于unsignedinta;)其他的同理其作用是程序更加简洁最大的作用是增.将变量t类型强制转换为uint8*类型也就是转换成指向uint8类型变量的指针变量uint8应该是无符号8位二进制整型,其实就是unsignedchar类型。一定要是新教材!!!美国的复感恩节。在大多…

    2022年9月17日
    1
  • mybatispluslog激活码[最新免费获取]

    (mybatispluslog激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1STL5S9V8F-eyJsaWNlb…

    2022年3月27日
    221
  • Hadoop3.3.0安装与使用

    Hadoop3.3.0安装与使用

    2021年5月15日
    117
  • xgboost分类算法_python分类统计

    xgboost分类算法_python分类统计今天我们一起来学习一下如何用Python来实现XGBoost分类,这个是一个监督学习的过程,首先我们需要导入两个Python库:importxgboostasxgbfromsklearn.metricsimportaccuracy_score这里的accuracy_score是用来计算分类的正确率的。我们这个分类是通过蘑菇的若干属性来判断蘑菇是否有毒的分类,我们来看看数据…

    2022年9月1日
    2
  • 约束条件(constraint)「建议收藏」

    约束条件(constraint)「建议收藏」1.为啥使用约束条件:约束条件也叫完整性约束条件,当对表中的数据做DML操作时会验证数据是否违反约束条件.如果违反了DML操作会失败.约束条件可以应用于表中的一列或几列,应用于整个表或几个表之间.约束条件分类:非空(NOTNULL),唯一(UNIQUE),主键(PRIMARYKEY),外键(FOREIGNKEY),检查(CHECK).其中NOTNULL只能应用于列.

    2022年10月13日
    0

发表回复

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

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