
显示mssqlserver所有表:
use mssqlserver
select from sysobjects
这个sysobjects是系统表,保存的是所有表的信息
取单个表所有字段信息的Sql语句:
declare @objid int,@objname char(40)
set @objname = 'Talbename'
select @objid = id from sysobjects where id = object_id(@objname)
select 'Column_name' = name from syscolumns where id = @objid order by colid
注意:Tablename是你要选择的表名
如果你要显示所有的表,并且每个表的结构的话,那需要写一个综合的存储过程,用一个循环就可以了
jsp先从数据库获取blob字段的值,然后通过流的方式读取,转换成string才可以展示的。
参考代码如下:
从数据库中读取Blob类型数据后,要转换成String类型,即转换成InputStream,再从InputStream转成byte[],再到String即可。如下:
//把数据库中blob类型转换成String类型
public String convertBlobToString(Blob blob){
String result = "";
try {
ByteArrayInputStream msgContent =(ByteArrayInputStream) blobgetBinaryStream();
byte[] byte_data = new byte[msgContentavailable()];
msgContentread(byte_data, 0,byte_datalength);
result = new String(byte_data);
} catch (SQLException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
return result;
}
在OracleQueryBean类中增加一个函数,来进行读取,具体代码如下:
/
根据在数据库中的ID进行读取
@param strID 字段ID
@param w 需要缩到的宽度
@param h 需要缩到高度
@return
/
public byte[] GetImgByteById(String strID, int w, int h){
//Systemoutprintln("Get img data which id is " + nID);
if(myConnection == null)
thisgetConnection();
byte[] data = null;
try {
Statement stmt = myConnectioncreateStatement();
ResultSet myResultSet = stmtexecuteQuery("select " + thisstrIDName + " from " + thisstrTabName + " where " + thisstrIDName + "=" + strID);
StringBuffer myStringBuffer = new StringBuffer();
if (myResultSetnext()) {
javasqlBlob blob = myResultSetgetBlob(thisstrImgName);
InputStream inStream = blobgetBinaryStream();
try {
long nLen = bloblength();
int nSize = (int) nLen;
//Systemoutprintln("img data size is :" + nSize);
data = new byte[nSize];
inStreamread(data);
inStreamclose();
} catch (IOException e) {
Systemoutprintln("获取数据失败,原因:" + egetMessage());
}
data = ChangeImgSize(data, w, h);
}
Systemoutprintln(myStringBuffertoString());
myConnectioncommit();
myConnectionclose();
} catch (SQLException ex) {
Systemoutprintln(exgetMessage());
}
return data;
}
页面使用OracleQueryBean来根据用户提供的id进行查询,在读取并进行缩放后,通过jsp页面进行展示,具体代码如下:
<%@ page language="java" contentType="text/html;;charset=gbk" %>
<jsp:useBean id="OrcleQuery" scope="page" class="HLFtiDemoOracleQueryBean" />
<%
responsesetContentType("image/jpeg");
//在数据库中的 ID
String strID = requestgetParameter("id");
//要缩略或放大的宽度
String strWidth = requestgetParameter("w");
//要缩略或放大的高度
String strHeight = requestgetParameter("h");
byte[] data = null;
if(strID != null){
int nWith = IntegerparseInt(strWidth);
int nHeight = IntegerparseInt(strHeight);
//获取的byte数据
data = OrcleQueryGetImgByteById(strID, nWith, nHeight);
ServletOutputStream op = responsegetOutputStream();
opwrite(data, 0, datalength);
opclose();
op = null;
responseflushBuffer();
//清除输出流,防止释放时被捕获异常
outclear();
out = pageContextpushBody();
}
%>
以上就是关于在jsp(java)中如何显示数据库中所有的表全部的内容,包括:在jsp(java)中如何显示数据库中所有的表、jsp页面中如何将数据库中的blob字段转为String显示在页面上(java)、java提取数据库中blob类型的图片,如何全部显示在jsp页面等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)