『壹』 java與sql連接
1、創建一個 PreparedStatement 對象來將參數化的 SQL 語句發送到資料庫。
2、 patat.setInt(1,id) 將第一個參數id設置為java給定int 值。
3、在PreparedStatement 對象中執行 SQL 查詢,並返回該查詢生成的 ResultSet 對象。
4、ResultSet 游標最初位於第一行之前;第一次調用 next 方法使第一行成為當前行;第二次調用使第二行成為當前行,依此類推
5、以 Java 編程語言中 String 的形式獲取此 ResultSet 對象的當前行中指定列的值
『貳』 java與sql server 安裝問題
select a.月, sum(b.值) as 小計
from tablename as a, tablename as b
where b.月 >= a.月 - 2 and b.月 <= a.月
group by a.月
『叄』 用java編寫防止SQL注入!求java高手指點!問題解決後,一定提高懸賞!
SQL注入無非就是把對單引號和雙"-"進行轉換。
最好不要拼裝SQL語句,以使用參數化的sql或者直接使用存儲過程進行數據查詢存取。
『肆』 請問java中用string拼SQL如何轉義單引號
用replaceAll替換v1,v2即可。具體寫法如下
v1=v1.replaceAll("'","''");
v2=v2.replaceAll("'","''");
就是把一個單引號替換成兩個單引號。
『伍』 比如,java格式是studentId在拼裝sql語句中怎麼才能變成student_id
String sql = "select student" + "_id from students " ;
樓上說得對,用字元串拼接就好了。
『陸』 mybatis select怎麼拼接sql java
可以使用<sql>元素將你要拼接的sql語句寫好,再用<include>元素把sql語句拼接進來。另外<where>、<set>、<for>、<if>等都可以動態拼接sql語句。
『柒』 java導出報表70多個欄位sql比較復雜,有沒有什麼好的實現工具,能保證報錶速度(排除sql外)
您好,用SSAS吧,都有.
我們公司系統是這樣實現的.
1.用一個函數得到一個明細表,該明細表包括用戶感興趣的各個維度,並且該函數的參數是用戶感興趣的查詢條件.
2.按用戶要求先將用戶需要的維度列出來,比如說按時間斷,按商品類型,按門店,地區等等.然後給每一種方式在第1步的基礎上動態生成SQL語句.至於交叉,就要先從第一步中獲取交叉值列表,比如說按地區交叉,則先從第一步的表中將所有的地區查出,再用case when生成動態的行列轉換語句.
3.一般來說,用前兩步就已經能達到用戶的要求,我們公司還有一個數據分析的圖形化工具,也是在第一步的基礎上,由用戶自定義維度和深度的,實現方法就不知道了,應該是mdx來的
簡單舉個例子,比如說要對公司銷售數據進行統計,維度包括 時間,地區,商品品牌,查詢銷量,銷售金額
那可以用一個函數 fn_getSales(beginday,endday,area,matgroup),四個參數由用戶在界面上選擇或輸入,函數從銷售明細表中返回一個表,包含 時間(day),區域(area),商品品牌(brand),銷量(digit),銷售金額(totalmoney)的明細數據表.
統計的話,比如說要按商品品牌分組,那隻要生成動態語句:
select matgroup,sum(digit),sum(totalmoney) from fn_getSales(beginday,endday,area,matgroup) group by matgroup即可.
如果要按地區進行交叉,按商品品牌分組的統計數據,則先取得地區列表
select area from fn_getSales(beginday,endday,area,matgroup) group by area
將得到的area記錄下來,到一個數組,或到一個臨時表都行
然後拼裝行列轉換的SQL語句
select matgroup,
sum(case 地區1 then digit else 0 end) as 地區1銷量,
sum(case 地區1 then totalmoney else 0 end) as 地區1銷售金額,
sum(case 地區2 then digit else 0 end) as 地區2銷量,
sum(case 地區2 then totalmoney else 0 end) as 地區2銷售金額,
....循環將所有的地區這樣列出
from fn_getSales(beginday,endday,area,matgroup)
這樣就得到了每一種商品在每個地區的銷量和銷售金額分布情況
如果這種東西寫多了你就會發現完全可以將拼裝方法固定下來,都是有規律的,你可以寫一個專門用於拼裝SQL的類,這時候就會很容易了。
『捌』 java中SQL拼接的問題
//既然你說有可能不拼接,直接不拼接是無法實現的可以換一種思路,就是全部查詢,比如,你不想加proviceCd=」「的判斷,可以讓他全部查詢出來,因為不加條件就是全盤檢查,使用模糊查詢,讓條件 like 『%』 ,」%「代表任意長度任意字元,所以都符合條件,不會排除任何一個其他項目。希望這個思路能幫到你,如果不行我也沒辦法了。
String sql = select * from intern t WHERE name like '?' and institute like '? 'and gender like '?' and majorCd like '?' and provinceCd like '?';
PreparedStatement pstmt = null;
int status = -1;
try {
pstmt = conn.prepareStatement(sql);
if(name==null)
{
pstmt.setString(1, %);
}
else
{
pstmt.setString(1, name);
}
/*
其他條件判斷,
*/
status = pstmt.executeUpdate();
if (status > 0) {
System.out.println("成功");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
DBResources.resource(conn, pstmt);
}
『玖』 java與sql怎麼實現對接
設置 Classpath JDBC 驅動程序並未包含在 Java SDK 中。因此,如果要使用該驅動程序,必須將 classpath 設置為包含 sqljdbc.jar 文件。如果 classpath 缺少 sqljdbc.jar 項,應用程序將引發「找不到類」的常見異常。 sqljdbc.jar 文件的安裝位置如下: <安裝目錄>\sqljdbc_<版本>\<語言>\sqljdbc.jar 下面是用於 Windows 應用程序的 CLASSPATH 語句實例: CLASSPATH =.;%ProgramFiles%\sqljdbc_1.2\chs\sqljdbc.jar 設置SQL Server伺服器 我使用的是SQL Server 2005標准版SP2,這些都默認即可,一般不用配置。如果需要配置埠請看下面。 1、「開始」→「程序」→「Microsoft SQL Server 2005」→「配置工具」→「SQL Server 配置管理器」→「SQL Server 2005 網路配置」→「MSSQLSERVER 的協議」 2、如果「TCP/IP」沒有啟用,右鍵單擊選擇「啟動」。 3、雙擊「TCP/IP」進入屬性設置,在「IP 地址」里,可以配置「IPAll」中的「TCP 埠」,默認為1433。 4、重新啟動SQL Server或者重啟計算機。 建議重啟電腦。 在Eclipse中測試 1、打開Eclipse,「文件」→「新建」→「項目」→「Java 項目」,項目名為Test 2、在Eclipse中,選擇「窗口」→「首選項...」→「Java」→「已安裝的 JRE」,選擇已安裝的 JRE,點擊「編輯」→「添加外部」,選擇%ProgramFiles%\sqljdbc_1.1\chs\sqljdbc.jar 3、在Test項目的「JRE 系統庫」中可以看見sqljdbc.jar,如果沒有可以右鍵單擊項目Test→「構建路徑」→「配置構建路徑...」→「Java 構建路徑」→「庫」→「添加外部 JAR...」,選擇%ProgramFiles%\sqljdbc_1.1\chs\sqljdbc.jar 4、編寫Java代碼,如下: import java.sql.*; public class Test { public static void main(String[] srg) { String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //載入JDBC驅動 String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=test"; //連接伺服器和資料庫test String userName = "sa"; //默認用戶名 String userPwd = "123456"; //安裝sql server 2005時的密碼 Connection dbConn; try { Class.forName(driverName); dbConn = DriverManager.getConnection(dbURL, userName, userPwd); System.out.println("Connection Successful!"); //如果連接成功 控制台輸出Connection Successful! } catch (Exception e) { e.printStackTrace(); } } } 來源:考試大-計算機等級考試