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

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

所需步骤

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

  • 导入包:需要包含包含数据库编程所需的JDBC类的包。 大多数情况下,使用import java.sql.*就足够了。

  • 注册JDBC驱动程序:需要初始化驱动程序,以便可以程序中打开数据库的通信通道。

  • 打开连接:需要使用DriverManager.getConnection()方法来创建一个Connection对象,它表示与数据库服务器的物理连接。

  • 执行查询:需要使用类型为Statement的对象来构建和提交SQL语句,以从满足给定条件的表中获取记录。 此查询使用LIKE子句来选择所有first字段的值包含“y”字母的学生信息。

  • 清理环境:需要明确地关闭所有数据库资源,而不依赖于JVM的垃圾收集。

示例代码

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

  1. //STEP 1. Import required packages
  2. // See more detail at http://www.yiibai.com/jdbc/
  3. import java.sql.*;
  4. public class SelectLikeClause {
  5. // JDBC driver name and database URL
  6. static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
  7. static final String DB_URL = "jdbc:mysql://localhost/jdbc_db";
  8. // Database credentials
  9. static final String USER = "root";
  10. static final String PASS = "123456";
  11. public static void main(String[] args) {
  12. Connection conn = null;
  13. Statement stmt = null;
  14. try{
  15. //STEP 2: Register JDBC driver
  16. Class.forName("com.mysql.jdbc.Driver");
  17. //STEP 3: Open a connection
  18. System.out.println("Connecting to a selected database...");
  19. conn = DriverManager.getConnection(DB_URL, USER, PASS);
  20. System.out.println("Connected database successfully...");
  21. //STEP 4: Execute a query
  22. System.out.println("Creating statement...");
  23. stmt = conn.createStatement();
  24. // Extract records without any condition.
  25. System.out.println("Fetching records without condition...");
  26. String sql = "SELECT id, first, last, age FROM student";
  27. ResultSet rs = stmt.executeQuery(sql);
  28. while(rs.next()){
  29. //Retrieve by column name
  30. int id = rs.getInt("id");
  31. int age = rs.getInt("age");
  32. String first = rs.getString("first");
  33. String last = rs.getString("last");
  34. //Display values
  35. System.out.print("ID: " + id);
  36. System.out.print(", Age: " + age);
  37. System.out.print(", First: " + first);
  38. System.out.println(", Last: " + last);
  39. }
  40. // Select all records having ID equal or greater than 101
  41. System.out.println("Fetching records with condition...");
  42. sql = "SELECT id, first, last, age FROM student" +
  43. " WHERE first LIKE '%y%' ";
  44. rs = stmt.executeQuery(sql);
  45. while(rs.next()){
  46. //Retrieve by column name
  47. int id = rs.getInt("id");
  48. int age = rs.getInt("age");
  49. String first = rs.getString("first");
  50. String last = rs.getString("last");
  51. //Display values
  52. System.out.print("ID: " + id);
  53. System.out.print(", Age: " + age);
  54. System.out.print(", First: " + first);
  55. System.out.println(", Last: " + last);
  56. }
  57. rs.close();
  58. }catch(SQLException se){
  59. //Handle errors for JDBC
  60. se.printStackTrace();
  61. }catch(Exception e){
  62. //Handle errors for Class.forName
  63. e.printStackTrace();
  64. }finally{
  65. //finally block used to close resources
  66. try{
  67. if(stmt!=null)
  68. conn.close();
  69. }catch(SQLException se){
  70. }// do nothing
  71. try{
  72. if(conn!=null)
  73. conn.close();
  74. }catch(SQLException se){
  75. se.printStackTrace();
  76. }//end finally try
  77. }//end try
  78. System.out.println("Goodbye!");
  79. }//end main
  80. }//end JDBCExample
Java

编译上面代码,如下 -

  1. F:\worksp\jdbc> javac -Djava.ext.dirs=F:\worksp\jdbc\libs SelectLikeClause.java
Shell

执行上面代码,如下 -

  1. ## 可先创建表或插入数据 -
  2. ## F:\worksp\jdbc> java -Djava.ext.dirs=F:\worksp\jdbc\libs InsertRecords
  3. F:\worksp\jdbc>java -Djava.ext.dirs=F:\worksp\jdbc\libs SelectLikeClause
  4. Connecting to a selected database...
  5. Fri Jun 02 00:33:58 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.
  6. Connected database successfully...
  7. Creating statement...
  8. Fetching records without condition...
  9. ID: 100, Age: 18, First: C++, Last: Li
  10. ID: 101, Age: 25, First: Python, Last: Py
  11. ID: 102, Age: 30, First: Ruby, Last: Ru
  12. ID: 103, Age: 28, First: Java, Last: Ja
  13. Fetching records with condition...
  14. ID: 101, Age: 25, First: Python, Last: Py
  15. ID: 102, Age: 30, First: Ruby, Last: Ru
  16. Goodbye!
  17. F:\worksp\jdbc>

JDBC Like子句实例的更多相关文章

  1. 【JDBC】Servlet实例

    import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.Dri ...

  2. Oracle JDBC 标准连接实例

    Oracle JDBC 标准连接实例 // 创建一个数据库连接 Connection con = null; // 创建预编译语句对象,一般用PreparedStatement不用Statement ...

  3. JDBC 操作数据库实例

    JDBC是什么 JDBC代表Java数据库连接(Java Database Connectivity),它是用于Java编程语言和数据库之间的数据库无关连接的标准Java API,换句话说:JDBC是 ...

  4. JDBC操作数据库实例

    jdbc操作数据库实例 1.jdbc创建数据库 1.1 前提条件 1.拥有创建和删除表的权限 2.数据库已经启动,且可用 1.2 jdbc创建数据库表的步骤: 导包:导入需要进行数据库编程的 JDBC ...

  5. JDBC WHERE子句条件实例

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

  6. web/jdbc数据库带实例名连接2008

    --------------------------数据库带实例名连接2008-------------------------------------<property name=" ...

  7. JDBC工具类实例

    本文以讲解用单利模式实现一个简单的JDBC实用工具类JDBC连接的四个基本步骤:1.加载相应数据库驱动2.建立相应数据库连接3.构建Statement语句,即增删改查SQL语句4.执行Statemen ...

  8. JDBC排序数据实例

    在本教程将演示如何在JDBC应用程序中,从数据库表中查询数据记录,在查询语句中将使用asc和desc关键字按升序或降序对记录进行排序.在执行以下示例之前,请确保您已经准备好以下操作: 具有数据库管理员 ...

  9. JDBC删除数据实例

    在本教程将演示如何在JDBC应用程序中,删除数据库表中数据记录. 在执行以下示例之前,请确保您已经准备好以下操作: 具有数据库管理员权限,以在给定模式的数据库表中删除数据记录. 要执行以下示例,需要用 ...

随机推荐

  1. Presentational and Container Components

    https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0 There’s a simple pattern I fi ...

  2. DIOCP开源项目-数据库连接池的使用<多帐套数据库>

    很久没有写DIOCP的Demo了,主要公司的事情太繁琐,工作之余都不想动了,之前承若的群里面朋友们的DEMO,昨天晚上恶补了一下,把对数据库连接池的操作加入到了Demo中,大家可以通过SVN下载到最新 ...

  3. js实现默认或者触发一个事件选中元素内容的方法

    方法一:非文本框.文本域的选中内容方法 <!Doctype html> <html> <head> <script type="text/javas ...

  4. visio直线交叉相交跨线修改

    在使用visio画流程图时,经常会遇到两条直线相交.下面讲如何修改使得相交点变成我们想要的方式. 可以设置如下: (1)  全局直线相交,设置跨线标志. (2)  对每条线进行相交跨线设置. (一) ...

  5. Python字符串、时间戳、datetime时间相关转换

    总结的时间转换函数 # datetime时间转为字符串 def Changestr(datetime1): str1 = datetime1.strftime('%Y-%m-%d %H:%M:%S') ...

  6. virsh的详细命令解析(一)

    virsh的详细命令解析 virsh 有命令模式和交互模式如果直接在vrish后面添加参数是命令模式,如果直接写virsh,就会进入交互模式 virsh list 列出所有的虚拟机,虚拟机的状态有(8 ...

  7. java中定义enum示例

    /** * Enumeration for the message delivery mode. Can be persistent or * non persistent. Use the meth ...

  8. JAVA-JSP内置对象之config对象

    相关资料:<21天学通Java Web开发> config对象1.config对象可以用来获得Servlet的配置信息. 方法                               ...

  9. CLR笔记-枚举类型

    class Program { static void Main(string[] args) { Color color = Color.Red; Console.WriteLine(color.T ...

  10. win8中完成进度

    public sealed partial class WorkItem : Page { private IAsyncAction _threadPoolWorkItem; private Manu ...