Java動態拼接SQL--01
2、SQL語句的拼接
- privatevoid button1_Click(object sender, EventArgs e)
- {
- //先寫一個基礎的查詢語句,即無論是否有條件,都執行這段程式碼。
- string sql = "select * from T_User";
- //定義一個list<string>型別的集合,用來放拼接的SQL語句
-
List<string> list = new List<string>();
- //根據使用者輸入的情況來拼接後面的SQL語句。
- if (!string .IsNullOrEmpty(txtID.Text.Trim()))
- {
- string sqla = "Chr_UserID='" + txtID.Text.Trim() +"'";
- list.Add(sqla);
- }
-
if (!string .IsNullOrEmpty(txtName.Text .Trim ()))
- {
- string sqlb = "Chr_Name='" + txtName.Text.Trim() + "'";
- list.Add(sqlb);
- }
- if (!string.IsNullOrEmpty(txtClass.Text.Trim()))
- {
- string sqlb = "Chr_Class='" + txtClass.Text.Trim() + "'";
-
list.Add(sqlb);
- }
- //判斷如果list中有值,即使用者輸入了某些條件,就開始進行SQL語句的拼接。
- if (list .Count >0)
- {
- //這個是用了string.join方法,用and作為連線符傳來起list中的各個SQL語句
- sql += " where " + string.Join(" and ", list.ToArray());
- }
- string constr = "server=.;database=Charge;uid=sa;pwd=1;";
- SqlConnection con = new SqlConnection(constr);
- con.Open();
- SqlCommand sqlcmd = new SqlCommand(sql,con);
- SqlDataReader dr = sqlcmd.ExecuteReader();
- DataTable dt = new DataTable();
- //之後用datatable來接收讀取到的資料。
- dt.Load(dr);
- //賦值給控制元件。
- dataGridView1.DataSource = dt;
- //最後記得關閉
- con.Close();
- }
關於java多條件查詢SQL語句拼接的小技巧
最近在實驗室做專案的時候遇到了java的多條件查詢,翻看了論壇上其他大牛們的部落格,都沒有給出一個詳細的解答。自我探索了一會後給出了下面這樣的使用技巧,還算方便,僅供各位參考。
前端的頁面顯示:
查詢所給的表單程式碼
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
在後臺servlet中獲取表單的name
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
好了,上述的操作完成以後,就可以寫DAO層中查詢方法了,也是最重要的部分
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
隨筆:
————————————————————————————
拼接sql語句是多條件查詢的重要部分,在上述所給的技巧中,使用一切查詢情況。其中判斷HashMap中鍵值對是否為空,利用count值來判斷查詢條件情況是本文的重點。
===========================================================================
使用Java註解實現拼接sql語句的功能
原創 2016年05月14日 16:18:42
相關推薦
Java動態拼接SQL--01
2、SQL語句的拼接 privatevoid button1_Click(object sender, EventArgs e) { //先寫一個基礎的查詢語句,即無論是否有條件,都執行
spring-data-jpa動態拼接sql語句實現動態的多表條件查詢
** spring-data-jpa 動態拼接sql語句 ** spring-data-jpa對於簡單的資料操作確實使用起來比較方便,但是對於一些比較複雜的動態的多表條件查詢就不是那麼簡單了,對於需要些sql語句並且需要動態的新增條件的時候就得使用jpa的EntityManager來
解析xml檔案動態拼接sql語句
現在有很多開源的持久層框架,比如Mybatis、BeetlSQL、Hibernate、DbUtils。當我們需要自己手寫sql的時候。使用Mybatis、BeetlSQL(這個個人更喜歡,因為結合了hibernate和mybatis各自的優點)框架相對來說更好,因為它將sql 放到配置檔案裡面。
使用mybatis提供的各種標籤方法實現動態拼接Sql。這裡演示where標籤和if標籤實現使用姓名的模糊查詢和性別查詢使用者列表,當用戶沒有選擇姓名以及性別時查詢出所有的記錄。
1.需求: 使用姓名的模糊查詢和性別查詢使用者列表,當用戶沒有選擇姓名以及性別時查詢出所有的記錄。 2.在UserMapper介面中定義方法: public List<User> findUserByNameAndSex(User user); 3.在UserMapper.xml中
使用mybatis提供的各種標籤方法實現動態拼接Sql。使用sql片段提取重複的標籤內容
Sql中可將重複的sql提取出來,使用時用include引用即可,最終達到sql重用的目的,如下: <select id="findUserByNameAndSex" parameterType="com.huida.po.User" resultType="com.huida.po.Us
mybatis if test 相等的情況如何動態拼接sql
今天程式需要根據前臺的傳過來的狀態判斷在資料庫裡是取 where a>b 還是 a<b 還是 a=0 的情況 搞了一下午最後試了下 在if 裡面拼接 #{status}=#{status} 一切ok了 詳細程式碼如下
mysql 儲存過程動態拼接sql並執行賦值
CREATE DEFINER = CURRENT_USER PROCEDURE `NewProc`(in _xnb varchar(50)) BEGIN ## 定義變數 DECLARE _num FLOAT(14,6) DEFAULT 0; ## @表示全域性變數 相當於php
mysql 存儲過程動態拼接sql並執行賦值
pro roc ddt reat create 不用 lec efi 語句 CREATE DEFINER = CURRENT_USER PROCEDURE `NewProc`(in _xnb varchar(50)) BEGIN ## 定義變量 DECLA
根據條件查詢動態拼接sql語句
function append_where(&$sql, $has_where) { $sql .= $has_where ? ' AND ' : ' WHERE '; return $sql; } function demo($name = ''
Mybatis動態拼接SQL
MyBatis中用於實現動態SQL的元素主要有: ifchoose(when,otherwise)trimwheresetforeachif就是簡單的條件判斷,利用if語句我們可以實現某些簡單的條件選擇。先來看如下一個例子: XML程式碼事例 <sele
Java動態生成SQL語句通過JDBC達成資料庫操作
在java中使用jdbc進行資料庫操作的時候 我們或許需要從多個表中進行查詢和插入操作 特別是如果多個表還有相互的依賴關係的話,插入操作就顯得非常難受 因為或許每一個動作,都需要重寫一個完全不同的sql語句 這樣的話程式碼量確實十分的大 而且程式碼會顯
儲存過程中動態拼接sql,拼接單引號問題
create or replace procedure mergerOrder( v_ids in varchar2, v_productCode in varchar2, v_productCateCode in varchar2)
Java下拼接執行動態SQL語句
在實際業務中經常需要拼接動態SQL來完成複雜資料計算,網上各類技術論壇都有討論,比如下面這些問題: 拼接動態SQL的一般做法有: 1、使用動態語句 很多資料庫都提供了處理動態SQL的語法,如Oracle的EXECUTE IMMEDIATE語
Java中如何拼接sql或者其他含有變量語句
java中如何拼接sql或者其他含有變量語句個人淺談Java拼接sql語句原則。本原則是個人感悟(不保證完全正確)第一條原則,首先將一條完整的字符串寫好。(例如是"select * from users where id=(id+1)")凡是變量都需要在其前面加上+,且前面是要加上",如果後面不是",則後面必
java 中的 sql 單引號雙引號拼接變量
urn logs number pla page select ava ringbuf flag String sqlString="select * from tb_wf_main where trim(WF_NAME) = ‘ " + wfName.trim() +
Java中如何拼接sql或者其他含有變數語句
本原則是個人感悟(不保證完全正確) 第一條原則,首先將一條完整的字串寫好。(例如是"select * from users where id=(id+1)") 凡是變數都需要在其前面加上+,且前面是要加上",如果後面不是",則後面必須也要加上+"。 第二條原則如果遇上括號(id+1),那加號必定死以括號
linq to sql 動態拼接條件
遇到了一個比較特殊的查詢(表沒有設計好,也就是加一個欄位能解決了),才發現了linq to sql 還可以這樣的去動態的拼接where條件,不然也不會這樣寫,這裡記錄一下,程式碼如下: from
java反射拼接方法名動態執行方法
近期由於負責專案的一個模組,該模組下有很多分類,每個分類都有一個編碼code,這個值是作為一個引數攜帶過來的.但是每個code確實對應一個方法的. code的值有很多個,自己又不想做ifelse或者switch判斷於是就狂搜資料,主要讓我發現利用java的反射機制可以完
java連線資料庫和執行靜態和動態的sql語句
►JDBC (Java DatabaseConnectivity) 是用於執行SQL 語句的Java 應用程式介面,由一組用Java 語言編寫的類和介面組成。 ►JDBC 是一種規範,各資料庫廠商為J
mybatis中怎麼使用like形成動態模糊查詢,錯誤使用CONCAT拼接sql的看過來
這個問題曾經困擾了我很長時間,因為我需要動態引數的模糊查詢,上網找了很多,都說用CONCAT但我用ORACLE的時候發現並不能滿足我的需求。 今天就說一下,我是怎麼解決這個問題的。 其實我當時為了拼sql一經頭昏腦脹了,但是你想想看,為什麼一定要在sql中拼湊sql呢?