当前位置: 网学 > 编程文档 > JSP > 正文

JSP中SQL数据库编程技术

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/17
下载{$ArticleTitle}原创论文样式
p; 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段执行
九,数据库连接池
1,如果有一个数据库连接请求并且连接中没有连接,则生成一个新的连接。这个连接使用完之后并不关闭它,而是将它放入连接池。在这个过程中,还要判断连接池中的连接是否超期。如果超期则将它关闭。
2,有很多已有的Connection Pool包可以使用。
3,一般将Connection Pool作为一个application作用域的变量使用
  <jsp:useBean id="pool" scope="application" class="javastart.tools.ConnectionPool" />
  <%@page import="java.sql.*"%>
  <%@page import="javastart.tools.*"%>
  <!--javastart.tools是你的Connection Pool所在的地方-->
  DBConnection con=null;
  try{
   con=pool.getConnection("sun.jdbc.odbc.JdbcOdbcDriver","jdbc:odbc:access","","");
   Statement stmt=con.createStatement();
   stmt.setMaxRows(10);
   String query=request.getParameter("quey");
   ResultSet rs=stml.executeQuery(query);
   ResultSetMetaData rsmd=rs.getMetaData();
  }
  ..
  finally{
   pool.releaseConnection(con);
  }
  
  也可以使用一个Servlet初始化连接池

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号