作者:梦想年华 日期:2006-09-25
我写的一个用jsp连接SQLServer数据库的代码。
要正确的使用这段代码,你需要首先在SQLServer数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数据。
欢迎各位提出改进的意见。
以下用两种方式来实现jsp连接SQLServer数据库。
第一种JSP形式。
程序代码
第二种方式,用JavaBean来实现。请看代码:
DBConnSql.java
编译以后的Class文件应该放在 WEB-INF/classes/conn目录下。
程序代码
这个文件只是实现了数据库的连接,下面我们再写一个测试文件。
就是用sql语句从数据库里查询出记录,以验证我们数据库的连接是否成功。
connsql.jsp 文件源代码如下:
程序代码
要正确的使用这段代码,你需要首先在SQLServer数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数据。
欢迎各位提出改进的意见。
以下用两种方式来实现jsp连接SQLServer数据库。
第一种JSP形式。
![程序代码](http://www.freeage.cn/images/code.gif)
<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 ( ) ;
% >
< %@ 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目录下。
![程序代码](http://www.freeage.cn/images/code.gif)
[color=#008080]/*
******* 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 ( ) ;
}
}
}[/color]
******* 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 ( ) ;
}
}
}[/color]
这个文件只是实现了数据库的连接,下面我们再写一个测试文件。
就是用sql语句从数据库里查询出记录,以验证我们数据库的连接是否成功。
connsql.jsp 文件源代码如下:
![程序代码](http://www.freeage.cn/images/code.gif)
[color=#0000ff]<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();
% >
[/color]
< %@ 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();
% >
[/color]