2008年4月23日

            花了一天的時間開始學習ASP,看了一下視頻,還好有JSP的基礎,不然看著一定會頭昏,基礎部分我直接跳過,因為很多程序語言的語法知識都是一樣的,所以我沒有詳細看語法知識,現在有百度,google,記不住,谷歌一下,直接從操作數據庫開始的,其他和JSP操作數據庫一樣,但是有些語法知識不一樣擺了,
          實例一:
          數據庫連接代碼:
           <%
          dim db   //定義了一個變量 db
          db="db.mdb" 
          dim ConnStr,Conn              //定義了兩個變量 ConnStr,Conn
          ConnStr ="driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath(db)       //數據庫連接語句
          Set conn = Server.CreateObject("ADODB.Connection")   //創建Connection對象
          conn.Open connstr
          %>

          posted @ 2008-09-02 09:31 林世軍 閱讀(142) | 評論 (0)編輯 收藏

               摘要:   問題1:出現ClassNotFoundException   這個問題是由于你沒有把driver類放到你的classpath中,也就是說你的程序找不到驅動類,包括三個包:msutil.jar,msbase.jar,mssqlserver.jar --解決:jb:可以在工程屬性中加入這三個包,netbean:可以把這三個包copy到某一個 lib下,...  閱讀全文

          posted @ 2008-04-23 21:50 林世軍 閱讀(1341) | 評論 (0)編輯 收藏

          主要特色:
          1.使用最新的JDBC3.0數據庫驅動。
          2.大幅度減化了JSP的反復調用JavaBean,可以直接寫SQL,無須再使用連接數據庫連接池。
          3.將大量的工作交給JavaBean做,JSP負責頁面控制。
          4.最大特色是極其簡單,程序編寫也極其簡單,非常適合初學者。
          5.使用的是tomcat數據庫連接池,方便快速。
          請提供E_mail,為大家分享,如有高手,請指點不是。
          本人E_mail:c841@163.com,望多提意見。
          ****************************************文件名《page.jsp》*******************************************************************
          文件名《page.jsp》
          <%@ page language="java" import="java.sql.*, my.*" %>
          <%@ page contentType="text/html; charset=gb2312" %>
          <jsp:useBean id="pagi" scope="page" class="my.Pagi"/>
          <html>
          <body>
          <table  align="center" border=1>
          <%
          String CountQuery="select count(*) from 商品資料";
          String query = "select * from 商品資料";
          ResultSet rs = pagi.querySql(CountQuery,query, request);
          String footer = pagi.PageFooter();
          %>
          <tr>
          <td >商品編號</font></td>
          <td >商品名稱</font></td>
          </tr>
          <%
          if (pagi.intPageCount>0)
          {
          int i=0;
          while (rs.next())
          {
          i++;
          if (i>((pagi.intPage-1)*pagi.intPageSize) &&(i<=pagi.intPage*pagi.intPageSize))
          {
          %>
          <tr>
          <td><%=rs.getString(1)%></td>
          <td><%=rs.getString(2)%></td>
          </tr>
          <%
          }
          }
          }
          out.println("<tr><td colspan=2>"+footer+"</td></tr>");
          rs.close();
          pagi.close_all();
          %>
          </table>
          </body>
          </html>
          ****************************************文件名《pagi.java》*********************************************************
          文件名《pagi.java》
          package my;
          import java.util.*;
          import java.sql.*;
          import java.io.*;
          import javax.servlet.*;
          import javax.servlet.http.*;
          import my.DB.*;
          public class Pagi
          {
          ResultSet CountTopicrs=null; //初始化總記錄數Rs變量
          ResultSet Pagirs=null; //初始化分頁時Rs變量
          public int intCountTopic=0; //主題總數
          public int intPageSize;//每頁顯示主題數
          public int intPageCount;//總頁數
          public int intPage=1; //當前頁數
          public String nowPage; // int i;
          public String HttpFile;//初始化當前頁intPage變量,以準確便獲取當前頁。 //當前的地址欄的文件
          DB db; //定義Linkdb類的一個對象。
          public Pagi()//定義構造器,初始化每頁顯示的主題數和數據庫的連接。
          {
          intPageSize=4;  //每頁顯示的記錄數目
          db = new DB();
          }
          //Countsql:總記錄的Query字符串。[形式為select count(*) from tablename]
          //Pagisql :要分頁的Query字符串。[形式為select * from tablename where ...]
          //request :參數傳遞過程中的變量。[用來控制翻頁時的pages變量]
          public ResultSet querySql(String Countsql,String Pagisql,HttpServletRequest request)throws Exception
          {
          HttpFile=request.getRequestURI();  //獲取當前文件名。
          nowPage=request.getParameter("pages");  //獲取當前頁,將數值賦予intPage變量。[分頁欄中必須要有pages參數]
          if (nowPage==null)
          {
          intPage=1;
          }
          else
          {
          intPage=Integer.parseInt(nowPage);
          if (intPage<1)
          intPage=1;
          }
          CountTopicrs=db.executeQuery(Countsql); //@@@@@@@@@@@@獲取總記錄數的結果集。
          if (CountTopicrs.next())
          {
          intCountTopic=CountTopicrs.getInt(1);
          }
          intPageCount = (intCountTopic+intPageSize-1)/intPageSize;  //獲取總頁數。
          if (intPage>intPageCount)//如果當前頁大于總頁數,則當前頁等于總頁數。
          {
          intPage=intPageCount;
          }
          CountTopicrs.close();  //關閉總主題數的數據集。
          db.close_all();
          Pagirs=db.executeQuery(Pagisql);  //@@@@@@@@@@@@@@@獲取執行分頁的結果集。
          return Pagirs;
          }//end querySql function.
          public int getCountTopic()//獲取記錄總數。
          {
          return intCountTopic;
          }
          public int getPageCount() //獲取總頁數。
          {
          return intPageCount;
          }
          public int getIntPage()  //獲取當前頁數。
          {
          return intPage;
          }
          public String PageFooter()
          {
          String str = "";
          int next, prev;
          prev=intPage-1;
          next=intPage+1;
          str += "查詢到<font color=red>"+getCountTopic()+"</font>條記錄"+
          "    共<font color=red>"+getPageCount()+"</font>頁";
          str +=" 第<font color=red>"+getIntPage()+"</font>頁 ";
          if(intPage>1)
          str += " <A href=" + HttpFile + "?pages=1"+">首頁</A> ";
          else
          str += " 首頁 ";
          if(intPage>1)
          str += " <A href=" + HttpFile + "?pages=" + prev + ">上一頁</A> ";
          else
          str += " 上一頁 ";
          if(intPage<intPageCount)
          str += " <A href=" + HttpFile + "?pages=" + next + ">下一頁</A> ";
          else
          str += " 下一頁 ";
          if(intPageCount>1&&intPage!=intPageCount)
          str += " <A href=" + HttpFile + "?pages=" + intPageCount +
          ">尾頁</A>";
          else
          str += " 尾頁 ";
          return str;
          }
          public void close_all()
          {
          db.close_all();
          }
          }
          ************************************************文件名《DB.java》********************************************************
          文件名《DB.java》
          package my;
          import java.sql.*;
          import javax.naming.*;
          import javax.sql.DataSource;
          //一個用于查找數據源的工具類。
          public class DB {
          private Connection con=null;
          private Statement stmt=null;
          ResultSet rs=null;
          public  ResultSet executeQuery(String sql) throws Exception
          {
          rs=null;
          try
          {
          Context initCtx = new javax.naming.InitialContext();
          Context envCtx = (Context) initCtx.lookup("java:comp/env");
          DataSource ds = (DataSource)envCtx.lookup("jdbc/bn");
          con=ds.getConnection();
          stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
          rs=stmt.executeQuery (sql);
          }
          catch(SQLException e){throw e;}
          catch(NamingException e){throw e;}
          return rs;
          }
          //執行Insert,Update語句
          public void executeUpdate(String sql) throws Exception
          {
          stmt = null;
          rs=null;
          try
          {
          Context initCtx = new javax.naming.InitialContext();
          Context envCtx = (Context) initCtx.lookup("java:comp/env");
          DataSource ds = (DataSource)envCtx.lookup("jdbc/bn");
          con=ds.getConnection();
          stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
          stmt.executeQuery(sql);
          stmt.close();
          con.close();
          }
          catch(SQLException ex)
          {
          System.err.println("執行SQL語句出錯: " + ex.getMessage());
          }
          }
          // 關閉stmt和關閉連接
          public void close_all()
          {
          try{
          stmt.close();
          con.close();
          }
          catch(SQLException e){e.printStackTrace();}
          }
          }
          ***************************************《tomcat中的數據庫連接池的設置》********************************************************************************
          ……
          ……
          ……
          <Context path="/SQL" docBase="D:\SQL_JSP" debug="0" reloadable="true" crossContext="true">
          <Resource name="jdbc/bn" auth="Container" type="javax.sql.DataSource"/>
          <ResourceParams name="jdbc/bn">
          <parameter>
          <name>factory</name>
          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
          </parameter>
          <parameter>
          <name>driverClassName</name>
          <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
          </parameter>
          <parameter>
          <name>url</name>
          <value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev</value>
          </parameter>
          <parameter>
          <name>username</name>
          <value>cyg</value>
          </parameter>
          <parameter>
          <name>password</name>
          <value>325345353</value>
          </parameter>
          <parameter>
          <name>maxActive</name>
          <value>20</value>
          </parameter>
          <parameter>
          <name>maxIdle</name>
          <value>20</value>
          </parameter>
          <parameter>
          <name>maxWait</name>
          <value>-1</value>
          </parameter>
          </ResourceParams>
          </Context>
          </Host>
          </Engine>
          </Service>
          </Server>
          

          posted @ 2008-04-23 21:41 林世軍 閱讀(986) | 評論 (0)編輯 收藏


          posts - 4, comments - 0, trackbacks - 0, articles - 2

          Copyright © 林世軍

          主站蜘蛛池模板: 仁寿县| 台江县| 勐海县| 巴彦县| 门头沟区| 张家界市| 太湖县| 清远市| 溧阳市| 海阳市| 自治县| 松溪县| 邵武市| 鱼台县| 东台市| 万全县| 密山市| 特克斯县| 清流县| 昌江| 兴山县| 巴彦县| 桂林市| 怀仁县| 陇南市| 旌德县| 日喀则市| 巨野县| 抚宁县| 大方县| 唐海县| 建瓯市| 宁乡县| 岚皋县| 涞水县| 金华市| 铜山县| 阿城市| 通榆县| 桐城市| 正镶白旗|