读书人

100分求JSP查询数据库并显示结果的程

发布时间: 2012-02-05 12:07:14 作者: rapoo

100分,求JSP查询数据库并显示结果的程序
1、页面有个能输入查询条件的输入框
2、按下search button后,去数据库查询
3、将结果以表格形式显示

希望各位高手给个可运行的程序,程序运行成功立即结贴给分。

[解决办法]
我写的是网上图书销售:
你看看是不是符合你的要求:structs写的:用的是SQL2000


<%@ page contentType= "text/html;charset=gbk "%>

<%@ taglib uri= "struts/html " prefix= "html " %>
<%@ taglib uri= "struts/bean " prefix= "bean " %>
<%@ taglib uri= "struts/logic " prefix= "logic " %>
<%@ page import= "java.util.*,com.ts.* "%>

<title> <bean:message key= "title "/> </title>

<table align=center >
<tr>
<td colspan=2 align= "center "> <h2> 欢迎加入EO购书站 </h2> </td>
</tr>

<tr>
<%int j=1;%>
<logic:iterate name= "pagelist " type= "com.ts.BookVO " scope= "request " id= "book ">
<%
++j;
if(j%2==0)
{

%>
</tr>
<tr>
<% }%>

<td>
<table width= "320 " align=center>
<tr >
<td rowspan=7 width= "120 ">
<a href=bookBig.do?id= <bean:write name= "book " property= "id "/> >
<img src=images/ <bean:write name= "book " property= "photo "/> width= "120 " height= "120 ">
</a>
</td>
<td>
</td>
</tr>
<tr >
<td>
图书名: <bean:write name= "book " property= "bookname "/>
</td>
</tr>
<tr>

<td>
作者: <bean:write name= "book " property= "master "/>
</td>
</tr>
<tr>
<td>
价格: <bean:write name= "book " property= "prise "/>
</td>
</tr>
<tr>
<td>
<a href=addSuccess.jsp> 购买: </a>
</td>
</tr>
<tr>
<td>
<a href=bookUpdate.do?id= <bean:write name= "book " property= "id "/> > 修改: </a>
</td>
</tr>
<tr>
<td>
<a href=bookDel.do?id= <bean:write name= "book " property= "id "/> > 删除: </a>
</td>
</tr>
<tr>
简介: <bean:write name= "book " property= "domo "/>
</tr>
</table>
</td>
</logic:iterate>

<script language= "JavaScript " type= "text/JavaScript ">

<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+ ".location= ' "+selObj.options[selObj.selectedIndex].value+ " ' ");
if (restore) selObj.selectedIndex=0;
}
//-->

</script>
<tr> <td colspan=9>
<a href= 'bookList.do?currentpage=1 '> 首页 </a>  
<%
PageInfo pageInfo = (PageInfo)request.getAttribute( "pageInfo ");


if(pageInfo.isHasPreviousPage()){
%>
<a href= 'bookList.do?currentpage= <%=pageInfo.getCurrentPage()-1%> '> 上一页 </a>  
<%
}
if(pageInfo.isHasNextPage()){
%>
<a href= 'bookList.do?currentpage= <%=pageInfo.getCurrentPage()+1%> '> 下一页 </a>  
<%
}
%>
<a href= 'bookList.do?currentpage= <%=pageInfo.getTotalPages()%> '> 末页 </a>   
第1页/共 <%=pageInfo.getTotalPages()%> 页   跳转到第
<select name= 'menu1 ' onChange=MM_jumpMenu( 'parent ',this,0)>
<%
for(int i = 1;i <=pageInfo.getTotalPages();i++){
if(i==pageInfo.getCurrentPage()){
%>
<option value= 'bookList.do?currentpage= <%=i%> ' selected> <%=i%> </option>
<%
}else{
%>
<option value= 'bookList.do?currentpage= <%=i%> '> <%=i%> </option>
<%
}
}
%>
</select> 页

&nbsp <a href=bookAdd.do> 添加 </a>
</tr>
</table>

[解决办法]
我的代码是直接查询的,楼主自己改吧,应该不是很难吧,不知道楼主用的什么数据库,都给你了。


一、jsp连接Oracle8/8i/9i数据库(用thin模式)


testoracle.jsp如下:
< %@ page contentType= "text/html;charset=gb2312 "% >
< %@ page import= "java.sql.* "% >
< html >
< body >
< %Class.forName( "oracle.jdbc.driver.OracleDriver ").newInstance();
String url= "jdbc:oracle:thin:@localhost:1521:orcl ";
//orcl为你的数据库的SID
String user= "scott ";
String password= "tiger ";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql= "select * from test ";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {% >
您的第一个字段内容为: < %=rs.getString(1)% >
您的第二个字段内容为: < %=rs.getString(2)% >
< %}% >
< %out.print( "数据库操作成功,恭喜你 ");% >
< %rs.close();
stmt.close();
conn.close();
% >
< /body >
< /html >


二、jsp连接Sql Server7.0/2000数据库


testsqlserver.jsp如下:
< %@ page contentType= "text/html;charset=gb2312 "% >
< %@ page import= "java.sql.* "% >
< html >
< body >
< %Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ").newInstance();
String url= "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs ";
//pubs为你的数据库的
String user= "sa ";
String password= " ";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql= "select * from test ";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {% >
您的第一个字段内容为: < %=rs.getString(1)% >
您的第二个字段内容为: < %=rs.getString(2)% >
< %}% >
< %out.print( "数据库操作成功,恭喜你 ");% >
< %rs.close();
stmt.close();
conn.close();
% >
< /body >
< /html >





三、jsp连接DB2数据库


testdb2.jsp如下:
< %@ page contentType= "text/html;charset=gb2312 "% >


< %@ page import= "java.sql.* "% >
< html >
< body >
< %Class.forName( "com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url= "jdbc:db2://localhost:5000/sample ";
//sample为你的数据库名
String user= "admin ";
String password= " ";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql= "select * from test ";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {% >
您的第一个字段内容为: < %=rs.getString(1)% >
您的第二个字段内容为: < %=rs.getString(2)% >
< %}% >
< %out.print( "数据库操作成功,恭喜你 ");% >
< %rs.close();
stmt.close();
conn.close();
% >
< /body >
< /html >


四、jsp连接Informix数据库


testinformix.jsp如下:
< %@ page contentType= "text/html;charset=gb2312 "% >
< %@ page import= "java.sql.* "% >
< html >
< body >
< %Class.forName( "com.informix.jdbc.IfxDriver ").newInstance();
String url =
"jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword ";
//testDB为你的数据库名
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql= "select * from test ";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {% >
您的第一个字段内容为: < %=rs.getString(1)% >
您的第二个字段内容为: < %=rs.getString(2)% >
< %}% >
< %out.print( "数据库操作成功,恭喜你 ");% >
< %rs.close();
stmt.close();
conn.close();
% >
< /body >
< /html >





五、jsp连接Sybase数据库


testmysql.jsp如下:
< %@ page contentType= "text/html;charset=gb2312 "% >
< %@ page import= "java.sql.* "% >
< html >
< body >
< %Class.forName( "com.sybase.jdbc.SybDriver ").newInstance();
String url = " jdbc:sybase:Tds:localhost:5007/tsdata ";
//tsdata为你的数据库名
Properties sysProps = System.getProperties();
SysProps.put( "user ", "userid ");
SysProps.put( "password ", "user_password ");
Connection conn= DriverManager.getConnection(url, SysProps);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql= "select * from test ";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {% >
您的第一个字段内容为: < %=rs.getString(1)% >
您的第二个字段内容为: < %=rs.getString(2)% >
< %}% >
< %out.print( "数据库操作成功,恭喜你 ");% >
< %rs.close();
stmt.close();
conn.close();
% >
< /body >
< /html >


六、jsp连接MySQL数据库


testmysql.jsp如下:
< %@ page contentType= "text/html;charset=gb2312 "% >
< %@ page import= "java.sql.* "% >
< html >
< body >
< %Class.forName( "org.gjt.mm.mysql.Driver ").newInstance();
String url = "jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1 "
//testDB为你的数据库名
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);


String sql= "select * from test ";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {% >
您的第一个字段内容为: < %=rs.getString(1)% >
您的第二个字段内容为: < %=rs.getString(2)% >
< %}% >
< %out.print( "数据库操作成功,恭喜你 ");% >
< %rs.close();
stmt.close();
conn.close();
% >
< /body >
< /html >


七、jsp连接PostgreSQL数据库


testmysql.jsp如下:
< %@ page contentType= "text/html;charset=gb2312 "% >
< %@ page import= "java.sql.* "% >
< html >
< body >
< %Class.forName( "org.postgresql.Driver ").newInstance();
String url = "jdbc:postgresql://localhost/soft "
//soft为你的数据库名
String user= "myuser ";
String password= "mypassword ";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql= "select * from test ";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {% >
您的第一个字段内容为: < %=rs.getString(1)% >
您的第二个字段内容为: < %=rs.getString(2)% >
< %}% >
< %out.print( "数据库操作成功,恭喜你 ");% >
< %rs.close();
stmt.close();
conn.close();
% >
< /body >
< /html >


 


[解决办法]
给你个简单的参数查询数据库的例子SQL2000
<%@ page contentType= "text/html;charset=GB2312 " %>
<%@ page import= "java.sql.* " %>
<%!
public String codeToString(String str)
{//处理中文字符串的函数
String s=str;
try
{
byte tempB[]=s.getBytes( "ISO-8859-1 ");
s=new String(tempB);
return s;
}
catch(Exception e)
{
return s;
}
}
%>
<%//构造查询SQL语句
String sqlString=null;//SQL语句
String sex=codeToString(request.getParameter( "sex "));
if(sex==null||sex.trim().length()==0)
sqlString=new String( "SELECT * FROM userTable ");
else
sqlString=new String( "SELECT * FROM userTable where user_sex= ' "+sex.trim()+ " ' ");
%>
<HTML>
<BODY>
<% Connection con;
Statement sql;
ResultSet rs;
try
{
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ");
}
catch(ClassNotFoundException e)
{
out.print( "类找不到! ");
}
try
{
con=DriverManager.getConnection( "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testDatabse ", "sa ", "6599996 ");
sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=sql.executeQuery(sqlString);
rs.last();
int rowNumber=rs.getRow();
out.print( " <Table Border> ");
out.print( " <form action=selectUserTable4.jsp method=post> ");
out.print( " <TR> <td> 查询性别 </td> ");
out.print( " <td colspan=7> ");
out.print( " <select name=sex> ");
out.print( " <option value= ' ' selected> 所有 </option> ");
out.print( " <option value=男> 男 </option> ");
out.print( " <option value=女> 女 </option> </select> ");


out.print( " <input type=submit value=提交> ");
out.print( " </td> </tr> </form> ");
out.print( " <TR> <td colspan=8 align=center> 用户数据(共 "+rowNumber+ "条记录) </td> </tr> ");
out.print( " <TR> ");
out.print( " <Td width=100 > "+ "用户ID号 ");
out.print( " <Td width=50 > "+ "用户名 ");
out.print( " <Td width=100> "+ "用户真实姓名 ");
out.print( " <Td width=50> "+ "年龄 ");
out.print( " <Td width=50> "+ "性别 ");
out.print( " <Td width=100> "+ "联系地址 ");
out.print( " <Td width=100> "+ "联系电话 ");
out.print( " <Td width=100> "+ "添加时间 ");
out.print( " </TR> ");
rs.beforeFirst();
while(rs.next())
{ out.print( " <TR> ");
out.print( " <TD > "+rs.getLong(1)+ " </TD> ");
out.print( " <TD > "+rs.getString(2)+ " </TD> ");
out.print( " <TD > "+rs.getString(4)+ " </TD> ");
out.print( " <TD > "+rs.getInt( "user_age ")+ " </TD> ");
out.print( " <TD > "+rs.getString( "user_sex ")+ " </TD> ");
out.print( " <TD > "+rs.getString( "user_address ")+ " </TD> ");
out.print( " <TD > "+rs.getString( "user_telephone ")+ " </TD> ");
out.print( " <TD > "+rs.getString( "add_time ")+ " </TD> ");
out.print( " </TR> ") ;
}
out.print( " </Table> ");
con.close();
}
catch(SQLException e1)
{
out.priNt( "SQL异常! ");
}
%>
</BODY>
</HTML>

[解决办法]
package study;

import java.io.*;
import java.util.*;
import java.sql.*;
import javax.sql.*;

public class JDBCStudy
{
public static void main(String[] args)
{
int id;
String name;
String sex;
String comefrom;
String queryStatement = "select * from jdbcstudy ";
String queryPrepare = "select * from jdbcstudy where id = ? ";
String queryScroll = "select * from jdbcstudy ";
String queryUpdate = "select * from jdbcstudy ";
String storedProc = "create procedure SHOW_JDBC_STUDY " +
"@userName Char(10) " +
"as " +
"select * from jdbcstudy " +
"where name = @userName; " ;

String Interval = "\n----------------------------------------------------\n " ;


//创建输出流,将错误信息保存到文件中
String ErrorFileName = "SystemErr.txt ";
PrintWriter errLog = null;
PrintStream stdErr = null;
try
{
FileOutputStream errors = new FileOutputStream(ErrorFileName, true);


errLog = new PrintWriter(errors, true);
stdErr = new PrintStream(errors);
}catch(Exception e)
{
System.out.println( "Redirection error: Unable to open SystemErr.txt ");
}
System.setErr(stdErr);

//------------------------------
System.out.println(Interval);
//------------------------------

try
{

/*
* 游标移动说明:
* next() :向下移动一条记录。
* previous() :向上移动一条记录。
* first() :移动到第一条记录。
* last() :移动到最后一条记录。
* beforeFirst() :移动到第一条记录的前面。
* afterLast() :移动到最后一条记录的后面。
* absolute(int rowNumber) :将游标移动到参数中指定的rowNumber处。
* 如果该值为正,游标从起始位置算起向下移动rowNumber行。
* 如果该值为负,游标从末尾位置算起向上移动rowNumber行。
* relative(int rowNumber) :指定从当前位置按某个方向将游标移动rowNumbwr行。
* 正值向前移动rowNumbwr行。
* 负值向后移动rowNumber行。
*
* 判断是否为指定行:
* isFirst() :判断是否为第一条记录。
* isLast() :判断是否为最后一条记录。
* isBeforeFirst() :判断是否为第一条记录的前面。
* isAfterLast() :判断是否为最后一条记录的后面。
* getRow() :获得当前的行号。
*/


//------------------------------
Class.forName( "com.mysql.jdbc.Driver ");
Connection con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/suihu ", "root ", "suihu ");

读书人网 >Java Web开发

热点推荐