java连接数据库的模糊查询

1:模糊查询是比较常见的一种查询方式,例如在订单表中,包含有订单的具体日期。如果要查询某年某月的订单信息,最好的方式就是使用模糊查询。进行模糊查询需要使用关键字LIKE。在使用LIKE关键字进行模糊查询时,可以使用通配符"%",来代替0个或者多个字符,使用下划线_来代表一个字符。

注释:需要注意的是在使用LIKE的时候,后面的查询条件需要加 '  ',英文状态下的单引号引起来,不然报错如下

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%别%' at line 1

 1 package com.ningmeng;
 2 
 3 import java.sql.*;
 4 
 5 public class Test07 {
 6 
 7     public static void main(String[] args) {
 8         // TODO Auto-generated method stub
 9         try {
10             Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动
11             System.out.println("加载数据库驱动成功");
12             String url="jdbc:mysql://localhost:3306/test";//声明自己的数据库test的url
13             String user="root";//自己的数据库用户名
14             String pass="123456";//自己的数据库密码
15             //建立数据库连接,获得连接的对象conn
16             Connection conn=DriverManager.getConnection(url,user,pass);
17             System.out.println("连接数据库驱动成功");
18             Statement stmt=conn.createStatement();//创建一个Statement对象
19             String sql="select * from users where username like '%别%' ";//生成sql语句
20             ResultSet rs=stmt.executeQuery(sql);//执行sql语句
21             int id,age,sex;
22             String username,password;
23             System.out.println("id\t 用户名\t 密码\t 性别\t 年龄");
24             while(rs.next()){
25                 id=rs.getInt("id");
26                 username=rs.getString(2);
27                 password=rs.getString("password");
28                 age=rs.getInt(4);
29                 sex=rs.getInt("age");
30                 System.out.println(id+"\t"+username+"\t"+password+"\t"
31                         +sex+"\t"+age);//输出查询结果
32             }
33             System.out.println("模糊查询成功");
34             conn.close();//关闭数据库连接
35             System.out.println("关闭数据库连接成功");
36         } catch (ClassNotFoundException e) {
37             // TODO Auto-generated catch block
38             e.printStackTrace();
39         } catch (SQLException e) {
40             // TODO Auto-generated catch block
41             e.printStackTrace();
42         }
43         
44     }
45 }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏李智的专栏

Mysql进阶

1) 内连接 select a.*,b.* from a inner join b on a.id=b.parent_i...

8210
来自专栏Leetcode名企之路

【设计模式】单例模式

前几天面试一个校招的小朋友,让他写单例模式,没写出来,所以这里把两年前我的学习笔记发一下。这应该是所有设计模式中最简单的设计模式了,从它讲起。

11930
来自专栏wym

手把手教你写linux系统下贪吃蛇(二)

创建线程后把第一篇用到的refresh()函数都删除,不然因为缓存区的原因产生乱码

24920
来自专栏恰童鞋骚年

走向面试之数据库基础:三、SQL进阶之变量、事务、存储过程与触发器

  SELECT 以表格的方式输出,可以同时输出多个变量;而PRINT 则是以文本的方式输出,一次只能输出一个变量的值。

10920
来自专栏程序员的SOD蜜

PDF.NET数据开发框架 之SQL-MAP使用存储过程

有关SQL-MAP的规范性介绍,请看下面的文章: PDF.NET(PWMIS数据开发框架)之SQL-MAP目标和规范 在SQL-MAP中使用存储过程 1...

274100
来自专栏求教

哪位大神指点下

File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\logging\...

11100
来自专栏Java 技术分享

JDBC(MySQL)一周学习总结(二)

414100
来自专栏xingoo, 一个梦想做发明家的程序员

【设计模式】—— 单例模式Singleton

  模式意图   保证类仅有一个实例,并且可以供应用程序全局使用。为了保证这一点,就需要这个类自己创建自己的对象,并且对外有公开的调用方法。   模式结构 ? ...

19970
来自专栏不想当开发的产品不是好测试

mysql @value := 用法

背景 有这么一张表,记录名字和分数,现在需要按照成绩排名,存在并列名次的情况 ? 解决方法 思路:按照score从大到小排序,第一行数据就是第一名,第二行就是第...

31280
来自专栏Android干货

浅谈Android数据库DBFlow

27450

扫码关注云+社区

领取腾讯云代金券