JSP+JavaBean连接数据库时无法读取表中内容

来源:互联网 发布:js数组find方法举例 编辑:程序博客网 时间:2024/04/30 18:46

我的问题是由一个小小的空格引起的。

在用JavaBean连接数据库时,遇到了一个问题,运行的时候只jsp页面只能显示出表头,无法读取数据库中表格数据。我对着教材检查了无数遍,硬是没发现哪里不对,今天终于发现问题所在了。

我的JavaBean:/*QueryBean.java*/

package tom.jiafei;
import java.sql.*;
public class QueryBean {
String databaseName="";
String tableName="";
String user="";
String secret="";
StringBuffer queryResult;

public QueryBean(){
queryResult=new StringBuffer();
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch(Exception e){}
}


public String getDatabaseName() {
return databaseName;
}


public void setDatabaseName(String databaseName) {
this.databaseName = databaseName.trim();
queryResult=new StringBuffer();
}


public String getTableName() {
return tableName;
}


public void setTableName(String tableName) {
this.tableName = tableName.trim();
queryResult=new StringBuffer();
}


public String getUser() {
return user;
}


public void setUser(String user) {
this.user = user.trim();
queryResult=new StringBuffer();
}



public String getSecret() {
return secret;
}


public void setSecret(String secret) {
this.secret = secret.trim();
queryResult=new StringBuffer();
}

public StringBuffer getQueryResult() {
Connection con;
Statement sql;
ResultSet rs;
try {
queryResult.append("<table border=1>");
String uri="jdbc:sqlserver://127.0.0.1:1433;DatabaseName="+databaseName;
String id=user;
String password=secret;
con=DriverManager.getConnection(uri,id,password);

DatabaseMetaData metadata=con.getMetaData();
ResultSet rs1=metadata.getColumns(null, null, tableName, null);//将表的字段信息存储在一个ResultSet对象中;
int z=0;
queryResult.append("<tr>");
while(rs1.next()){
z++;
String clumnName=rs1.getString(4);
queryResult.append("<td>"+clumnName+"</td>");
}

queryResult.append("</tr>");


sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM"+tableName);//问题就出在这里,注意FROM后面一定要留个空格,不然SQL语句就成了:SELECT * FROMtableName 从而无法运行

while(rs.next()){
queryResult.append("<tr>");
for(int k=1;k<=z;k++){
queryResult.append("<td>"+rs.getString(k)+"</td>");
}
queryResult.append("</tr>");
}
queryResult.append("</table>");
con.close();

}
catch(SQLException e){
queryResult.append("请输入正确的用户名和密码");
}
return queryResult;
}


}


我的jsp页面:/*inquire.jsp*/

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="tom.jiafei.QueryBean"  %>
<jsp:useBean id="base" class="tom.jiafei.QueryBean" scope="session"/>
<jsp:setProperty name="base" property="*"/>
<html>
  <body bgcolor=sdcv>
    <FORM action="" method="post">
    输入数据库名:<input type=text name="databaseName" size=8>
    输入表的名字:<input type=text name="tableName" size=8>
    <br>输入用户名:<input type=text name="user" size=6>
    输入密码:<input type="password" name="secret" size=6>
    <br><input type="submit" name="g" value="提交">
    </FORM>
    在<jsp:getProperty name="base" property="tableName"/>表中查询到记录:
    <br><jsp:getProperty name="base" property="queryResult"/>
  </body>
</html>

修改之前的运行结果如图:

0 0
原创粉丝点击