资源描述
使用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\sqljdbc.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,如果朋友你测试到不一样请告诉我,谢谢!
其它参考资料:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {
private Connection conn = null;
public Test() {
super();
}
public void getConnection() {
try {
Class
.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
.newInstance();
String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=testDB";
String USER = "sa"; // 根据你自己设置的数据库连接用户进行设置
String PASSWORD = "123"; // 根据你自己设置的数据库连接密码进行设置
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (java.lang.ClassNotFoundException ce) {
System.out.println("Get Connection error:");
ce.printStackTrace();
} catch (java.sql.SQLException se) {
System.out.println("Get Connection error:");
se.printStackTrace();
} catch (Exception e) {
System.out.println("Get Connection error:");
e.printStackTrace();
}
}
public void testConnection() {
if (conn == null)
this.getConnection();
try {
String sql = "SELECT * FROM user";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
System.out.print(rs.getString("ID")+" ");
System.out.print(rs.getString("Name")+" ");
System.out.println(rs.getString("Email"));
}
rs.close();
stmt.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
e.printStackTrace();
} finally {
if (conn != null)
try {
conn.close();
} catch (SQLException e) {
}
}
}
public static void main(String[] args) {
Test bean = new Test();
bean.testConnection();
}
}
在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 conn= DriverManager.getConnection(url,user,password);
return 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:
1 import java.sql.*; public class JdbcDriver {
2
3 public static void main(String[] srg) {
4
5 String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
6
7 //加载JDBC驱动
8
9 String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=xq_sql";
10
11 //连接服务器和数据库sample
12
13 String userName = "sa";
14
15 //默认用户名
16
17 String userPwd = "1234";
18
19 //密码
20
21 String sql=" SELECT * FROM xq_mem";
22
23 Connection dbConn;
24
25 Statement state=null;
26
27 ResultSet rs=null;
28
29 try{
30
31 Class.forName(driverName);
32
33 dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
34
35 // it works well..
36
37 //dbConn = DriverManager.getConnection(dbURL);
38
39 // doesn't work!
40
41 state=dbConn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
42
43 System.out.println( "Connection SQL Server 2005 Successful! ");
44
45 //如果连接成功 控制台输出Connection
46
47 Successful!
48
49 rs=state.executeQuery(sql);
50
51 while(rs.next()){
52
53 String id=rs.getString(1);
54
55 String username=rs.getString(2);
56
57 System.out.print(id+" ");
58
59 System.out.print(username+"\n");
60
61 }catch(Exception e){
62
63 e.printStackTrace(); }
64
65 }
如果用JSP连接,把sqljdbc.jar拷到tomcat的lib目录下,重启tomcat。
jsp code:
66 <%@ page contentType="text/html;charset=gb2312"%>
67
68 <%@ page import="java.sql.*"%>
69
70 <html>
71
72 <body>
73
74 <%
75
76 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
77
78 Connection conn= DriverManager.getConnection("jdbc:sqlserver://localhost;DatabaseName=xq_sql;user=sa;password=1234");
79
80 Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
81
82 String sql="select * from xq_mem"; ResultSet rs=stmt.executeQuery(sql);
83
84 while(rs.next()){%> 第一个字段:<%=rs.getString(1)%> 第二个字段:<%=rs.getString(2)%>
85
86 <br>
87
88 <%
89
90 }
91
92 %>
93
94 <%out.print("数据库操作成功");%>
95
96 <%rs.close(); stmt.close(); conn.close();
97
98 %>
99
100 </body>
101
102 </html>
关于JSP使用JDBC连接SQL Server 2005数据库的知识就介绍到这里了,希望本次的介绍能够带给您一些收获!
浅谈JSP JDBC来连接SQL Server 2005的方法
2009-09-10 09:40:43 来源:网络 评论:0 点击:2077
一、下载安装
一、下载安装
1、SQL Server 2005 Express Edition
下载:
安装完数据库后设置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驱动
下载:
安装或者解压,取得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 mon.web.test;
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...
选中驱动包然后确定就行了
展开阅读全文