2007-02-03

jsp中的数据库编程

来源: CSDN 作者:佚名 评论 0 条
 
rs.absolute()//绝对位置,负数表示从后面数
rs.first()第一条
rs.last()最后一条
rs.previoust()前一条
rs.next()后一条
rs.beforeFirst()第一条之前
rs.afterLast()最后之后
rs.isFirst(),rs.isLast(),rs.isBeforeFirst(),rs.isAfterLast
注重,刚打开的时候是处于第一条记录之前的

六,更新数据库
1,stmt.executeUpdate("strSql"),strSql是一条sql更新语句。update,insert,delete返回影响到的条数
2,stmt.execute()方法在不知道sql语句是查询还是更新的时候用。假如产生一条以上的对象时,返回true,此时可用 stmt.getResultSet()和stmt.getUpdateCount()来获取execute结果,假如不返回ResultSet对象则返回false.
3,除了Statement的executeUpdate之外还可以用ResultSet:
rs.updateInt(1,10);
rs.updateString(2,"sfafd");
rs.updateRow();

七,使用预编译PreparedStatement
PreparedStatement对象和Statement对象类似,都可以用来执行SQL语句。不同在于,数据库会对PreparedStatement的SQL语句进行预编译,而且仍然能输入参数并重复执行编译好的查询速度比未编译的要快。
PreparedStatement stmt=con.preparedStatement("Insert Into users(userid, username) values(?,?)");
stmt.clearParameters();
stmt.setInt(1,2);
stmt.setString(2,"Big");
stmt.executeUpdate();

八,执行存储过程
1,JDBC调用存储过程,并使用存储过程的返回值。这样可以将处理工作分为服务端和客户端两部分,并大大加快系统的设计和开发的时间。比如可以重复使用服务器上的组件。使用存储过程之后大量诸计算工作可以交给数据库服务器来处理,这将降低Web服务器的负载,从而提高整个系统的性能。
2,有两个表UserMain{UserID,UserName,UserType},UserRef{BrefID, UserID, UserBrief}
下面的存储过程可以接受jdbc传来的参数,新增内容到UserMain和UserRef,并输出一个OutUserID.
CREATE PROCEDURE ap_adduser
(
@OutUserID int output, //此为输出参数,output标记
@UserName varchar(25), //参数表示方法:"@XXX"为变量名,"变量名 类型 [output]"
@UserType tinyint,
@UserBrief varchar(255),
)
AS
Declare @UserID int //定义局部变量
insert into UserMain(UserName, UserType)
values(@UserName,@UserType)
select @UserID=@@IDENTITY //赋值用select,此处自动获得ID
insert into UserRef(UserID, UserBrief)
select @OutUserID=@UserID
GO/*结束,基本结构:
CREATE PROCEDURE procedureName(
parameters
)
AS
actions
GO
*/


JSP页面中这样使用:
CallableStatement stmt=con.prepareCall("{call ap_adduser(?,?,?,?)}");
stmt.registerOutParameter(1,Types.INTEGER,1);//注册输出变量
stmt.setString(2,"edmund");
stmt.setInt(3,1);
stmt.setString(4,"description");
stmt.execute();
int userid=stmt.getInt(1);
stmt.close()

八,使用事务
1,事务中的操作是一个整体,要么都执行成功要么都不成功:事务开始后,假如所有的改变都正确,则使用commit方法将这些动作全部存入数据库,否则就使用rollback取消所有的改变动作,而这时数据库中的数据和执行事务前的是相同的。
2,使用事务时应当先用 con.setAutoCommit(false),最后使用commit或者rollback
3,rollback一般在catch段执行
共4页: 上一页 [1] [2] 3 [4] 下一页

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

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