关于使用preparestatement来实现模糊查询
实现 使用 查询 关于 模糊 preparestatement
2023-06-13 09:11:58 时间
大家好,又见面了,我是你们的朋友全栈君。
使用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.cn/135601.html原文链接:https://javaforall.cn
相关文章
- 简单人脸识别一之使用opencv+cnn网络实现人脸识别
- 使用Oracle实现闪回的正确姿势(oracle闪回)
- 利用Oracle临时表实现数据存储(oracle使用临时表)
- 使用Redis实现高性能对象序列化(redis序列化对象)
- 使用Redis实现分布式缓存能力(分布式缓存redis)
- MySQL实现快速统计人数(mysql统计人数)
- 使用Linux Shell脚本实现字符串替换(linux脚本替换字符串)
- MySQL中使用join语句实现不同表之间的数据联接,进行查询和操作(mysql中join语句)
- 实现单表查询Oracle使用拼接字符串实现单表查询的完美解决方案(oracle凭拼接字符串)
- MySQL类编程实现快速数据存取(c mysql类的使用)
- 使用Redis指令实现快速获取所有值(获取redis所有值)
- 使用MySQL实现高效两表管理查询(mysql 两表管理查询)
- 使用ADO连接MySQL,实现参数化查询(ado的mysql参数化)
- 使用Redis实现分页缓存的优化(分页 缓存 redis)
- 使用Redis实现高效的日志查询(使用redis做日志查询)
- 使用Oracle中的IN条件实现复杂查询(oracle中in条件)
- 使用Redis实现高效模糊查询(redis进行模糊查询)
- MySQL中使用loaddata命令实现数据导入的方法