public Connection getNewConnection(){
Connection con=null;
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
con=DriverManager.getConnection("jdbc:mysql://localhost(或者你連的主機IP):3306/資料庫名稱","用戶名","密碼");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
這是一個連接mysql的例子
2. java web 怎麼連接sql資料庫
JAVA Web開發中與資料庫的連接操作,配置:
1、新建資料庫。
新建登錄角色,在新建資料庫的時候把資料庫的所有權交給你新建的角色。用用戶和密碼控制資料庫。保證資料庫的安全。
2、編寫context.xml文件 Xml文件的目的是封裝用戶和密碼,也是封裝的一種,方便操作。
以下為context.xml文件樣例:
<?xml version="1.0" encoding="utf-8"?>
<Context reloadable = "true">
<Resource
name="jdbc/sampleHS"
type="javax.sql.DataSource"
maxActive="14"
maxIdle="10"
username="hstaoshu"
maxWait="5000"
driverClassName="org.postgresql.Driver"
password="hstaoshu"
url="jdbc:postgresql://localhost:5432/hstaoshu"/>
</Context>
詳細說明:
name="jdbc/sampleHS"裡面的ssampHS是可改名稱,建議根據需要自己命名;
username="hstaoshu"
password="hstaoshu"此兩項為你新建的資料庫登錄角色用戶名和密碼信息,只有匹配 了才能訪問。這里簡單為了表示,把用戶名和密碼弄成了跟資料庫名字一樣。其實這是很不安全的。
url="jdbc:postgresql://localhost:5432/hstaoshu"/>
這是連接資料庫的URl,就像訪問網站的地址一樣。沒有這個是無法訪問資料庫的。localhost:5432表示本地埠。一般不需要改動,如果你在配置資料庫的時候改動過埠,那麼你需要把它改回來。/hstaoshu是你的資料庫名稱。
其他選項請勿擅自改動。
3、編寫DAO類。
DAO類的作用是與數據連接後,對資料庫的一些操作的封裝。封裝的作用。為了更好的數據管理。
DAO是真正如何使用資料庫的關鍵步驟,前兩步只是部署和配置。
private static InitialContext context = null;
private DataSource dataSource = null;
//一般把跟資料庫的連接放在DAO類的構造函數里,只要被實例化,就能和資料庫連接。
public BookDAO() {
try {
if (context == null) {
context = new InitialContext();
}
dataSource = (DataSource) context.lookup("java:comp/env/jdbc/sampleHS");
// 連接資料庫,前面在context.xml文件配置里的URl
} catch (NamingException e2) {
e2.printStackTrace();
}
}
public Connection getConnection() {
Connection conn = null;
try {
conn = dataSource.getConnection();// 獲得數據源的連接對象
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
做完上面的三步操作,開發環境已經完全和資料庫連接OK,可以開始資料庫的操作了。一般來說,對資料庫的操作語句都是提前封裝好的。這樣修改起來會對下面的代碼影響降到最小。
如下:
// ------------------資料庫操作語句代碼封裝------------------
/* 查看所有圖書 */
private static final String SELECT_ALL_SQL = "SELECT * FROM book";
那麼在使用的時候只要直接調用:
pstmt = conn.prepareStatement(SELECT_ALL_SQL);
3. 【web安全】怎麼進行sql注入
1.POST注入,通用防注入一般限制get,但是有時候不限制post或者限制的很少,這時候你就可以試下post注入,比如登錄框、搜索框、投票框這類的。另外,在asp中post已被灶納發揚光大,程序員喜歡用receive來接受數據,這就造成了很多時候get傳遞的參數通過post/cookie也能傳遞,這時如果恰好防注入程序只限制了get,因此post注入不解釋
2.cookie注入,原理同post注入,繞過相當多通用防注入
3.二次注入,第一次注入的數據可能不會有效,但是如果將來能在某個頁面裡面被程序處理呢?注入來了……
4.csrf,適合後台地址已知並且存在已知0day,可以試試用csrf劫持管理員來進行操作(這招其實不屬於sql注入了)
5.打碎關鍵字,比如過濾select,我可以用sel/**/ect來繞過,這招多見於mysql
6.有時候也可以sELeCT這樣大小寫混淆繞過
7.用chr對sql語句編碼進行繞過
8.如果等於號不好使,可以試試大於號或者小於號,如果and不好使隱皮沒可以試試or,這樣等價替換
9.多來幾個關鍵字確定是什麼防注入程序,直接猜測源碼或者根據報錯關鍵字握源(如"非法操作,ip地址已被記錄")把源碼搞下來研究
10.記錄注入者ip和語句並寫入文件或資料庫,然而資料庫恰好是asp的,插馬秒殺
4. 用LINQtoSQL創建Web應用系統(一)
在新的 Net Framework 平台上 Microsoft發布了LINQ(C# VB Net ) 集成語言查詢(Language Integrated Query) 也就是通過編程語言來查詢數據
*資料庫 (LINQ to SQL)
*DataSet 數據集(LINQ to Dataset)
*XML文檔 (LINQ to XML)
*實體對象 (LINK to Entities)
本文將演示如何在ASP NET 平台上 使用LINQ to SQL構建多層的Web應用程序 在當前的編程領域中 創建N Tier應用程序成為一般的要求 且 NET Framework 提供了靈活的支持 一般而言 N Tier應用程序畝鬧好有如下幾個層 表示層 業務邏輯層 數據訪問層 資料庫層 每一層均完成特定的任務 本篇文章中介紹的架構和經典的N Tier相似 不過資料庫層替換新的DataLinq 層 使用LINQ to SQL 完成數據操作
圖 基於LINQ to SQL的彎告N Tier架構
架構思考
如果你有大型ASP NET項目的經歷 你可能會注意到更多的時間花在寫組件代碼 而不是Web頁面代碼 有時 組件的設計和管理成為一個費時的過程 你可能正迅鉛遇到架構方面的問題 尋找最好的方式來設計Web應用程序
我寫這篇文章的想法是介紹一個好的設計模式 並不是得到一個結論或者聲明這是一個最好的N Tier應用程序的設計模式 因為對於架構設計 每一個開發人員總是有自己的觀點 所以任何合適的架構闡述都是有爭議的 然而 如圖 所示 分離不同的代碼到不同的層總是一個好的實踐 按這樣組織代碼 可以更方便地維護和擴展應用程序
在圖 中 你可以看到業務組件分割到不同的層 組織代碼最好的方法是為每一個業務組件創建不同的類庫(Class Library) Visual Studio允許在同一個Solution中創建多個項目 因此 我們可以在同一個Solution中加入ASP NET 應用程序和類庫Class Library項目 當你在編譯Solution時 每一個項目都會生成在bin目錄下生成一個assembly程序集文件 方法 我們可以手動復制 DLL文件到應用程序的bin目錄 方法 增加項目引用 當你編譯Solution時 第二種方法可以自動更新應用程序bin目錄的程序集文件 通過這種方式組織代碼 可以更容易修改/更新項目的特定代碼 也容易從不同的Server上遷移代碼 我不想深入探討架構 這里我通過截屏來解釋如何實現
假定你已經具備經典 層架構應用程序的設計經驗 我告訴你如何建立層與層之間的引用關系 接著你可以自己建立項目引用 圖 上的箭頭符號說明了不同層之間的交互 說明如下
( ) 數據訪問層引用Data Linq 層( 開源小組注 原文說還需要引用業務外觀(Business Facade)層 原文有誤)
( ) 業務外觀(Business Facade)層引用Data Linq 層和數據訪問層 因為業務外觀層使用Data Linq層的業務實體來創建表實體(後面進行詳細討論) 同時調用數據訪問層的方法
lishixin/Article/program/net/201311/12345
5. 如何對網站進行SQL注入
首先你要了解什麼是SQL注入漏洞,SQL注入漏洞就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL命令,比如很多影視網站泄露VIP會員密碼大多就是通過WEB表單遞交查詢字元暴出的,這類表單特別容易受到SQL注入式攻擊。
簡單來說,網站一般都是由web應用程序,資料庫,伺服器等組成的,網站的所有用戶數據,密碼表單等等都是保存在資料庫當中的,資料庫的內容按到常理來說是只能在伺服器內部進行查詢,當然,但是,開發人員對客戶端用戶向客戶端提交的參數沒有進行過濾,那麼,黑客就可以從客戶端【瀏覽器,等等,詳細可以學習http協議】向伺服器提交查詢資料庫的SQL語句,如果提交的語句成功的被伺服器給接收到並且執行么,那麼黑客豈不是想怎麼查詢資料庫裡面的內容就怎麼查詢,不是么?那些管理賬號密碼,會員數據不是分分鍾就到手了?SQL注入漏洞危害是非常大的。
當然,這種漏洞是根據提交參數沒過濾而產生的,那麼除了瀏覽器的get提交參數,http協議中還有,post提交,cookie提交,等等。注入漏洞不是網上那些所謂的黑闊,用什麼啊D,明小子之類的亂檢測一氣而找出來的,如果樓主想研究這個漏洞的產生,原理,利用和防禦,是需要進行代碼審計,SQL注入語句基礎,等等。
現在一般常用的工具:SQLmap【這是一款神器,現在是公認最強大的開源注入工具】
建議樓主去看幾本書:《SQL注入天書》《SQL注入漏洞的產生與防禦》
這個漏洞的利用不是幾句話就能說清楚的,詳細的可以追問,純手工打字,望樓主採納。
6. 怎麼給SQL SERVER做一個系統的WEB界面
根據點擊不同的按鈕執行相應的操作就行了啊。
例如:點擊查詢按鈕就操作資料庫執行一條查詢命令(也就是查詢語句),然後將查詢到的結果顯示在頁面就行了。如果這個項目比較大的話,建議用分層做。
其實web項目與窗體應用程序項目差別不大,但是連接sql server資料庫連接語句不同,也沒有控制項可以隨便拖,其它的增刪改查操作都差不多