Java使用jdbc連接SQLServer資料庫完成多條件模糊查詢

2021-03-02 源碼客棧

引言

最近想在網上找些使用jdbc連接操作SQLserver的完成模糊查詢或者多條件Java代碼,可是網上寫的魚龍混雜,很少有關於Java使用jdbc操作SQLServer的模糊查詢和多條件查詢的資料,不過還好最終我解決了,考慮到一部分人還是在使用SQLServer,所以把這查詢的方法分享給大家。

準備工作

開發工具:eclipse
資料庫:SQLserver2014,其他版本也可以
記住導入sqljdbc4.jar包

創建資料庫db_employe,表sal

創建Sal實體類

public class Sal{

 private Integer id;

 private String empno;

 private String name;

 private String createDate;//發工資日期

 private double sal;

 private double salDecrease;//應扣費用

  setter和getter方法//省略不寫

 public String toString() {//toString方法

  return "Sal [id=" + id + ", empno=" + empno + ",

  name=" + name + ", createDate=" + createDate + ", sal=" + sal

    + ", salDecrease=" + salDecrease + "]";

 }

 }

創建資料庫連接

public class DbConn{

private String Driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";  

private String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=db_employee_sal";  

private String Username="sa",Password="123456";  

 protected Connection conn = null; 

 public DbConn() {  

  Connection conn = null;  

  try  {   

   Class.forName(Driver);  

   conn= DriverManager.getConnection(URL,Username,Password);   

  } 

  catch(java.lang.ClassNotFoundException e) {    

   System.err.println( e.getMessage()); 

  }

  catch(SQLException e) {    

   System.err.println( e.getMessage()); 

  }   

  this.conn=conn;  

 } 

  public void close(){      

   try{        

    if (conn!=null)  

     conn.close();      

    }      

    catch (SQLException e) {       

    System.out.println(e.getMessage());      

    }     

   }

  public static void main(String[] args) {

   System.out.println(new DbConn());//測試連接

   }

   }

查詢所有

查詢所有,Sqlserver的sql語句為select * from [dbo].[sal],Statement接口僅支持查詢。

public class SalDaoImpl extends DbConn{public List<Sal> selectAll(){  List<Sal> list =new ArrayList<Sal>();  if(conn!=null){   try{    String sql="select * from [dbo].[sal]";//SQLserver的寫法     String sql="select * from sal";//Mysql的寫法    Statement stmt = conn.createStatement();        ResultSet rs = stmt.executeQuery(sql);        while(rs.next()){     Sal r =new Sal();     r.setId(rs.getInt("id"));     r.setEmpno(rs.getString("empno"));     r.setName(rs.getString("name"));     r.setCreateDate(rs.getString("createDate"));     r.setSal(rs.getDouble("sal"));     r.setSalDecrease(rs.getDouble("salDecrease"));     list.add(r);    }    rs.close();   }catch(Exception e){    e.printStackTrace();   }  }  return list;  }}

調用後

單條件模糊查詢

單條件模糊查詢,就是根據一個欄位查詢,模糊匹配%變量%

public class SalDaoImpl extends DbConn{public List<Sal> findByMap(String empno) {  List<Sal> list =new ArrayList<Sal>();  if(conn!=null) {   try{    String sql="select * from [dbo].[sal] where empno  like '%"+empno+"'";    Statement stmt = conn.createStatement();        ResultSet rs = stmt.executeQuery(sql);        while(rs.next()){     Sal r =new Sal();     r.setId(rs.getInt("id"));     r.setEmpno(rs.getString("empno"));     r.setName(rs.getString("name"));     r.setCreateDate(rs.getString("createDate"));     r.setSal(rs.getDouble("sal"));     r.setSalDecrease(rs.getDouble("salDecrease"));     list.add(r);    }    rs.close();   }catch(Exception e){    e.printStackTrace();  }  }  return list;  }

public static void main(String args[]){

List<Sal> list=new SaoImpl().findByMap("10005");

}

}

多條件模糊查詢

根據多個參數來查詢,也就是多條件查詢

public class SalDaoImpl extends DbConn{public List<Sal> findByMap(String empno,String createDate) {  List<Sal> list =new ArrayList<Sal>();  if(conn!=null) {   try{    String sql="select * from [dbo].[sal] where empno  like '%"+empno+"'and createDate like'%"+createDate+"'";    Statement stmt = conn.createStatement();        ResultSet rs = stmt.executeQuery(sql);        while(rs.next()){     Sal r =new Sal();     r.setId(rs.getInt("id"));     r.setEmpno(rs.getString("empno"));     r.setName(rs.getString("name"));     r.setCreateDate(rs.getString("createDate"));     r.setSal(rs.getDouble("sal"));     r.setSalDecrease(rs.getDouble("salDecrease"));     list.add(r);    }    rs.close();   }catch(Exception e){    e.printStackTrace();   }  }  return list; } }

如果整合到Java web中就是這個樣子

相關焦點

  • 面試被問:JDBC底層是如何連接資料庫的?|sql|mysql|數據源|java|...
    背景  前兩天一個小夥伴面試的時候,被問JDBC底層是如何連接資料庫的?  他頓時一臉懵逼,因為大部分人只知道JDBC的幾個步驟,至於底層到底是怎麼連接資料庫的,還真不知道。  由於小夥伴是面試高級開發,問這種問題倒也不能說面試官過分,如果是初級或者中級,那問著問題就確實有些過分了。
  • 面試被問:JDBC底層是如何連接資料庫的?
    背景前兩天一個小夥伴面試的時候,被問JDBC底層是如何連接資料庫的?他頓時一臉懵逼,因為大部分人只知道JDBC的幾個步驟,至於底層到底是怎麼連接資料庫的,還真不知道。由於小夥伴是面試高級開發,問這種問題倒也不能說面試官過分,如果是初級或者中級,那問著問題就確實有些過分了。
  • java中資料庫:JDBC的使用
    JDBC是java中提供的一套資料庫編程API,它定義了一套用來訪問資料庫的標準Java類庫(位於java.sql和javax.sql
  • 什麼是JDBC?Java資料庫連接性簡介
    安裝或找到您要訪問的資料庫。2. 包括JDBC庫。3. 確保所需的JDBC驅動程序在類路徑中。4. 使用JDBC庫獲得與資料庫的連接。5. 使用該連接來發出SQL命令。6. 完成後關閉連接。我們將一起完成這些步驟。查找JDBC驅動程序要查找您要使用的資料庫的驅動程序,只需對資料庫和JDBC進行網絡搜索。例如,輸入「 mysql jdbc driver」將打開MySQL驅動程序。我挑戰您尋找沒有JDBC驅動程序的Java兼容資料庫!
  • 如何正確地創建和銷毀軟體應用系統中JDBC資料庫連接對象實例
    SQL(Structured Query Language,結構化查詢語言)語句相互結合且獨立於特定的物理資料庫系統的一種應用程式的編程接口。>其中的「jdbc」主要指出要使用JDBC編程接口,而「subprotocal」主要是定義驅動程序類型,「database locator」則是提供網絡資料庫的位置和埠號(包括主機名、埠和資料庫系統名等)。
  • 常用資料庫 JDBC URL格式(總結)
    Microsoft SQL ServerMicrosoft SQL Server JDBC Driver (一般用來連接 SQLServer 2000)驅動程序包名:msbase.jar mssqlserver.jar msutil.jar驅動程序類名:com.microsoft.jdbc.sqlserver.SQLServerDriverJDBC
  • sqlserver jdbc驅動
    皕傑報表創建sqlserver資料庫的時候,需要加載sqlserver jdbc驅動,有些時候你需要了解不同版本的sqlserver的 jdbc驅動是哪個? Microsoft SQL Server 2014 Microsoft SQL Server 2012 Microsoft SQL Server 2008 R2 Microsoft SQL Server 2008 Azure SQL 資料庫
  • Spring JDBC訪問關係型資料庫
    目標使用Spring JDBC訪問關係型資料庫,在Java代碼中執行資料庫增刪改查操作環境準備JDBCpackage main;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet
  • 「詳細」MySQL資料庫與JDBC編程
    多表連接查詢交叉連接自然連接using子句連接on子句連接左、右、全外連接子查詢集合運算6、回收資料庫資源示例:簡單SQL查詢package com.sxf.sql;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement
  • JDBC資料庫連接
    JDBC全稱為:Java Data Base Connectivity,java資料庫連接。是一種用於執行SQL語句的javaAPI,為多種關係資料庫提供統一訪問。簡單點來說:某個行業都會有一個標準,都會提供一個行業標準文檔,而JDBC就是我們這個行業其中一個資料庫連接標準。它是由一組java語言編寫的類和接口組成。
  • JAVA-新手入門:JAVA資料庫基本操作指南
    java 資料庫基本操作  1、java資料庫操作基本流程  2、幾個常用的重要技巧:  ·可滾動、更新的記錄集  ·批量更新  ·事務處理java資料庫操作基本流程:取得資料庫連接 - 執行sql語句 - 處理執行結果 - 釋放資料庫連接基礎視頻有挺多的你是看你的學習欲望!!!!
  • 如何使用 Spring 對資料庫進行 CURD?
    JdbcTemplate 繼承自抽象類JdbcAccessor,同時實現了JdbcOperations 接口,JdbcTemplate定義在了JdbcTemplate類中從而可以使用增刪改查來對資料庫進行操作。JdbcTemplate 的直接父類是JdbcAccessor,它提供了一些訪問資料庫時所需要使用的公共屬性,包括DataSource以及SQLExceptionTranslator 等。
  • JDBC這個問題,問的小夥伴一臉懵逼
    背景前兩天一個小夥伴面試的時候,被問JDBC底層是如何連接資料庫的?他頓時一臉懵逼,因為大部分人只知道JDBC的幾個步驟,至於底層到底是怎麼連接資料庫的,還真不知道。資料庫驅動加載MySql的驅動類 :Class.forName("com.mysql.jdbc.Driver"); 我們安裝好資料庫之後,我們的應用程式也是不能直接使用資料庫的,必須要通過相應的資料庫驅動程序,通過驅動程序去和資料庫打交道
  • 如何應用策略設計模式分離JDBC資料庫連接中的外部環境信息
    也就是策略設計模式能夠讓「算法」獨立於使用它的客戶程序而獨立地變化、並且「算法」自身的變化(比如「算法」的增減、修改等)不會影響到使用「算法」的客戶端程序。(2)策略設計模式的應用場景示例一比如,在構建軟體應用系統持久層資料庫連接Connection接口的對象實例時不希望出現下面的狀況:將實現各種不同物理資料庫系統的「連接」的功能代碼(在這裡代表策略模式中的「算法」)直接出現在使用資料庫連接對象實例的「程序」中(也就是策略模式中的「客戶
  • JDBC MySQL
    Java 資料庫連接,(Java Database Connectivity,簡稱JDBC)是Java語言中用來規範客戶端程序如何來訪問資料庫的應用程式接口,提供了諸如查詢和更新資料庫中數據的方法。
  • JDBC使用ResultSet查詢資料庫記錄
    JDBC使用ResultSet查詢資料庫記錄1.從數據中查詢數據需要用到集合ResultSet,而Statement的executeQuery()方法可以得到結果集。首先新建chaxunTest.java2.從資料庫查詢記錄需要如下幾個步驟3.其中關閉資料庫資源,需要我們重寫下release函數,新增一個ResultSet參數4.往步驟中添加代碼如下5.在main方法中執行代碼,查詢出一條記錄。6.如果我想查詢多條記錄呢?
  • JDBC 回顧
    ,提到數據訪問,學習 Java 的同學瞬間能就想起 JDBC 技術,JDBC 是 Java Database Connectivity 的全稱,是 Java 語言中用來規範客戶端程序如何來訪問資料庫的應用程式接口,提供了諸如查詢和更新資料庫中數據的一套標準的 API,這套標準不同的資料庫廠家之間共同準守,並提供各自的具體實現。
  • java連接mysql資料庫的五種方式
    Jdbc-----資料庫的五種連接方式第一種方式:將用戶名和密碼封裝在Properties類中首先,導入資料庫連接包這個是毋庸置疑的。創建一個jdbc驅動dirver。將資料庫(以MySQL為例)的url保存在所創建的字符串url中。
  • 使用PowerDesigner16.5 逆向資料庫生產表結構或導出word文檔
    使用PowerDesigner16.5 逆向資料庫生產表結構或導出word文檔一:PowerDesigner16.5及JDK1.8 32位下載地址二:安裝PowerDesigner說明:因為PD是32位的,使用JDBC連接資料庫時候也需要運行在
  • 第二章SQLServer 2012資料庫的基本操作
    一、SQLServer的系統資料庫1、maste資料庫:主要記錄了sqlserver 系統的所有的系統信息。2、tempdb資料庫:為臨時表和其他臨時存儲需求提供存儲空間。2、使用T-SQL語句創建資料庫除了採用SQLServer Management Studio 管理工具創建資料庫外,還可以使用集成的查詢分析器中使用T-SQL語言來創建資料庫。