JDBC WHERE子句条件实例

在本教程将演示如何在JDBC应用程序中,从数据库表中查询数据记录, 在查询选择记录时使用WHERE子句添加其他条件。 在执行以下示例之前,请确保您已经准备好以下操作:

  • 具有数据库管理员权限,以在给定模式的数据库表中查询数据记录。 要执行以下示例,需要用实际用户名和密码替换这里用户名(username)和密码(password)。
  • MySQL或数据库已启动并运行。

所需步骤

使用JDBC应用程序查询表中数据记录需要以下步骤:

  • 导入包:需要包含包含数据库编程所需的JDBC类的包。 大多数情况下,使用import java.sql.*就足够了。
  • 注册JDBC驱动程序:需要初始化驱动程序,以便可以程序中打开数据库的通信通道。
  • 打开连接:需要使用DriverManager.getConnection()方法来创建一个Connection对象,它表示与数据库服务器的物理连接。
  • 执行查询:需要使用类型为Statement的对象来构建和提交SQL语句,以从表中获取满足给定条件的记录。 查询语句使用WHERE子句来选择记录。
  • 清理环境:需要明确地关闭所有数据库资源,而不依赖于JVM的垃圾收集。

示例代码

复制以下示例代码保存到文件:SelectWhereClause.java中,然后编译并运行如下 -

//STEP 1. Import required packages
// See more detail at http://www.yiibai.com/jdbc/

import java.sql.*;

public class SelectWhereClause {
   // JDBC driver name and database URL
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
   static final String DB_URL = "jdbc:mysql://localhost/jdbc_db";

   //  Database credentials
   static final String USER = "root";
   static final String PASS = "123456";

   public static void main(String[] args) {
   Connection conn = null;
   Statement stmt = null;
   try{
      //STEP 2: Register JDBC driver
      Class.forName("com.mysql.jdbc.Driver");

      //STEP 3: Open a connection
      System.out.println("Connecting to a selected database...");
      conn = DriverManager.getConnection(DB_URL, USER, PASS);
      System.out.println("Connected database successfully...");

      //STEP 4: Execute a query
      System.out.println("Creating statement...");
      stmt = conn.createStatement();

      // Extract records without any condition.
      System.out.println("Fetching records without condition...");
      String sql = "SELECT id, first, last, age FROM student";
      ResultSet rs = stmt.executeQuery(sql);

      while(rs.next()){
         //Retrieve by column name
         int id  = rs.getInt("id");
         int age = rs.getInt("age");
         String first = rs.getString("first");
         String last = rs.getString("last");

         //Display values
         System.out.print("ID: " + id);
         System.out.print(", Age: " + age);
         System.out.print(", First: " + first);
         System.out.println(", Last: " + last);
      }

      // Select all records having ID equal or greater than 101
      System.out.println("Fetching records with condition...");
      sql = "SELECT id, first, last, age FROM student" +
                   " WHERE id >= 103 ";
      rs = stmt.executeQuery(sql);

      while(rs.next()){
         //Retrieve by column name
         int id  = rs.getInt("id");
         int age = rs.getInt("age");
         String first = rs.getString("first");
         String last = rs.getString("last");

         //Display values
         System.out.print("ID: " + id);
         System.out.print(", Age: " + age);
         System.out.print(", First: " + first);
         System.out.println(", Last: " + last);
      }
      rs.close();
   }catch(SQLException se){
      //Handle errors for JDBC
      se.printStackTrace();
   }catch(Exception e){
      //Handle errors for Class.forName
      e.printStackTrace();
   }finally{
      //finally block used to close resources
      try{
         if(stmt!=null)
            conn.close();
      }catch(SQLException se){
      }// do nothing
      try{
         if(conn!=null)
            conn.close();
      }catch(SQLException se){
         se.printStackTrace();
      }//end finally try
   }//end try
   System.out.println("Goodbye!");
}//end main
}//end JDBCExample

Java

编译上面代码,如下 -

F:\worksp\jdbc> javac -Djava.ext.dirs=F:\worksp\jdbc\libs SelectWhereClause.java

Shell

执行上面代码,如下 -

## 可先创建表或插入数据 -
## F:\worksp\jdbc> java -Djava.ext.dirs=F:\worksp\jdbc\libs InsertRecords

F:\worksp\jdbc>java -Djava.ext.dirs=F:\worksp\jdbc\libs SelectWhereClause
Connecting to a selected database...
Fri Jun 02 00:22:10 CST 2017 WARN: Establishing SSL connection without server‘s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn‘t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false‘. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Connected database successfully...
Creating statement...
Fetching records without condition...
ID: 100, Age: 18, First: C++, Last: Li
ID: 101, Age: 25, First: Python, Last: Py
ID: 102, Age: 30, First: Ruby, Last: Ru
ID: 103, Age: 28, First: Java, Last: Ja
Fetching records with condition...
ID: 103, Age: 28, First: Java, Last: Ja
Goodbye!

F:\worksp\jdbc>

Shell

在执行上面语句后,可以看到只有 ID 大于等于 103 的记录查询显示出来。

原文地址:https://www.cnblogs.com/borter/p/9608839.html

时间: 2024-10-05 09:37:45

JDBC WHERE子句条件实例的相关文章

JDBC Like子句实例

在本教程将演示如何在JDBC应用程序中,从数据库表中查询数据记录, 在查询选择记录时使用Like子句添加其他条件. 在执行以下示例之前,请确保您已经准备好以下操作: 具有数据库管理员权限,以在给定模式的数据库表中查询数据记录. 要执行以下示例,需要用实际用户名和密码替换这里用户名(username)和密码(password). MySQL或数据库已启动并运行. 所需步骤 使用JDBC应用程序查询表中数据记录需要以下步骤: 导入包:需要包含包含数据库编程所需的JDBC类的包. 大多数情况下,使用i

JDBC查询指定条件的数据

使用select语句的条件查询,需要用到where子句. 1 package qddx.JDBC; 2 import java.sql.*; 3 public class QueryById { 4 5 public bbsVo QuerybbsVoById(int id){ 6 bbsVo vo = null; 7 Connection conn = null; 8 PreparedStatement pst = null; 9 ResultSet rs = null; 10 try{ 11

【Spring】Spring JDBC原理与应用实例讲解

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 一.概述 使用Spring进行基本的JDBC访问数据库有多种选择.Spring至少提供了三种不同的工作模式:Spring JDBC抽象框架core包提供了JDBC模板类,其中JdbcTemplate是core包的核心类,所以其他模板类都是基于它封装完成的,JDBC模板类是第一种工作模式.三种模式如下: JdbcTemplate:是Spring中最基本的JDBC模板, 利用JDBC和简单的索引

JDBC 信息管理系统小实例

SimpleSystem.java package com; import java.util.Scanner; public class SimpleSystem { SqlHelper helper = new SqlHelper(); Scanner scanner = new Scanner(System.in); public static void main(String[] args) { new SimpleSystem().go(); } public void go() {

shell for 与if多条件实例

最近看到群里发了一个计算的,使用shell跑一遍无优化,无算法 题目: 一筐鸡蛋:1个1个拿,正好拿完.2个2个拿,还剩1个.3个3个拿,正好拿完.4个4个拿,还剩1个.5个5个拿,还剩4个.6个6个拿,还剩3个.7个7个拿,正好拿完. 8个8个拿,还剩1个. 9个9个拿,正好拿完.问筐里有多少鸡蛋? 代码: for ((i=1;i<12500;i++)) do     if  (($i%2==1)) && (($i%3==0)) && (($i%4==1)) &am

Tomcat 中的 JDBC Pool

什么是连接池 什么是 Connection Pool -- 连接池呢? 我就不解释了.不太清楚的看这篇文章 [生产级别Nodejs开发实践-使用连接池](这篇文章的前半部分讲述了什么是连接池) Tomcat中的jdbc连接池 它的英文文档在:[The Tomcat JDBC Connection Pool] Tomcat 不仅是非常受欢迎的 Servlet 容器,也是同时为我们提供了很多非常实用组件. jdbc pool 就是其中一个非常实用且高效的 jdbc 连接池的实现. Tomcat 官方

SPQuery 的Where 子句的用法

PQuery 的Where 子句的用法 1.一个条件实例 <Where> <Eq><FieldRef Name='Name'/> <Value Type='Text'>Mark</Value></Eq> </Where> 2.两个条件实例 <Where> <Or> <Eq> <FieldRef Name='Name'/><Value Type='Text'>Joe

android ContentProvider实现资源共享实例

ContentProvider为存储和读取数据提供了统一的接口,使用ContentProvider,应用程序可以实现数据共享,android内置的许多数据都是使用ContentProvider形式,供开发者调用的(如视频,音频,图片,通讯录等). 本实例将SQLite作为存储数据的方式. Activity代码: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC

QBC查询、离线条件查询(DetachedCriteric)和分页查询模版

一.QBC检索步骤 QBC检索步骤: 1.调用Session的createCriteria()方法创建一个Criteria对象. 2.设定查询条件.Expression类提供了一系列用于设定查询条件的静态方法, 这些静态方法都返回Criterion实例,每个Criterion实例代表一个查询条件. Criteria的add()方法用于加入查询条件. 3.调用Criteria的list()方法执行查询语句.该方法返回List类型的查询结果,在 List集合中存放了符合查询条件的持久化对象. 比较运