!!!高分!!!jsp调用javabean进行数据库查询
Example6_3.jsp<%@pagecontentType="text/html;charset=Gb2312"%><html><bodybgcolor="cyan...
Example6_3.jsp
<%@ page contentType="text/html;charset=Gb2312" %>
<html>
<body bgcolor="cyan">
<font size="3">
<form action="inquire.jsp" Method="post">
输入数据源名:<Input type="text" name="dataSource" size="8">
输入表的名字:<Input type="text" name="tableName" size="8">
<br>
输入用户名:<Input type=text name="user" size=6>
输入密码:<Input type="password" name="password" size=6>
<br><Input type=submit name="g" value="提交">
</form>
</font>
</body>
</html>
/////////////////////////////////////////////////////////////
inquire.jsp
<%@ page contentType="text/html;charset=Gb2312" %>
<%@ page import="sqljoin.my.*" %>
<html>
<body bgcolor=cyan>
<font size=2>
<%
String dSource=request.getParameter("dataSource");
String tName=request.getParameter("tableName");
String id=request.getParameter("user");
String secret=request.getParameter("password");
%>
<jsp:useBean id="sq" class="sqljoin.my.Qurey" scope="page"/>
<table>
<%%>
</table>
</font>
</body>
</html>
///////////////////////////////////////////////////////
javabean的文件不会写
package sqljoin.my;
import java.io.*;
import java.sql.*;
这是我建的包 我看书上用的是Tag标签来实现这个功能的,我也看懂了,但要求用javabean来实现,我就不太会改了
这是tag得代码,我知道就就稍微改动改动就行
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*"%>
<%@ attribute name="dataSource" required="true" %>
<%@ attribute name="tableName" required="true" %>
<%@ attribute name="user" required="true" %>
<%@ attribute name="password" required="true" %>
<%@ variable name-given="biao" scope="AT_END" %>
<%@ variable name-given="queryResult" scope="AT_END" %>
<%
StringBuffer result;
result=new StringBuffer();
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception e){}
Connection con;
Statement sql;
ResultSet rs;
try
{
result.append("<table border=1>");
String uri = "jdbc:odbc:" + dataSource;
con=DriverManager.getConnection(uri,user,password);
DatabaseMetaData metadata=con.getMetaData();
ResultSet rs1 = metadata.getColumns(null,null,tableName,null);
int ziduan = 0;
result.append("<tr>");
while(rs1.next())
{
ziduan++;
String clumnName = rs1.getString(4);
result.append("<td>" + clumnName + "</td>");
}
result.append("<tr>");
sql = con.createStatement();
rs = sql.executeQuery("SELECT * FROM " + tableName);
while(rs.next())
{
result.append("<tr>");
for(int k = 1; k < ziduan;k++)
{
result.append("<td>" + rs.getString(k) + "</td>");
}
result.append("</tr>");
}
result.append("</table>");
con.close();
}
catch(SQLException e)
{
result.append("请输入正确的用户名和密码");
}
jspContext.setAttribute("queryResult",new String(result));
jspContext.setAttribute("biao",tableName);
%>
中间有些我改动了,大体没怎么变,高手们看仔细些吧,谢谢了
后台是动态的,我要可以查询不同的表
我用的是JDBC-ODBC连接的数据源的密码我没有设置,那个用户名,密码不用管,最主要是tableName这个值,怎么传到JAVABEAN里,这里我不太会,最好把BEAN从头写好,谢谢。Eclipse我都调好了,文件夹这点肯定没问题 展开
<%@ page contentType="text/html;charset=Gb2312" %>
<html>
<body bgcolor="cyan">
<font size="3">
<form action="inquire.jsp" Method="post">
输入数据源名:<Input type="text" name="dataSource" size="8">
输入表的名字:<Input type="text" name="tableName" size="8">
<br>
输入用户名:<Input type=text name="user" size=6>
输入密码:<Input type="password" name="password" size=6>
<br><Input type=submit name="g" value="提交">
</form>
</font>
</body>
</html>
/////////////////////////////////////////////////////////////
inquire.jsp
<%@ page contentType="text/html;charset=Gb2312" %>
<%@ page import="sqljoin.my.*" %>
<html>
<body bgcolor=cyan>
<font size=2>
<%
String dSource=request.getParameter("dataSource");
String tName=request.getParameter("tableName");
String id=request.getParameter("user");
String secret=request.getParameter("password");
%>
<jsp:useBean id="sq" class="sqljoin.my.Qurey" scope="page"/>
<table>
<%%>
</table>
</font>
</body>
</html>
///////////////////////////////////////////////////////
javabean的文件不会写
package sqljoin.my;
import java.io.*;
import java.sql.*;
这是我建的包 我看书上用的是Tag标签来实现这个功能的,我也看懂了,但要求用javabean来实现,我就不太会改了
这是tag得代码,我知道就就稍微改动改动就行
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*"%>
<%@ attribute name="dataSource" required="true" %>
<%@ attribute name="tableName" required="true" %>
<%@ attribute name="user" required="true" %>
<%@ attribute name="password" required="true" %>
<%@ variable name-given="biao" scope="AT_END" %>
<%@ variable name-given="queryResult" scope="AT_END" %>
<%
StringBuffer result;
result=new StringBuffer();
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception e){}
Connection con;
Statement sql;
ResultSet rs;
try
{
result.append("<table border=1>");
String uri = "jdbc:odbc:" + dataSource;
con=DriverManager.getConnection(uri,user,password);
DatabaseMetaData metadata=con.getMetaData();
ResultSet rs1 = metadata.getColumns(null,null,tableName,null);
int ziduan = 0;
result.append("<tr>");
while(rs1.next())
{
ziduan++;
String clumnName = rs1.getString(4);
result.append("<td>" + clumnName + "</td>");
}
result.append("<tr>");
sql = con.createStatement();
rs = sql.executeQuery("SELECT * FROM " + tableName);
while(rs.next())
{
result.append("<tr>");
for(int k = 1; k < ziduan;k++)
{
result.append("<td>" + rs.getString(k) + "</td>");
}
result.append("</tr>");
}
result.append("</table>");
con.close();
}
catch(SQLException e)
{
result.append("请输入正确的用户名和密码");
}
jspContext.setAttribute("queryResult",new String(result));
jspContext.setAttribute("biao",tableName);
%>
中间有些我改动了,大体没怎么变,高手们看仔细些吧,谢谢了
后台是动态的,我要可以查询不同的表
我用的是JDBC-ODBC连接的数据源的密码我没有设置,那个用户名,密码不用管,最主要是tableName这个值,怎么传到JAVABEAN里,这里我不太会,最好把BEAN从头写好,谢谢。Eclipse我都调好了,文件夹这点肯定没问题 展开
2个回答
展开全部
这个页面中我只是返回了一个string类型的变量,如果你需要返回更多那个就简单了,这个只是一个例子
inquire.jsp
<%@ page contentType="text/html;charset=Gb2312" %>
<%@ page import="sqljoin.my.*" %>
<html>
<body bgcolor=cyan>
<font size=2>
<%
String dSource=request.getParameter("dataSource");
String tName=request.getParameter("tableName");
String id=request.getParameter("user");
String secret=request.getParameter("password");
%>
<jsp:useBean id="sq" class="test.JavaBean" scope="page"/>
<table>
<%=sq.RessultString(tName,dSource,id,secret)%>
</table>
</font>
</body>
</html>
javabean的代码就这样写,这里我用的是mysql,你可以换成其他的,值得注意的是,如果你用是我的数据库,还要把驱动包考到\WEB-INF\lib下面,
package test;
import java.sql.DriverManager;
import java.sql.ResultSet;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.Statement;
/**
*
*/
/**
* @author chenchua
*
*/
public class JavaBean {
public static String RessultString(String table,String dataSourse,String user,String password){
String clumnName=null;
StringBuffer result;
result=new StringBuffer();
try
{
Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e){}
Connection con;
try
{
String uri = "jdbc:mysql://127.0.0.1:3306/"+dataSourse+"?user="+user+"&password="+password;
con=(Connection)DriverManager.getConnection(uri);
Statement state=(Statement)con.createStatement();
ResultSet rs1 = state.executeQuery("select * from "+table);
while(rs1.next()){
clumnName = rs1.getString("id");
}
}catch(Exception ex){
ex.printStackTrace();
return "数据库连接失败";
}
return clumnName;
}
}
如果有任何问题都可以给我留言!!
如果用的是access改下驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dburl ="jdbc:odbc:driver="+dataSourse+"?user="+user+"&password="+password;
jdbc:odbc:driver =此为NO-DSN方式
***********************
此外你还要设置,控制面板->管理工具->datasource里面去添加一个你建好的表,密码也可以设定,
你可以再eclipse里面直接测试,如果成功了然后在去运行,测试代码
public static void main(String args[]){
System.out.print(RessultString(table,dataSourse,user,password));
}
如果测试通过了才去运行,我的反正已经通过了,如果你不通过你应该去看看JDBC是怎么连的,只能给你说成这样了
inquire.jsp
<%@ page contentType="text/html;charset=Gb2312" %>
<%@ page import="sqljoin.my.*" %>
<html>
<body bgcolor=cyan>
<font size=2>
<%
String dSource=request.getParameter("dataSource");
String tName=request.getParameter("tableName");
String id=request.getParameter("user");
String secret=request.getParameter("password");
%>
<jsp:useBean id="sq" class="test.JavaBean" scope="page"/>
<table>
<%=sq.RessultString(tName,dSource,id,secret)%>
</table>
</font>
</body>
</html>
javabean的代码就这样写,这里我用的是mysql,你可以换成其他的,值得注意的是,如果你用是我的数据库,还要把驱动包考到\WEB-INF\lib下面,
package test;
import java.sql.DriverManager;
import java.sql.ResultSet;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.Statement;
/**
*
*/
/**
* @author chenchua
*
*/
public class JavaBean {
public static String RessultString(String table,String dataSourse,String user,String password){
String clumnName=null;
StringBuffer result;
result=new StringBuffer();
try
{
Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e){}
Connection con;
try
{
String uri = "jdbc:mysql://127.0.0.1:3306/"+dataSourse+"?user="+user+"&password="+password;
con=(Connection)DriverManager.getConnection(uri);
Statement state=(Statement)con.createStatement();
ResultSet rs1 = state.executeQuery("select * from "+table);
while(rs1.next()){
clumnName = rs1.getString("id");
}
}catch(Exception ex){
ex.printStackTrace();
return "数据库连接失败";
}
return clumnName;
}
}
如果有任何问题都可以给我留言!!
如果用的是access改下驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dburl ="jdbc:odbc:driver="+dataSourse+"?user="+user+"&password="+password;
jdbc:odbc:driver =此为NO-DSN方式
***********************
此外你还要设置,控制面板->管理工具->datasource里面去添加一个你建好的表,密码也可以设定,
你可以再eclipse里面直接测试,如果成功了然后在去运行,测试代码
public static void main(String args[]){
System.out.print(RessultString(table,dataSourse,user,password));
}
如果测试通过了才去运行,我的反正已经通过了,如果你不通过你应该去看看JDBC是怎么连的,只能给你说成这样了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询