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

Java资料

Posted on 2009-04-03 17:07 saobaolu 阅读(289) 评论(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"));

        }

}



没有所谓的命运,只有不同的选择!