2007-02-03

jsp中的数据库编程

来源: CSDN 作者:佚名 评论 0 条
 
while(e=e.getNextException()){
out.println(e.getMessage());
}
}

一般来说并不建议在jsp中编写数据库的访问程序,可以将数据库的访问封装在一个javabean中。
四,ResultSet深入
1,ResultSetMetaData
ResultSet rs=stmt.executeQuery("select....");
ResultSetMetaData rsmd=rs.getMetaData(); //获取ResultSetMateData对象
int numberOfColumns=rsmd.getColumnCount();//返回列数
boolean b=rsmd.isSearchable(int i);//返回第i列是否可以用于where子句
String c=rsmd.getColumnLabel(int i);//获取第i列的列标
Objcet obj=rs.getObject();
if(obj!=null)out.println(obj.toString());
else println("");
2,SQL类型与ResultSet的getObject返回类型及对应的XXX getXXX()方法
SQL类型 JSP类型 对应的getXXX()方法
————————————————————————————————————————————
CHAR String String getString()
VARCHAR String String getString()
LONGVARCHAR String InputStream getAsciiStream()/getUnicodeStream()
NUMERIC java.math.BigDecimal java.math.BigDecimal getBigDecimal()
DECIMAL 同上
BIT Boolean boolean getBoolean()
TINYINT Integer byte getByte()
SMALLINT Integer short getShort()
INTEGER Integer int getInt()
BIGINT Long long getLong()
REAL Float float getFloat()
FLOAT Double double getDouble()
DOUBLE Double double getDouble()
BINARY byte[] byte[] getBytes()
VARBINARY byte[] byte[] getBytes()
LONGVARBINARY byte[] InputStream getBinaryStream()
DATE java.sql.Date java.sql.Date getDate()
TIME java.sql.Time java.sql.Time getTime()
TIMESTAMP java.sql.Timestamp java.sql.Timestamp getTimestamp()

3,null
int i=rs.getInt("age");
if(!rs.wasNull())....//RecordSet::wasNull()用来检查null
4,存取大字符串和二进制文本
对于数据库中longvarchar和langvarbinary进行流操作
ResultSet rs=stmt.executeQueryString("select ...");
BufferedReader br=new BufferedReader(new InputStream(rs.getAsciiStream("vol1")));//长文本串
BufferedReader br=new BufferedReader(new InputStream(rs.getUnicodeStream("vol1")));
BufferedReader br=new BufferedReader(new InputStream(rs.getBinaryStream("vol2")));//长二进制文本
//取数据必须在rs.getAsciiStream(), rs.getUnicodeStream(), rs.getBinaryStream()等之后马上进行


五,浏览ResultSet
1,JDBC2.0提供了更多浏览ResultSet的方法
首先,确定你的jdbc驱动程序支持jdbc2.0
其次,由Connection生成Statement时要指定参数
Statement stmt=con.getStatement("游标类型", "记录更新权限");
游标类型:
ResultSet.TYPE_FORWORD_ONLY:只可以向前移动
ResultSet.TYPE_SCROLL_INSENSITIVE:可卷动。但是不受其他用户对数据库更改的影响。
ResultSet.TYPE_SCROLL_SENSITIVE:可卷动。当其他用户更改数据库时这个记录也会改变。
记录更新权限:
ResultSet.CONCUR_READ_ONLY,只读
ResultSet.CONCUR_UPDATABLE,可更新

getStatement()缺省参数:getStatement(ResultSet.TYPE_FORWORD_ONLY, ResultSet.CONCUR_READ_ONLY)
2,假如ResultSet是可卷动的,以下函数可以使用:
共4页: 上一页 [1] 2 [3] [4] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:jsp 自定义分页标签  
下一篇:C#实现Socket传输简单数据
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号