`
阅读更多

第二种,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);

                 其它类此。

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

    //连接 <span lan

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics