2014-07-17 86 views
-1

我想在沒有用戶名和密碼的情況下將數據保存在sql server數據庫中。代碼示例如下。任何人都可以解釋不將數據保存到數據庫的原因嗎? 提前致謝。請幫我如何保存到沒有用戶名和密碼的sql server數據庫

<% 
     String username = request.getParameter("username"); 
     String password = request.getParameter("password"); 

     try 
     { 
      Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
      String url = "jdbc:sqlserver://localhost:1433;databaseName=azan"; 
      Connection con = null; 
      con = DriverManager.getConnection(url); 
      Statement st = con.createStatement(); 
      String sql = "INSERT INTO huzaifa (username,password) VALUES ('"+username+"','"+password+"')"; 
      st.executeUpdate(sql); 
      con.close(); 


     }catch (Exception ex) 
     { 
     System.out.print(ex); 
     }// 

    %> 
+0

什麼是例外? –

+0

'我想在沒有用戶名或密碼的情況下將數據保存在sql server數據庫中 - 爲什麼?一般來說,數據庫系統**由於某種原因需要**認證。請參閱http:// technet。microsoft.com/en-us/library/ms378428(v=sql.110).aspx各種方法來驗證對SQL Server –

+0

看起來像整個代碼是在JSP .. !!順便說一句,如何進入沒有鑰匙的房間 – Foolish

回答

0

從SQL Server的角度來看,如果你不希望在您的應用程序連接中聲明用戶名和密碼,您需要使用集成安全性,該安全性可以傳遞在Web服務器中配置的登錄用戶或用戶上下文。

我不是一個java開發人員,但找到了以下具體到你正在做的事情,並希望有所幫助。

http://social.msdn.microsoft.com/Forums/sqlserver/en-US/3d8da2ca-4efb-41d6-bb08-b7193cf49753/jdbc-integrated-security-problem?forum=sqldataaccess

+0

感謝您的積極響應 –

1

我建議你在一個Servlet中移動數據庫操作代碼,而不是在JSP中進行。

如果你真的想在JSP中做,那麼儘量避免使用Scriplet。

使用JSP Standard Tag LibraryJSP Expression Language而不是使用Scriplet是更易於管理和不容易出錯。使用SQL Tag Library可提供JSTL SQL標記以訪問JSP中的數據庫。

示例代碼:

<sql:setDataSource var="dataSource" 
    driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
    url="jdbc:sqlserver://localhost:1433;databaseName=azan" user="" 
    password="" /> 

<sql:update dataSource="${dataSource}" 
    sql="INSERT INTO huzaifa (username,password) VALUES (values(?,?)"> 
    <sql:param value="${param.username}" /> 
    <sql:param value="${param.password}" /> 
</sql:update> 
0

首先讓我明白你的問題。您從參數中獲取2個值並將其保存在數據庫中。現在,您正試圖保存沒有列名的值,我是對嗎? 如果是這種情況,那麼您只需使用不帶列名的INSERT命令。

例如INSERT INTO table_name VALUES(value1,value2,value3,...);

否則,如果你想保存在數據庫中的值不給認證用戶名和密碼,它不是有可能,我希望..

+0

列名稱是「名稱」和「密碼」 –

2

你可以做到這一點的唯一方法是使用JNDI服務器綁定數據源。一般來說,它的工作方式如下:

  1. 配置服務器中的數據源。用戶名和密碼是配置的一部分。數據源綁定到JNDI樹
  2. 數據源可以是查找到JNDI樹中,並從那裏獲得連接。
  3. 一旦你的連接,你可以解僱查詢。

Here is an example如何在Tomcat中做到這一點。

相關問題