我写的一个用jsp连接SQLServer数据库的代码。 我写的一个用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 * (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")+"
"); } rs.close(); stmt.close(); conn.close(); %> 第二种方式,用JavaBean来实现。请看代码: DBConnSql.java 编译以后的Class文件应该放在 WEB-INF\classes\conn目录下。 程序代码 * ******* java连接SQL Server数据库代码 ************* ******* 使用Jdbc连接 ************* * * 作者:梦想年华 * Email:fanwsp@126.com * HomePage:http://wsp.hniuca.net * 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 ************ * (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 文件源代码如下: 程序代码 <%@ 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(); %>