使用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... 选中驱动包然后确定就行了
因篇幅问题不能全部显示,请点此查看更多更全内容