Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1165802
  • 博文数量: 1310
  • 博客积分: 3980
  • 博客等级: 中校
  • 技术积分: 8005
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-09 22:05
文章分类

全部博文(1310)

文章存档

2011年(1)

2008年(1309)

我的朋友

分类:

2008-05-24 08:29:45

我写的一个用jsp连接SQLServer数据库的代码。
要正确的使用这段代码,你需要首先在SQLServer数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数据。
欢迎各位提出改进的意见。
以下用两种方式来实现jsp连接SQLServer数据库。
第一种JSP形式。
程序代码 程序代码

<%@ 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  
      *            ()                                 *
      *    在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")+"
");
    }
    rs.close();
    stmt.close();
    conn.close();
    
%>

第二种方式,用JavaBean来实现。请看代码:
DBConnSql.java
编译以后的Class文件应该放在 WEB-INF\classes\conn目录下。
程序代码 程序代码
*
 *******  java连接SQL Server数据库代码  *************
 *******          使用Jdbc连接          *************
 *
 *    作者:梦想年华
 *    Email:fanwsp@126.com
 *    HomePage:
 *     CopyRight(c)2005-2006 by DreamTime 
 *
*/

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   ************
      *        ()
      *        在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 文件源代码如下:
程序代码 程序代码

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

<% 
    /*****  说明:本数据库连接一共提供了三种方法:
      一、用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")+"
");
    }
    rs.close();
    stmt.close();
    conn.close();
    //DBConn.close();
%>
阅读(306) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~