2017-10-04 125 views
-1

当前我试图使用http-session查询数据库会话包含我在bean中需要的所有信息,我试图从数据库中通过用户的电子邮件地址,我没有成功,这是我的语法关闭?JSP使用javabean查询mysql数据库

try 
{ 
    Class.forName("com.mysql.jdbc.Driver"); 
    String url="jdbc:mysql://localhost:3306/carrentalsystem"; 
    String username="root"; 
    String password="javatest"; 
    String query="select * from userdetails where Email_Adress = 
    'user.getEmail_Adress'"; 
    Connection conn=DriverManager.getConnection(url, username, password); 
    Statement stmt=conn.createStatement(); 
    ResultSet rs=stmt.executeQuery(query); 
    while(rs.next()) 
    { 
%> 
<hr> 
<h2>Update your profile</h2> 
<div class="form"> 
    <form action="/updateprofile"> 
     <input type="text" name="Email_Address" placeholder= 
<%=rs.getString("Email_Address")%>> 
     <input type="text" name="First_Name" placeholder= 
<%=rs.getString("First_Name")%>> 
     <input type="text" name="Last_Name" placeholder= 
<%=rs.getString("Last_Name") %>> 
     <input class="button" type="submit"> 
    </form> 
</div> 
<% 

我试图查询数据库使用当前用户信息作为占位符,以便他们将显示更新。更新将由一个servlet处理。先谢谢你。

+0

什么是'user.getEmail_Adress''? – Ravi

+0

user.getEmail_Address指的是在登录时存储用户信息的会话bean。 –

回答

1

假设你从你的bean获得email id。然后,您应该使用Prepared Statement并构建您的查询如下。

另外,我想getEmail_Adress是方法,那么你应该拨打getEmail_Adress()来代替。

String query = "select * from userdetails where Email_Adress = ? "; 
PreparedStatement preparedStatement = dbConnection.prepareStatement(query); 
preparedStatement.setString(1, user.getEmail_Adress()); 
ResultSet rs = preparedStatement.executeQuery(query); 
0

看起来像我的豆是错的,我拼写了几件事情。这是我完成的代码。 try { Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/carrentalsystem"; String username="root"; String password="javatest"; String query="select * from userdetails where Email_Address ='"+ user.getEmail_address()+"'"; Connection conn=DriverManager.getConnection(url, username, password); Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery(query); while(rs.next()) { %>

+0

您应该至少感谢我,并且您还没有使用Prepared Statement。 – Ravi

+0

我非常感谢你,但我不必准备一份声明,我只是试图查询并从数据库中获取信息。然而,任何和所有的建议总是欢迎。 –

+0

不,即使你选择的数据较少,你必须**使用'PreparedStatement' – Ravi