JSP连接SQLServer数据库.doc
JSP连接SQLServer数据库日期:2007-04-02字体大小: 小 中 大我写的一个用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 * 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")+"<br>"); rs.close(); stmt.close(); conn.close(); %>第二种方式,用JavaBean来实现。请看代码:DBConnSql.java编译以后的Class文件应该放在WEB-INFclassesconn目录下。程序代码* * java连接SQL Server数据库代码 * * 使用Jdbc连接 * * * 作者:梦想年华 * Email:fanwsp * 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 文件源代码如下:程序代码<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();%>