dljd_017_使用PreparedStatement执行模糊查询

一、jdbc模糊查询(查询名字中带a的用户)

package edu.aeon.jdbc.crud;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import edu.aeon.aeonutils.AeonJdbcUtils;
/**
 * [说明]:使用jdbc进行数据操作
 * @author aeon
 */
public class JDBC_insert {
    /**
     * 使用jdbc进行增加操作(DML)
     */
    public static void jdbc_insert(){
        Connection connection=null;
        PreparedStatement preparedStatement = null;
        try {
            connection = AeonJdbcUtils.getMySqlConnection();
            String sql="insert into user(userid,username,userpw) values (?,?,?)";
            //将sql语句进行预编译然后保存到preparedStatement对象中
            preparedStatement = connection.prepareStatement(sql);
            preparedStatement.setInt(1, 10006);
            preparedStatement.setString(2, "aeon");
            preparedStatement.setString(3, "aeon");
            int rowCount = preparedStatement.executeUpdate();
            System.out.println(rowCount+"条数据被插入!");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            AeonJdbcUtils.closeDB(null, preparedStatement, connection);
        }
    }
    /**
     * 查询操作(DQL)
     * @param args
     */
    public static void jdbc_select(){
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet  resultSet = null;
        try {
            connection=AeonJdbcUtils.getMySqlConnection();
            String sql="select userid,username,userpw from user where userid > ?";
            preparedStatement=connection.prepareStatement(sql);
            preparedStatement.setInt(1, 10002);
            resultSet = preparedStatement.executeQuery();
            System.out.println("用户id\t用户名\t用户密码");
            while(resultSet.next()){
            int userid=resultSet.getInt("userid");
            String username=resultSet.getString("username");
            String userpw=resultSet.getString("userpw");
            System.out.println(userid+"\t"+username+"\t"+userpw);
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            AeonJdbcUtils.closeDB(resultSet, preparedStatement, connection);
        }
    }

    /**
     * 模糊查询 查询名字中带a的用户
     * %a%:名字中包含a的
     * a%:以a开头的
     * _a%:名字第二个有a的
     * @param args
     */
    public static void jdbc_selectLike(){
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet  resultSet = null;
        try {
            connection=AeonJdbcUtils.getMySqlConnection();
            String sql="select userid,username,userpw from user where username like ?";
            preparedStatement=connection.prepareStatement(sql);
            //查询名字中带a的用户
            preparedStatement.setString(1, "%a%");
            resultSet = preparedStatement.executeQuery();
            System.out.println("用户id\t用户名\t用户密码");
            while(resultSet.next()){
            int userid=resultSet.getInt("userid");
            String username=resultSet.getString("username");
            String userpw=resultSet.getString("userpw");
            System.out.println(userid+"\t"+username+"\t"+userpw);
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally{
            AeonJdbcUtils.closeDB(resultSet, preparedStatement, connection);
        }
    }
    public static void main(String[] args) {
        //jdbc_insert();
        //jdbc_select();
        jdbc_selectLike();
    }
}

数据库截图:

执行结果截图:

  

原文地址:https://www.cnblogs.com/aeon/p/10074724.html

时间: 2024-07-29 10:56:06

dljd_017_使用PreparedStatement执行模糊查询的相关文章

模糊查询,分页,序列

关于模糊查询, 被查询的字符串不能是  双引号 引起来的.只能是 单引号,否则会不执行的. Select * from emp where name like '%A%' 这里面 是区分 单双引号的.在执行模糊查询的时候不能使用 单引号. 关于 oracle 数据库,查询的语句不区分大小写,也就是不管大小写都可以识别的.但是对于查询的内容来讲,如果是大写 就是 大写,如果是小写的话,就是小写了. Orcl里面 and的 优先级 要高于 or 所以 下面两句话的执行结果 是不相同的. 全角符号查出

JDBC之PreparedStatement模糊查询

今天要做一个关于模糊查询的需求,以前用JDBC做精确查询都是用 "SELECT * FROM test WHERE id = ?",所以用模糊查询时理所当然的也用了"SELECT * FROM test WHERE name = '%?%'",但是查询时一直提示java.sql.SQLException: Invalid parameter index 1. Google一下原来ps不支持上面的写法,应该先用占位符表示 "SELECT * FROM tes

jdbc中如何实现模糊查询

情况如何 再利用jdbc执行sql语句的时候,对于其他的句子的执行没什么太大的问题:加上占位符,然后设置占位符的值. 但是在模糊查询的时候,一直都写不对,这里提供了两种可选的解决办法,以供参考. 解决方法 第一种: String sql = "select studentname, age, phone, address, other from customer"                + " where studentname like ? "; pstm

python模糊查询

#!/bin/env python #coding:utf-8 filename = '/py/Day01/Contact/userinfo' init_username = 'frame' init_password = 'frame' success = 0 while True:     username = raw_input("Username: ").strip()     password = raw_input("Password: ").strip

SQL Server之 (二) SQL语句 模糊查询 空值处理 聚合函数

(二) SQL语句  模糊查询  空值处理  聚合函数 自己学习笔记,转载请注明出处,谢谢!---酸菜 SQL :结构化查询语言(Structured Query Language),关系数据库管理系统的标准语言. Sybase与Mircosoft对标准SQL做了扩展:T-SQL (Transact-SQL); 注:①SQL对大小写的敏感取决于排序规则,一般不敏感; ②SQL对单引号的转义,用两个单引号来表示一个单引号; ③SQL执行顺序: 1→2→3→4 select  * ---------

Oracle数据库,模糊查询、去重查询

分组去重查询,并执行某一个函数 :select  分组字段,聚合函数 from 表名 where 条件 group by分组字段 select  分组字段,聚合函数 from 表名 where 条件 group by分组字段 having过滤条件 例:select cno, avg(degree) from score group by cno having count(sno)>=5: 模糊查询  : like select * from 表名 where 字段 like   '字符串%'  

SQL 模糊查询

执行数据库查询时,有完整查询和模糊查询之分. 一般模糊语句格式如下: SELECT 字段 FROM 表 WHERE 某字段 LIKE 条件; 其中,关于条件,SQL提供了四种匹配模式: 1.%:表示零个或多个字符. 可以匹配任意类型和任意长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如:select * from flow_user where username like '%王%'; 将会把flow_user这张表里面,列名username中还有“王”的记录全部查询出来.

android query 模糊查询

package com.example.utils; import java.util.ArrayList; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelpe

Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办--转自http://www.jb51.net/article/88236.htm

这篇文章主要介绍了Mybatis使用MySQL模糊查询时输入中文检索不到结果的解决办法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下 项目开发中,在做Mybatis动态查询时,遇到了一个问题:MySQL在进行LIKE模糊查询时,输入英文可以正常检索出结果,但是输入中文后检索得到的结果为空. 由于是使用GET方式请求,所以为了确保中文不乱码,在控制台接收到请求参数后,对中文进行了一次编码. ? 1 2 3 4 5 try { realName = new String(realNam