我想在没有用户名或密码的情况下在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 :(得分:2)
您可以执行此操作的唯一方法是在服务器中使用 JNDI绑定数据源。一般来说,它的工作方式如下:
Here is an example如何在Tomcat中执行此操作。
答案 1 :(得分:1)
我建议你在Servlet中移动数据库操作代码,而不是在JSP中移动。
如果你真的想在JSP中做,那么试着避免使用Scriplet。
使用JSP Standard Tag Library和JSP Expression Language代替使用更易于管理且不易出错的Scriplet
。使用提供JSTL SQL标记的SQL Tag Library来访问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>
答案 2 :(得分:0)
首先让我理解你的问题。您从参数中获取2个值并将其保存在数据库中。现在你试图保存没有列名的值?我是对的吗? 如果是这种情况,那么您只需使用不带列名的INSERT命令。
例如INSERT INTO table_name VALUES(value1,value2,value3,...);
否则,如果你想在没有提供认证用户名和密码的情况下在数据库中保存值,我希望不可能。
答案 3 :(得分:0)
从SQL Server的角度来看,如果您不希望在应用程序连接中声明用户名和密码,则需要使用集成安全性,该安全性会传递Web服务器中配置的登录用户或用户上下文。
我不是一名java开发人员,但已经针对您要执行的操作找到了以下内容,希望对您有所帮助。