仓酷云
标题:
JAVA网页编程之sqlserver 2000h 和 jdbc 的交融成绩
[打印本页]
作者:
仓酷云
时间:
2015-1-18 11:22
标题:
JAVA网页编程之sqlserver 2000h 和 jdbc 的交融成绩
在性能方面,在windows平台下,.net可能是占强项,要是把.net放在sun开发的操作系统上去运行呢?根本就运行不了,.net对其它操作系统的支持也很弱,性能也可能比不上java。server|sqlserver|成绩sqlserver2000是现今收集编程中利用的对照多的一个数据库体系,而java则是盛行的收集编程言语,在收集编程中触及的对照多也对照主要的就是数据库成绩,java本身供应了对各种支流数据库体系的撑持,经由过程供应java.sql库,供应了一个一致的接口,使得能够在java情况下不用对程序作年夜范围的修正,只需变动响应的驱动程序,便可完成对各种数据库的操纵,从而进步软件的保存周期和下降软件的开辟本钱和保护用度,在这类情形下sqlserver2000和java的交融成绩就显得对照主要了,本文扼要地论述一下sqlserver2000和jdk的交融成绩。
体系需求:
数据库:sqlserver2000sp3
驱动程序:sqlserverdriverforjdbc
java版本:jdk1.2以上
1:我们起首利用jdbc-odbc桥来完成数据库的毗连,这个绝对复杂
起首利用sqlserver企业办理其创建一个数据库test,并创建一个复杂的表first_table
创建odbc数据源,各步骤接纳默许操纵便可
编写一个复杂的测试程序,该程序次要完成数据库的毗连,和一个复杂的sql操纵,代码以下:
/***********************************************
/*
/*DbTest.java
/*
/********************************************/
importjava.sql.*;
publicclassDbTest{
Connectioncon;
Statementsta;
ResultSetrs;
Stringdriver;
Stringurl;
Stringuser;
Stringpwd;
publicDbTest()
{
driver="sun.jdbc.odbc.JdbcOdbcDriver";
url="jdbc:odbc:store_manager";
user="share";
pwd="share";
init();
}
publicvoidinit()
{
try{
Class.forName(driver);
System.out.println("driverisok");
con=DriverManager.getConnection(url,user,pwd);
System.out.println("conectionisok");
sta=con.createStatement();
rs=sta.executeQuery("select*fromroom");
while(rs.next())
System.out.println(rs.getInt("roomNum"));
}catch(Exceptione)
{
e.printStackTrace();
}
}
publicstaticvoidmain(Stringargs[])//本人交换[]
{
newDbTest();
}
}
运转了局以下:
driverisok
conectionisok
1001
1002
1003
1004
1005
1006
Pressanykeytocontinue...
顺遂经由过程测试
2,我们此次欠亨过odbc桥来操纵数据库,我们接纳sqlserverdriver来完成对sqlserver数据库的操纵,这将是我们这篇文章的重点,由于jdbc-odbc桥是一种罕见的操纵windows体系数据库的经常使用办法,但它存在的弱点良多,以是如今良多开辟者都偏重于利用sqlserverdriver来操纵,在这里我们经由过程一步步的调试,来加深读者对这类毗连的了解
在一般的了解下,只需我们装了sqlserverdriverforjdbc我们即可举行数据库编程,现实则否则,起首我们看下边的代码:
/***********************************************
/*
/*DbTest.java
/*
/********************************************/
importjava.sql.*;
publicclassDbTest{
Connectioncon;
Statementsta;
ResultSetrs;
Stringdriver;
Stringurl;
Stringuser;
Stringpwd;
publicDbTest()
{
driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";;
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=StoreManager";
user="sa";
pwd="potsmart10";
init();
}
publicvoidinit()
{
try{
Class.forName(driver);
System.out.println("driverisok");
con=DriverManager.getConnection(url,user,pwd);
System.out.println("conectionisok");
sta=con.createStatement();
rs=sta.executeQuery("select*fromroom");
while(rs.next())
System.out.println(rs.getInt("roomNum"));
}catch(Exceptione)
{
e.printStackTrace();
}
}
publicstaticvoidmain(Stringargs[])//本人交换[]
{
newDbTest();
}
}
这段代码跟上变得代码是一样的,不同在于驱动,另有url,这是在利用sqlserverdriverforjdbc中碰到的狐疑
按事理讲,上边这段代码应当没错,可起首我们来看一下,假如sqlser服务器没有晋级到sp3(在利用jdbc时,假如体系是xp大概2003务需要把sqlserver晋级到sp3,往上各处都有下的),我们看看运转了局
driverisok
java.sql.SQLException:[Microsoft][SQLServer2000DriverforJDBC]Errorestablis
hingsocket.
atcom.microsoft.jdbc.base.BaseExceptions.createException(UnknownSource
)
atcom.microsoft.jdbc.base.BaseExceptions.getException(UnknownSource)
atcom.microsoft.jdbc.base.BaseExceptions.getException(UnknownSource)
atcom.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(UnknownSource)
atcom.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(UnknownSou
rce)
atcom.microsoft.jdbc.base.BaseConnection.getNewImplConnection(UnknownS
ource)
atcom.microsoft.jdbc.base.BaseConnection.open(UnknownSource)
atcom.microsoft.jdbc.base.BaseDriver.connect(UnknownSource)
atjava.sql.DriverManager.getConnection(DriverManager.java:523)
atjava.sql.DriverManager.getConnection(DriverManager.java:171)
atDbTest.init(DbTest.java:32)
atDbTest.<init>(DbTest.java:25)
atDbTest.main(DbTest.java:46)
Pressanykeytocontinue...
呈现上边毛病的次要缘故原由是默许的数据库服务器端口1433没有翻开,没法间接毗连。
假如晋级到sp3则这个成绩能够结决,我们再来看看晋级以后,程序运转的了局
driverisok
conectionisok
java.sql.SQLException:[Microsoft][SQLServer2000DriverforJDBC][SQLServer]对
象名room有效。
atcom.microsoft.jdbc.base.BaseExceptions.createException(UnknownSource
)
atcom.microsoft.jdbc.base.BaseExceptions.getException(UnknownSource)
atcom.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown
Source)
atcom.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown
Source)
atcom.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(
UnknownSource)
atcom.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(UnknownSour
ce)
atcom.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType
(UnknownSource)
atcom.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown
Source)
atcom.microsoft.jdbc.base.BaseStatement.postImplExecu
te(UnknownSource)
atcom.microsoft.jdbc.base.BaseStatement.commonExecute(UnknownSource)
atcom.microsoft.jdbc.base.BaseStatement.executeQueryInternal(UnknownSo
urce)
atcom.microsoft.jdbc.base.BaseStatement.executeQuery(UnknownSource)
atDbTest.init(DbTest.java:35)
atDbTest.<init>(DbTest.java:25)
atDbTest.main(DbTest.java:46)
Pressanykeytocontinue...
在这儿,用户已上岸上往,可是却不克不及会见里边的数据表,呈现这个成绩的缘故原由在于sa用户为体系用户
它固然可以上岸数据库,可是storeManager数据库里边却没有这个用户的会见权限,以是,我们如今为这个数据库从头创建一个用户
share,创建历程以下:在storeManager数据库当选重用户---〉新建用户--〉称号选择(这一步中有两个关头点1:身份考证选sql身份考证,默许数据库选StoreManager)-〉创建新教色share,此时变动程序,将用户上岸名和暗码修正一下,从头运转程序
driverisok
conectionisok
1001
1002
1003
1004
1005
1006
Pressanykeytocontinue...
此次顺遂经由过程测试
总结:sqlserve和jdbc的交融成绩,关头触及到sp3补钉(端口开放)另有用户成绩,办理这两个成绩以后,残剩的即是sqlserver操纵成绩了,另有一点在远程操纵的时分,要把sqlserver组设置一下,在平安性里边亦将身份考证变动为sqlserve考证便可
JAVA学习必须明确这是一项投资,对于大多数的人来说,学习JAVA是为了就业,还有就是刚走向工作位置的朋友想尽快赶上工作的节奏。
作者:
柔情似水
时间:
2015-1-20 22:01
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
作者:
小女巫
时间:
2015-1-27 12:35
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
作者:
爱飞
时间:
2015-2-5 05:13
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
作者:
第二个灵魂
时间:
2015-2-5 21:19
Java是一种计算机编程语言,拥有跨平台、面向对java
作者:
小魔女
时间:
2015-2-7 13:39
Java是一种计算机编程语言,拥有跨平台、面向对java
作者:
灵魂腐蚀
时间:
2015-2-8 15:34
是一种突破用户端机器环境和CPU
作者:
乐观
时间:
2015-2-17 13:58
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
作者:
山那边是海
时间:
2015-3-5 19:38
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
作者:
莫相离
时间:
2015-3-12 12:13
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
作者:
蒙在股里
时间:
2015-3-19 22:05
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
作者:
谁可相欹
时间:
2015-4-3 22:44
是一种使用者不需花费很多时间学习的语言
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2