posts - 89, comments - 241, trackbacks - 0, articles - 1
             :: 首頁 ::  :: 聯系 :: 聚合  :: 管理

          公告


          我參與的團隊

          java

          搜索

          •  

          積分與排名

          • 積分 - 91451
          • 排名 - 631

          最新評論

          Java資料

          Posted on 2009-04-03 17:07 saobaolu 閱讀(314) 評論(1)  編輯  收藏 所屬分類: java基礎與算法

          第二種,JavaBean的形式。

          package conn;                            //導入包

          import java.sql.*;                        //導入數據庫操作的類

          public class DBConnAccess                //構造方法,初始化

          {

              private Connection conn;            //連接對象

              private Statement stmt;                //語句對象

              private ResultSet rs;                //結果集對象

              private String accessdriver;        //保存Access驅動程序字符串

              private String accessURL;             //保存Access連接字符串

              public DBConnAccess()

              {

                  //Access驅動程序

                  accessdriver = "sun.jdbc.odbc.JdbcOdbcDriver";       

                  //連接字符串

                  accessURL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";

                  conn = null;

              }

              //該方法從參數得到數據庫路徑,并加到連接字符串后面,然后再建立連接

              public Connection getConnToAccess(String dbpath){

                  try{

                      accessURL=accessURL+dbpath;

                      Class.forName(accessdriver);

                      conn = DriverManager.getConnection(accessURL);

                      }catch(Exception e){

                          System.out.println("操作數據庫出錯,請仔細檢查");

                          System.err.println(e.getMessage());

                      }

                  return conn;

              }

             //關閉數據庫連接

              public void close()

              {

                  try{

                      //rs.close();

                      //stmt.close();

                      conn.close();

                  }catch(SQLException sqlexception){

                      sqlexception.printStackTrace();

                  }

              }

          }

          調用方法如下: 程序代碼

          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

          <%@ page contentType="text/html; charset=gb2312" language="java"

          import="java.sql.*"  %>

          <jsp:useBean id="DBConn" scope="page" class="conn.DBConnAccess"/>

          <%  //連接Access 數據庫

              String dbpath="data/test.mdb";   //數據庫的路徑,請自行修改

              Connection conn=DBConn.getConnToAccess(application.getRealPath(dbpath));

              Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

              String sql="select * from username order by id";

              //String sql1="insert into username (uid,pwd) values('wsp','wsp')";

              //stmt.executeUpdate(sql1);

              ResultSet rs=stmt.executeQuery(sql);

              while(rs.next()){

              out.print("用戶名:");

              out.print(rs.getString("uid")+" 密碼:");

              out.println(rs.getString("pwd")+"<br>");

              }

              DBConn.close();

          %>

          第一種,jsp頁面連接

          <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>

          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

          <%

              // ******* 數據庫連接代碼 開始  *****

              //異常處理語句

              try

          {   //以下幾項請自行修改

                  String spath = "data/test.mdb";//Access 數據庫路徑

                  String dbpath = application.getRealPath(spath);//轉化成物理路徑

                  String dbname = "";        //Acvess 數據庫用戶名,沒有則為空

                  String user = "";        //Access 數據庫密碼,沒有則為空

          //數據庫連接字符串

                  String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+dbpath;

                  //加載驅動程序

                  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

                  //建立連接

                  Connection conn= DriverManager.getConnection(url);

                  //創建語句對象

                  Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

                  // ****   數據庫連接代碼 結束 ******

                 //*********  測試數據代碼開始  ******

                  //請在數據庫中建立username表,表中建立兩個字段uidpwd,類型為文本型

                  String sql = "select * from username";

                  ResultSet rs = stmt.executeQuery(sql);

                  while(rs.next())

                  {   out.print("用戶名:" + rs.getString("uid"));

                      out.print("  密碼:" + rs.getString("pwd") + "<br>");

                  }

                  out.print("<br>恭喜你!數據庫連接成功!");

                  rs.close();                                    //關閉記錄集對象

                  stmt.close();                                //關閉語句對象

                  conn.close();                                //關閉連接對象

              }catch(Exception e){

                  out.print("數據庫連接錯誤!,錯誤信息如下:<br>");

                  out.print(e.getMessage());

                  }  //*******   測試數據代碼結束  *******

          %>

          jsp連接SQLServer數據庫的代碼

          要正確的使用這段代碼,你需要首先在SQLServer數據庫里創建一username表,表里面創建兩個字符型的字段,字段名分別為:uid,pwd,然后插入幾條測試數據。

          歡迎各位提出改進的意見。

          以下用兩種方式來實現jsp連接SQLServer數據庫。

          第一種JSP形式。  程序代碼

          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

          <%@ page contentType="text/html; charset=gb2312" language="java"

          import="java.sql.*"%>

          <% 

              /*********************

               *********  JDBC_ODBC連接 SQL Server 數據庫,不需要設置數據源

               *********  Date: 2005.8

               *********  Email:fanwsp@126.com

               *********  Author: DreamTime [夢想年華]

               *********  有任何歡迎提出指正  

               ****************************/

              //請根據需要,選擇一種方法,去掉相應的方法的注釋,并注釋其它沒有使用的

              //以下幾項請自行修改

              String server="localhost";        //SQL Server 服務器的地址

              String dbname="test";            //SQL Server 數據庫的名字

              String user="sa";                //SQL Server 數據庫的登錄用戶名

              String pass="chfanwsp";            //SQL Server 數據庫的登錄密碼

              String port="1433";                //SQL Server 服務器的端口號,默認為1433

               /*****  方法1 *******

               *    net.sourceforge.jtds.jdbc.Driver 

               *            (http://jtds.sourceforge.net/)                                 *

               *    Win2003Server上安裝SQLSERVER2000,必須安裝補丁sp3                     *

               *************************/

              // *******數據庫連接代碼 開始  *******

                  //數據庫連接字符串

                  String url="jdbc:jtds:sqlserver://"+server+":"+port+"/"+dbname+";USER="+user+";PASSWORD="+pass+"";

                  //加載驅動程序

                  Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();

                  //建立連接

                  Connection conn= DriverManager.getConnection(url);

                  //創建語句對象

                  Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

                  // ****     數據庫連接代碼 結束 *********

              /**********          方法2  *******

              *************    用微軟提供的JDBC驅動程序   *******

              *******************************************

              *Win2003 Server上安裝SQLSERVER2000,必須安裝補丁sp3

              ***************************/

              // ******************     數據庫連接代碼 開始             ******************

              /*

                  String url="jdbc:microsoft:sqlserver://"+server+":"+port+";DatabaseName="+dbname+";

          USER="+user+";PASSWORD="+pass+"";

                  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

                  Connection conn= DriverManager.getConnection(url);

                  Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

              */

              // ****     數據庫連接代碼 結束 *********

              /**********          方法3  ****************

              *************    JDBC-ODBC橋驅動程序   *********

              ***********************************

              *    Win2003 Server上安裝SQLSERVER2000,可能需要安裝補丁sp3*

              ***************************/

              // ********* 數據庫連接代碼 開始 ********

              /*

                  String url="jdbc:odbc:Driver={SQL Server};server="+server+";uid="+user+";pwd="+pass+";database="+dbname+"";

                  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

                  Connection conn= DriverManager.getConnection(url);

                  Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

              */

              // ****     數據庫連接代碼 結束 *********

              String sql="select * from username";

              ResultSet rs=stmt.executeQuery(sql);

              //rs.first();

              while(rs.next()){

              out.print("用戶名:");

              out.print(rs.getString("uid")+" 密碼:");

              out.println(rs.getString("pwd")+"<br>");

              }

              rs.close();

              stmt.close();

              conn.close();

          %>

          第二種方式,用JavaBean來實現。請看代碼:

          DBConnSql.java

          編譯以后的Class文件應該放在 WEB-INF\classes\conn目錄下。 程序代碼

          /*

          *******  java連接SQL Server數據庫代碼  *************

          *******          使用Jdbc連接          *************

          */

          package conn;                            //導入包

          import java.sql.*;                        //導入數據庫操作的類

          public class DBConnSql                    //構造方法,初始化

          {

              private Connection conn;            //連接對象

              private Statement stmt;                //語句對象

              private ResultSet rs;                //結果集對象

              private String sqldriver;            //SQL Server驅動程序字符串

              private String sqlURL;                 //SQL Server連接字符串

              /**********          方法1  *********

               *        net.sourceforge.jtds.jdbc.Driver   ************

               *        (http://jtds.sourceforge.net/)

               *        Win2003Server上安裝SQLSERVER2000,必須安裝補丁sp3

               *

               *  該方法取得連接所需各種參數,組成連接字符串,然后再建立連接

               *  server;dbname,user,pass,port

               * 分別表示SQL Server 服務器的地址,數據庫,用戶名,密碼,端口

               *****************************/

                    public Connection getConnToSql1(String server,String dbname,String user,String pass,String port){

                   //SQL Server驅動程序,用net.sourceforge.jtds.jdbc.Driver

                   sqldriver = "net.sourceforge.jtds.jdbc.Driver";   

                  sqlURL = "jdbc:jtds:sqlserver://";              //連接字符串一部分

                  try{

                      //完整的連接字符串

                      sqlURL =sqlURL+server+":"+port+"/"+dbname+";USER="+user+";PASSWORD="+pass+"";

                      Class.forName(sqldriver);

                      conn = DriverManager.getConnection(sqlURL);

                      }catch(Exception e){

                          System.out.println("操作數據庫出錯,請仔細檢查");

                          System.err.println(e.getMessage());

                      }

                  return conn;

              }

                   /**********          方法2  ***************

                   ******* 用微軟提供的JDBC驅動程序   **************

                   *    Win2003 Server上安裝SQLSERVER2000,必須安裝補丁sp3

                   *

                   *  該方法取得連接所需各種參數,組成連接字符串,然后再建立連接

                   *  server;dbname,user,pass,port

                                * 分別表示SQL Server 服務器的地址,數據庫,用戶名,密碼,端口

                  ********************************/

                  public Connection getConnToSql2(String server,String dbname,String user,String pass,String port){

                  

                   //SQL Server驅動程序,用微軟提供的JDBC驅動程序

                  sqldriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";   

                  sqlURL = "jdbc:microsoft:sqlserver://";          //連接字符串一部分

                  try{

                      //完整的連接字符串

                      sqlURL =sqlURL+server+":"+port+";DatabaseName="+dbname+";USER="+user+";PASSWORD="+pass+"";

                      Class.forName(sqldriver);

                      conn = DriverManager.getConnection(sqlURL);

                      }catch(Exception e){

                          System.out.println("操作數據庫出錯,請仔細檢查");

                          System.err.println(e.getMessage());

                      }

                  return conn;

              }

                  /**********          方法3  **************

                   *************    JDBC-ODBC橋驅動程序   **********

                   *    Win2003 Server上安裝SQLSERVER2000,可能需要安裝補丁sp3

                   *

                   * 該方法取得連接所需各種參數,組成連接字符串,然后再建立連接

                   * server;dbname,user,pass,port

                   * 分別表示SQL Server 服務器的地址,數據庫,用戶名,密碼,端口

                  **********************************************/

                  public Connection getConnToSql3(String server,String dbname,String user,String pass,String port){

                  //SQL Server驅動程序,用微軟提供的JDBC驅動程序

                  sqldriver = "sun.jdbc.odbc.JdbcOdbcDriver";   

                  sqlURL = "jdbc:odbc:Driver={SQL Server};";          //連接字符串一部分

                  try{

                      //完整的連接字符串

                      sqlURL =sqlURL+"server="+server+";uid="+user+";pwd="+pass+";database="+dbname+"";

                      Class.forName(sqldriver);

                      conn = DriverManager.getConnection(sqlURL);

                      }catch(Exception e){

                          System.out.println("操作數據庫出錯,請仔細檢查");

                          System.err.println(e.getMessage());

                      }

                  return conn;

              }

              //關閉數據庫連接

              public void close()

          {

                  try{

                      //rs.close();

                      //stmt.close();

                      conn.close();

                  }catch(SQLException sqlexception){

                      sqlexception.printStackTrace();

                  }

              }

          }

          這個文件只是實現了數據庫的連接,下面我們再寫一個測試文件。

          就是用sql語句從數據庫里查詢出記錄,以驗證我們數據庫的連接是否成功。

          connsql.jsp 文件源代碼如下: 程序代碼

          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

          <%@ page contentType="text/html; charset=gb2312" language="java"

          import="java.sql.*"  %>

          <jsp:useBean id="DBConn" scope="page" class="conn.DBConnSql"/>

          <%

              /*****  說明:本數據庫連接一共提供了三種方法:

                一、用net.sourceforge.jtds.jdbc.Driver,請調用getConnToSql1方法。

                二、用微軟提供的JDBC驅動程序,請調用getConnToSql2方法。

                三、用JDBC-ODBC橋驅動程序連接,請調用getConnToSql3方法。

               本例使用的是第一種方法,調用getConnToSql1方法。請根據自己的實際情況進行修改

               如果是第二種方法請把 Connection conn=DBConn.getConnToSql1(server,dbname,user,pass);

                           里面語句改為:

               Connection conn=DBConn.getConnToSql2(server,dbname,user,pass);

                           其它類此。

              *****************************************************/

              //連接 SQL Server 數據庫所需各種參數,請自行修改

              String server="localhost";        //SQL Server 服務器的地址

              String dbname="test";            //SQL Server 數據庫的名字

              String user="sa";                //SQL Server 數據庫的登錄用戶名

              String pass="chfanwsp";            //SQL Server 數據庫的登錄密碼

              String port ="1433";            //SQL Server 服務器的端口號,默認為1433

              Connection conn=DBConn.getConnToSql3(server,dbname,user,pass,port);

              Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

              String sql="select * from username order by id";

              String sql1="insert into username (uid,pwd) values('wsp','wsp')";

              //stmt.executeUpdate(sql1);

              ResultSet rs=stmt.executeQuery(sql);

              while(rs.next()){

              out.print("用戶名:");

              out.print(rs.getString("uid")+" 密碼:");

              out.println(rs.getString("pwd")+"<br>");

              }

              rs.close();

              stmt.close();

              conn.close();

              //DBConn.close();

          %>

          Java實現文件操作:

          一個用java實現對文件的操作。完成了如創建目錄及文件,復制目錄及文件以及刪除等功能。

          主要用到了javaFile類,FileInputStream類,FileOutputStreamFileWriterPrintWriterInputStreamOutputStream BufferedReaderFileReader等相關類。

          程序在某些方的實現可能存在一些問題,歡迎各位提出指正。

           程序代碼

          package file;

          import java.io.*;

          public class FileClass {

              //private String sFileName;

              //private String sFolderName;

              String sPath;

              String sFilePath;

              String sContent;

                  /********************

                   * 新建目錄

                   *******************/

                  public boolean newFolder(String s)

                  {

                      sPath = s;

                      sPath = sPath.toString();//中文轉換

                      //創建一個File(文件)對象

                      File myFilePath = new File(sPath);

                      if(!myFilePath.exists())

                      {

                          try

                          {   

                              myFilePath.mkdirs();

                              return true;

                          }catch(Exception e)

                          {

                              e.printStackTrace();

                              return false;

                          }

                      }

                      else return false;

                  }

                  /********************

                   * 新建文件

                   *******************/

                  public boolean newFile(String s1,String s2)

                  {

                      sFilePath = s1;

                      sContent = s2;

                      sFilePath = sFilePath.toString();

                      File myFilePath = new File(sFilePath);

                      if(!myFilePath.exists())

                      {

                          try

                          {   

                              myFilePath.createNewFile();

                              FileWriter resultFile=new FileWriter(myFilePath);

                              PrintWriter myFile=new PrintWriter(resultFile);

                              String sContent = s2.toString();

                              myFile.println(sContent);

                              myFile.close();

                              resultFile.close();

                              return true;

                          }catch(Exception e)

                          {

                              e.printStackTrace();

                              return false;

                          }

                      }

                      else return false;

                  }

                  /********************

                   * 刪除文件

                   *******************/

                  public boolean delFile(String s)

                  {

                      sFilePath = s;

                      sFilePath = sFilePath.toString();

                      File dFile = new File(sFilePath);

                      if(dFile.exists())

                      {

                          try

                          {   

                              dFile.delete();

                              return true;

                          }catch(Exception e)

                          {

                              e.printStackTrace();

                              return false;

                          }

                      }

                      else

                      {

                          System.out.print("文件:" + s + "不存在!");

                          return false;

                      }

                  }

                  /********************

                   * 復制文件

                   *******************/

                  public boolean copyFile(String s1,String s2)

                  {

                      int bytesum=0;

                      int byteread=0;

                      //file:讀到流中

                      try

                      {

                          InputStream inStream=new FileInputStream(s1);

                          FileOutputStream fs=new FileOutputStream(s2);

                          byte[]  buffer =new  byte[1444];

                          while ((byteread=inStream.read(buffer))!=-1)

                          {

                             System.out.println("--  "+byteread+" --");

                             bytesum+=byteread;

                             System.out.println(bytesum);

                             fs.write(buffer,0,byteread);

                          }

                          inStream.close();

                          fs.close();

                          return true;

                      }catch(Exception e)

                      {     

                          return false;

                          }

                  }

                  /********************

                   * 復制文件夾

                   *******************/

                  public boolean copyFolder(String s1,String s2)

                  {

                  try{

                      (new File(s2)).mkdirs();

                      File[] file=(new File(s1)).listFiles();

                      for(int i=0;i<file.length;i++)

                      {

                          if(file[i].isFile()){

                              file[i].toString();

                              FileInputStream input=new FileInputStream(file[i]);

                              FileOutputStream output=new FileOutputStream(s2+"/"+(file[i].getName()).toString());

                              byte[] b=new byte[1024*5];

                              int len;

                              while((len=input.read(b))!=-1){

                                  output.write(b,0,len);

                              }

                              output.flush();

                              output.close();

                              input.close();

                          }

                      }

                      return true;

                   }catch(IOException e){

                       e.printStackTrace();

                       return false;

                       }

                  }

                  /********************

                   * 得到文本文件的內容

                   *******************/

                  public String getFile(String s1)

                  {

                  try{

                      StringBuffer sb = new StringBuffer();

                      BufferedReader in = new BufferedReader(new FileReader(s1));

                      while(in.readLine()!=null){

                          sb.append(in.readLine()+"\n\r");

                      }

                      return sb.toString();

                   }catch(IOException e){

                       e.printStackTrace();

                       return null;

                       }

                  }

              /**

               * @param args

               */

              public static void main(String[] args) {

                  // TODO 自動生成方法存根

                  String s1="";

                  String s2="";

                  FileClass file1 = new FileClass();

                  //目錄創建測試

                  s2="F:/Test/Test1";

                  if (file1.newFolder(s2))

                      System.out.println("創建目錄 " + s2 + " 成功!");

                  else

                      System.out.println("創建目錄 " + s2 + " 失敗!!");

                  //文件創建測試

                  s1="F:/Test/Test1/Test.txt";

                  s2="這是一個測試文件!";

                  file1.delFile(s1);

                  if (file1.newFile(s1,s2))

                      System.out.println("創建文件 " + s1 + " 成功!");

                  else

                      System.out.println("創建文件 " + s1 + " 失敗!!");

                  System.out.print("\n"+s2);

                  //文件刪除測試

                  s1="F:/Test/Test1/Test.txt";

                  if (file1.delFile(s1))

                      System.out.println("刪除文件 " + s1 + " 成功!");

                  else

                      System.out.println("刪除文件 " + s1 + " 失敗!!");

                  //復制文件測試

                  s1="F:/Test/Test1/Test.txt";

                  s2="F:/Test/Test1/Test1.txt";

                  if (file1.copyFile(s1,s2))

                      System.out.print("把文件 "+s1+"成功復制到 "+s2);

                  else System.out.print("復制文件失敗!");

                  //復制目錄測試

                  s1="F:/Test/Test1";

                  s2="F:/Test/Test2";

                  if (file1.copyFolder(s1,s2))

                      System.out.print("把文件夾 "+s1+" 成功復制到文件夾 "+s2);

                  else System.out.print("復制文件夾失敗!");

                  //得到文件內容測試

                  System.out.print(file1.getFile("F:/Test/Test1/Test1.txt"));

                  }

          }



          沒有所謂的命運,只有不同的選擇!
          主站蜘蛛池模板: 汕头市| 安图县| 壤塘县| 尚志市| 贵定县| 武鸣县| 鹿泉市| 临安市| 无为县| 习水县| 镇巴县| 林西县| 宣城市| 扎鲁特旗| 雅安市| 贵阳市| 凤庆县| 三亚市| 乐平市| 泰安市| 永济市| 托里县| 唐河县| 宿州市| 固原市| 榆林市| 瑞安市| 故城县| 鲁山县| 盘锦市| 东台市| 通道| 赤壁市| 长阳| 赣榆县| 东兴市| 绥德县| 木里| 万宁市| 祥云县| 新竹县|