您的当前位置:首页正文

JSP中使用JDBC连接SQL_Server_2005

2020-10-24 来源:易榕旅网


使用JDBC连接SQL Server 2005

接触Java或者JSP,难免会使用到数据库SQL Server 2000/2005(我使用2005标准版[9.0.3054]测试),经过自己的搜索和研究,使用JDBC连接SQL Server成功,特此整理方法(使用Eclipse 3.2)如下。

准备工作

首先,操作系统中安装好SQL Server 2000/2005,如果系统中都装有2000和2005版,记得停用一个,只开一个行了。

然后,到微软网站下载Microsoft SQL Server 2005 JDBC Driver 1.1 或更高版本。

解压sqljdbc_1.1.1501.101_chs.exe,把sqljdbc_1.1复制到%ProgramFiles%(如果系统在C盘则为C:\\Program Files)。

设置 Classpath

JDBC 驱动程序并未包含在 Java SDK 中。因此,如果要使用该驱动程序,必须将 classpath 设置为包含 sqljdbc.jar 文件。如果 classpath 缺少 sqljdbc.jar 项,应用程序将引发“找不到类”的常见异常。 sqljdbc.jar 文件的安装位置如下:

<安装目录>\\sqljdbc_<版本>\\<语言>\\sqljdbc.jar

下面是用于 Windows 应用程序的 CLASSPATH 语句实例:

CLASSPATH =.;%ProgramFiles%\\sqljdbc_1.1\\chs\\sqljdbc.jar

下面是用于 Unix/Linux 应用程序的 CLASSPATH 语句实例:

CLASSPATH =.:/home/usr1/mssqlserver2005jdbc/Driver/sqljdbc_1.1/chs/sqljdbc.jar

注意: 在 Window 系统中,如果目录名长于 8.3 或文件夹名中包含空格,将导致 classpath 出现问题。如果怀疑存在这类问题,应暂时将 sqljdbc.jar 文件移动到名称简单的目录中,例如 C:\\Temp,更改 classpath,然后测试这样是否解决了问题。

直接在命令提示符运行的应用程序

在操作系统中配置 classpath。将 sqljdbc.jar 追加到系统的 classpath 中。或者,使用 java -classpath 选项,可以在运行此应用程序的 Java 命令行上指定 classpath。

设置SQL Server服务器

我使用的是SQL Server 2005标准版SP2,这些都默认即可,一般不用配置。如果需要配置端口请看下面。

1、“开始”→“程序”→“Microsoft SQL Server 2005”→“配置工具”→“SQL Server 配置管理器”→“SQL Server 2005 网络配置”→“MSSQLSERVER 的协议”

2、如果“TCP/IP”没有启用,右键单击选择“启动”。

3、双击“TCP/IP”进入属性设置,在“IP 地址”里,可以配置“IPAll”中的“TCP 端口”,默认为1433。

4、重新启动SQL Server或者重启计算机。

创建数据库

打开“SQL Server Management Studio”,登录连接SQL Server服务器,新建数据库,命名为test

在Eclipse中测试

1、打开Eclipse,“文件”→“新建”→“项目”→“Java 项目”,项目名为Test

2、在Eclipse中,选择“窗口”→“首选项...”→“Java”→“已安装的 JRE”,选择已安装的 JRE,点击“编辑”→“添加外部”,选择%ProgramFiles%\\

sqljdbc_1.1\\chs\\sqljdbc.jar

3、在Test项目的“JRE 系统库”中可以看见sqljdbc.jar,如果没有可以右键

单击项目Test→“构建路径”→“配置构建路径...”→“Java 构建路径”→“库”→“添加外部 JAR...”,选择%ProgramFiles%\\sqljdbc_1.1\\chs\\sql

jdbc.jar

4、编写Java代码,如下:

import java.sql.*; public class Test {

public static void main(String[] srg) {

String driverName = \"com.microsoft.sqlserver.jdbc.SQLServerDriver\"; //加载JDBC驱动

String dbURL = \"jdbc:sqlserver://localhost:1433; DatabaseName=test\"; //连接服务器和数据库test String userName = \"sa\"; //默认用户名 String userPwd = \"123456\"; //密码 Connection dbConn; try {

Class.forName(driverName);

dbConn = DriverManager.getConnection(dbURL, userName, userPwd);

System.out.println(\"Connection Successful!\"); //如果连接成功 控制台输出Connection Successful! } catch (Exception e) { e.printStackTrace(); } } }

注:

1、因为SQL Express这个版本的服务器默认是禁用的并且端口号没有配置,所以要进行重新设置

2、如果你以前用Java连接SQL Server 2000的话就要注意了: 在SQL Server 2000 中加载驱动和URL路径的语句是

String driverName = \"com.microsoft.jdbc.sqlserver.SQLServerDriver\";

String dbURL = \"jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sample\";

而SQL Server 2005 中加载驱动和URL的语句则为

String driverName = \"com.microsoft.sqlserver.jdbc.SQLServerDriver\";

String dbURL = \"jdbc:sqlserver://localhost:1433; DatabaseName=sample\";

如果写法错误将会找不到驱动。

秋忆:对于Microsoft SQL Server 2005 JDBC Driver 1.1,据我看官方文档就没有提及2000与2005的差别,相信都是按照2005的语句写法,我没有测试2000,如果朋友你测试到不一样请告诉我,谢谢!

其它参考资料: http://dev.csdn.net/author/yeno/3f06bf19b1c147198e00afa0af6bd0dc.html http://www.baidu.com/s?wd=JDBC+for+SQL+Server+2005&cl=3

package jdbc; 2

3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.sql.Statement; 8

public class Test { 9

private Connection conn = null; 1 0

public Test() { 1

1 super(); 1 } 2

public void getConnection() { 1

3 try { 1 Class

.forName(\"com.microsoft.sqlserver.jdbc.SQLServerDriver\") 4

.newInstance(); 1

5 String URL = \"jdbc:sqlserver://localhost:1433;DatabaseName=testDB\"; String USER = \"sa\"; // 根据你自己设置的数据库连接用户进行设置 1

String PASSWORD = \"123\"; // 根据你自己设置的数据库连接密码进行设置 6

conn = DriverManager.getConnection(URL, USER, PASSWORD); 1

} catch (java.lang.ClassNotFoundException ce) { 7

System.out.println(\"Get Connection error:\"); 1

ce.printStackTrace(); 8

} catch (java.sql.SQLException se) { 1

System.out.println(\"Get Connection error:\"); 9

se.printStackTrace(); 2

} catch (Exception e) { 0

System.out.println(\"Get Connection error:\"); 2

e.printStackTrace(); 1 2 } 2 } 2

public void testConnection() { 3

if (conn == null) 2

this.getConnection(); 4

2 try {

String sql = \"SELECT * FROM user\"; 5

Statement stmt = conn.createStatement(); 2

ResultSet rs = stmt.executeQuery(sql); 6

while (rs.next()) { 2

System.out.print(rs.getString(\"ID\")+\" \"); 7

System.out.print(rs.getString(\"Name\")+\" \"); 2

System.out.println(rs.getString(\"Email\")); 8 2 }

rs.close(); 9

stmt.close(); 3

} catch (SQLException e) { 0

System.out.println(e.getMessage()); 3

e.printStackTrace(); 1

3 } finally { if (conn != null) 2

3 try {

conn.close(); 3

} catch (SQLException e) { 3

4 } 3 } 5 }

public static void main(String[] args) { 3

Test bean = new Test(); 6

bean.testConnection(); 37 } 3} 8 39 40 41 42

43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

65 66

在jsp页面把Java代码写在<%%>中,就像在Java类中写代码一样。 1.首先你应该先建立jdbc与数据的的链接,有两种方式我给你发的例子中有两个jdbc。那就是链接数据库的java类。你只需把里面的代码,拷贝到jsp中。 jdbc链接数据库的代码 public

static

Connection

getConnection()

throws

ClassNotFoundException, SQLException { //加载驱动

Class.forName(\"com.ibm.db2.jcc.DB2Driver\").newInstance(); String url=\"jdbc:db2://192.168.1.104:50000/database\"; String user=\"name\";

String password=\"password\"; Connection

DriverManager.getConnection(url,user,password); return conn; }

conn=

把driver,url,username和password换成你的数据库驱动就可以了

链接任何的数据库都只改这个就行了。哈哈 验证的那段代码

public UserInfo loginInfo(UserInfo userInfo) { UserInfo user = null;

MyJdbc jdbc = new MyJdbc();

String sql = \"select * from userInfo where user_name='\" + userInfo.getUserName() + \"'\"; jdbc.openConn();

ResultSet rs = jdbc.excuteQuery(sql); try {

if (rs.next()) {

String userPass = rs.getString(\"user_pass\"); if (userInfo.getUserPass().equals(userPass)) { user = new UserInfo();

user.setUserAddress(rs.getString(\"user_address\")); user.setUserAnswer(rs.getString(\"user_answer\"));

user.setUserCity(rs.getString(\"user_city\")); user.setUserEmail(rs.getString(\"user_email\")); user.setUserId(rs.getInt(\"user_id\"));

user.setUserName(rs.getString(\"user_name\")); user.setUserPass(rs.getString(\"user_pass\")); user.setUserPhone(rs.getString(\"user_phone\")); user.setUserPost(rs.getInt(\"user_post\")); user.setUserQq(rs.getInt(\"user_qq\"));

user.setUserQuestion(rs.getString(\"user_question\")); user.setUserRealName(rs.getString(\"user_realName\")); user.setUserSex(rs.getString(\"user_sex\")); } }

} catch (SQLException e) {

// TODO Auto-generated catch block e.printStackTrace(); }

jdbc.closeStAndConn();

return user; }

你只需把这两段代码看明白了,引入到你的jsp页面就行了。 注意有个sql漏洞,哈哈使用另一种jdbc链接也可以避免这种漏洞就是sql语句有?的那种的可以避免sql漏洞

有些东西总是自己要尝试着做,我如果写的你直接能用,对你的学习也不利

给你发了个用jsp做的小例子,实在不明白就看看,不过可没你的登录验证噢

只是告诉你jsp页面跟数据库怎样建立连接

JSP使用JDBC连接SQL Server 2005数据库的代码示例

2011-08-02 13:44 佚名 火魔网 我要评论(0) 字号:T | T

本文主要介绍了JSP使用JDBC连接SQL Server 2005数据库的代码示例,对于初学者来说这段代码可以套用,只需要稍作修改即可,希望能够对您有所帮助。

AD:

在用JSP开发应用程序时,JSP对数据库的操作是通过JDBC来实现的,本文我们给出了JSP通过JDBC连接SQL Server 2005数据库的代码示例,包括java代码和JSP的代码,对于初学者来说可以直接套用这段代码,即可成功连接数据库。接下来我们就开始介绍。

1.下载SqlSer2005 JDBC Driver,解压,将sqljdbc.jar加入CLASSPATH环境变量。 2.开启Sql server服务,检查SERVER和Client端协议中Tcp/ip是否已启用。 java code:

        

import java.sql.*; public class JdbcDriver {

public static void main(String[] srg) { String

//加载JDBC驱动 String

dbURL

=

\"jdbc:sqlserver://localhost:1433;

driverName

=

\"com.microsoft.sqlserver.jdbc.SQLServerDriver\";

DatabaseName=xq_sql\"; 

 //连接服务器和数据库sample 

 String userName = \"sa\"; 

 //默认用户名 

 String userPwd = \"1234\"; 

 //密码 

 String sql=\" SELECT * FROM xq_mem\"; 

 Connection dbConn; 

 Statement state=null; 

 ResultSet rs=null;

  try{ 

 Class.forName(driverName); 

 dbConn = DriverManager.getConnection(dbURL, userName, userPwd); 

 // it works well.. 

 //dbConn = DriverManager.getConnection(dbURL); 

 // doesn't work! 

 state=dbConn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); 

 System.out.println( \"Connection SQL Server 2005 Successful! \"); 

 //如果连接成功 控制台输出Connection 

 Successful! 

 rs=state.executeQuery(sql); 

 while(rs.next()){ 

 String id=rs.getString(1); 

 String username=rs.getString(2); 

 System.out.print(id+\" \"); 

 System.out.print(username+\"\\n\"); 

 }catch(Exception e){ 

 e.printStackTrace(); }   }

如果用JSP连接,把sqljdbc.jar拷到tomcat的lib目录下,重启tomcat。 jsp code:

 <%@ page contentType=\"text/html;charset=gb2312\"%>



 <%@ page import=\"java.sql.*\"%> 

 

   <% 

 Class.forName(\"com.microsoft.sqlserver.jdbc.SQLServerDriver\"); 

 Connection

ql;user=sa;password=1234\"); 

 Statement

stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 

 String sql=\"select * from xq_mem\"; ResultSet rs=stmt.executeQuery(sql); 

 while(rs.next()){%> 第一个字段:<%=rs.getString(1)%> 第二个字段:<%=rs.getString(2)%>  
  <%   }   %> 

 <%out.print(\"数据库操作成功\");%> 

 <%rs.close(); stmt.close(); conn.close();   %> 

 



conn=

DriverManager.getConnection(\"jdbc:sqlserver://localhost;DatabaseName=xq_s

关于JSP使用JDBC连接SQL Server 2005数据库的知识就介绍到这里了,希望本次的介绍能够带给您一些收获!

浅谈JSP JDBC来连接SQL Server 2005的方法

2009-09-10 09:40:43 来源:网络 评论:0 点击:2077

一、下载安装 一、下载安装

1、SQL Server 2005 Express Edition

下载:http://msdn.microsoft.com/vstudio/express/sql/download/ 安装完数据库后设置ICP/IP协议启动,具体如下: (1)打开SQL Server Configuration Manager

(2)转到SQL Server 2005 Network Configuration->Protocols for SQLEXPRESS (3)将TCP/IP设置为Enabled(启用) (4)双击TCP/IP项,转到IP Addresses页 (5)IP All中设置TCP Port为1433 (6)重新启动服务

2、SQL Server2005数据库JSP JDBC驱动

1.0.809.102_chs.exe

安装或者解压,取得sqljdbc.jar文件,该文件即为JDBC驱动。将sqljdbc.jar放到classpath。(web application中放在WEB-INF/lib下) 二、连接数据库SQL Server2005的Java代码 1、在tempdb中创建测试数据表格 use tempdb

CREATE TABLE dbo.Table_1 (

ID bigint NOT NULL,

NAME varchar(20) NOT NULL, EMAIL varchar(50) NULL ) ON [PRIMARY] 2、测试使用数据库连接

下面代码创建了一个连接到数据库的连接,及使用连接操作数据库。 package cn.afss.common.web.test;

下载:

http://download.microsoft.com/download/1/c/a/1cae7cc0-c010-4e0c-b1b8-7915360ee0b9/sqljdbc_

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement;

import org.apache.log4j.Logger;

public class TestConnSql2k5Bean {

private static final Logger logger = Logger.getLogger(TestConnSql2k5Bean.class); private Connection conn = null;

public TestConnSql2k5Bean() { super(); }

public void getConnection() { try { Class

.forName(\"com.microsoft.SQL Server.jdbc.SQL ServerDriver\") .newInstance();

String URL = \"jdbc:SQL Server://localhost:1433;DatabaseName=tempdb\"; String USER = \"sa\"; // 根据你自己设置的数据库连接用户进行设置

String PASSWORD = \"123456\"; // 根据你自己设置的数据库连接密码进行设置 conn = DriverManager.getConnection(URL, USER, PASSWORD); } catch (java.lang.ClassNotFoundException ce) { logger.error(\"Get Connection error:\ ce); } catch (java.sql.SQLException se) { logger.error(\"Get Connection error:\ se); } catch (Exception e) {

logger.error(\"Get Connection error:\ e); } }

public void testConnection() { if (conn == null) this.getConnection();

try {

String sql = \"SELECT * FROM TABLE_1\"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) {

logger.debug(rs.getString(\"ID\")); logger.debug(rs.getString(\"NAME\")); logger.debug(rs.getString(\"EMAIL\")); } rs.close(); stmt.close();

} catch (SQLException e) { logger.error(e.getMessage(), e); } finally {

if (conn != null) try { conn.close();

} catch (SQLException e) { } } }

public static void main(String[] args) {

TestConnSql2k5Bean bean = new TestConnSql2k5Bean(); bean.testConnection(); } }

三、SQL Server2000和2005的连接代码区别 写连接代码时需要注意2000和2005的不同: 1、JSP JDBC连接SQL Server2000

Class.forName(\"com.microsoft.jdbc.SQL Server.SQL ServerDriver\").newInstance(); URL = \"jdbc:microsoft:SQL Server://localhost:1433;DatabaseName=tempdb\"; 2、JSP JDBC连接SQL Server2005

Class.forName(\"com.microsoft.SQL Server.jdbc.SQL ServerDriver\").newInstance(); URL = \"jdbc:SQL Server://localhost:1433;DatabaseName=tempdb\";

import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class ConnectionManager {

private static String Driver_Class = \"com.microsoft.sqlserver.jdbc.SQLServerDriver\"; //驱动类连接字符串

private static String Database_Url =\"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=数据库名称\"; //url

private static String Database_User = \"sa\"; //数据库用户名 private static String Database_password = \"sa\"; //密码

/**

* 获得数据库连接,返回连接对象 * @return connection

*/

public static Connection getConnection(){ Connection connection = null; try {

Class.forName(Driver_Class);

connection = DriverManager.getConnection(Database_Url); } catch (ClassNotFoundException e) { e.printStackTrace();

} catch (SQLException e) { e.printStackTrace(); }

return connection; } /**

* 关闭连接

* @param rs 结果集对象

* @param pStatement PreparedStatement 对象 * @param connection 连接对象 */

public static void closeAll(ResultSet rs, PreparedStatement pStatement, Connection connection){ try { if(rs!=null){ rs.close(); rs = null; }

if(pStatement!=null){ pStatement.close(); pStatement = null; }

if(connection!=null){ connection.close(); connection = null; }

}catch (SQLException e) {

e.printStackTrace(); } } }

链接sqlserver 需要启动sqlserver 服务 mcrosoft sqlserver 2005-->配置工具-->

sql server configuration manager -->sql server 网络配置-->MSSQLSERVER-->TCP/IP 将协议中已起用改为是 TCP 端口输入1433 已起用改为是

程序中右击 选择属性(properties-->java build path 选择 librares 选择 add external jars... 选中驱动包然后确定就行了

因篇幅问题不能全部显示,请点此查看更多更全内容