我把sqljdbc.jar文件拷贝到Tomcat得lib之类的文件里,classpath也写了sqljdbc.jar的存放路径,可程序总是

我把sqljdbc.jar文件拷贝到Tomcat得lib之类的文件里,classpath也写了sqljdbc.jar的存放路径,可程序总是,第1张

jar包没有加到环境变量中,选中项目,用鼠标点击右键,选择“build path”,选择“configure bulid path” ,选择“libraries”点击“add jars”,找到jar的位置选择要加入的jar包即可。

URL当中用了integratedSecurity=true;就不能用SQLServer的用户名和密码登录了你去掉试试。详细看这里。blogcsdnnet/outofmemo/article/details/52549379

若要连接到远程服务器上的默认实例,请使用:

String url = "jdbc:sqlserver://MyServer:integratedSecurity=true;"

若要连接到服务器上的特定端口,请使用:

String url = "jdbc:sqlserver://Myserver:1533;integratedSecurity=true;"

若要连接到服务器上的指定实例,请使用:

String url = "jdbc:sqlserver://MyServer;instanceName=INSTANCE1;integratedSecurity=true;"

若要连接到服务器上的特定数据库,请使用:

String url = "jdbc:sqlserver://MyServer;database=AdventureWorks;integratedSecurity=true;"

注意类名及数据库的连接串 url

sql2000

commicrosoftjdbcsqlserverSQLServerDriver

jdbc:microsoft:sqlserver://<server>:<port>;DatabaseName=<database>

3个文件:

msbasejar

mssqlserverjar

msutiljar

sql2005及以后

commicrosoftsqlserverjdbcSQLServerDriver

jdbc:sqlserver://<server>:<port>;DatabaseName=<database>

1个文件:

sqljdbcjar 或者 sqljdbc4jar

创建一个以JDBC连接数据库的程序,包含7个步骤:

1、加载JDBC驱动程序:

在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过javalangClass类的静态方法forName(StringclassName)实现。

例如:

try{

//加载MySql的驱动类

ClassforName("commysqljdbcDriver");

}catch(e){

Systemoutprintln("找不到驱动程序类,加载驱动失败!");

e();

}

成功加载后,会将Driver类的实例注册到类中。

2、提供JDBC连接的URL

连接URL定义了连接数据库时的协议、子协议、数据源标识。

书写形式:协议:子协议:数据源标识

协议:在JDBC中总是以jdbc开始

子协议:是桥连接的驱动程序或是数据库管理系统名称。

数据源标识:标记找到数据库来源的地址与连接端口。

例如:(MySql的连接URL)

jdbc:mysql:

//localhost:3306/testuseUnicode=true&=gbk;

useUnicode=true:表示使用Unicode字符集。如果设置为

gb2312或GBK,本参数必须设置为true。=gbk:字符编码方式。

3、创建数据库的连接

要连接数据库,需要向javasql请求并获得Connection对象,该对象就代表一个数据库的连接。

使用的(Stringurl,Stringusername,Stringpassword)方法传入指定的欲连接的数据库的路径、数据库的用户名和

密码来获得。

例如:

//连接MySql数据库,用户名和密码都是root

Stringurl="jdbc:mysql://localhost:3306/test";

Stringusername="root";

Stringpassword="root";

try{

Connectioncon=

(url,username,password);

}catch(se){

Systemoutprintln("数据库连接失败!");

se();

}

4、创建一个Statement

61要执行SQL语句,必须获得javasqlStatement实例,Statement实例分为以下3

种类型:

1、执行静态SQL语句。通常通过Statement实例实现。

2、执行动态SQL语句。通常通过实例实现。

3、执行数据库存储过程。通常通过实例实现。

具体的实现方式:

Statementstmt=con();

PreparedStatementpstmt=conprepareStatement(sql);

CallableStatementcstmt=

conprepareCall("{CALLdemoSp(,)}");

5、执行SQL语句

Statement接口提供了三种执行SQL语句的方法:executeQuery、executeUpdate

和execute

1、ResultSetexecuteQuery(StringsqlString):执行查询数据库的SQL语句

,返回一个结果集(ResultSet)对象。

2、intexecuteUpdate(StringsqlString):用于执行INSERT、UPDATE或

DELETE语句以及SQLDDL语句,如:CREATETABLE和DROPTABLE等

3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的

语句。

具体实现的代码:

ResultSetrs=stmtexecuteQuery("SELECTFROM");

introws=stmtexecuteUpdate("INSERTINTO");

booleanflag=stmtexecute(Stringsql);

6、处理结果

两种情况:

1、执行更新返回的是本次 *** 作影响到的记录数。

2、执行查询返回的结果是一个ResultSet对象。

61ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些

行中数据的访问。

61使用结果集(ResultSet)对象的访问方法获取数据:

while(rsnext()){

Stringname=rsgetString("name");

Stringpass=rsgetString(1);//此方法比较高效

}

(列是从左到右编号的,并且从列1开始)

7、关闭JDBC对象

*** 作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声

明顺序相反:

1、关闭记录集

2、关闭声明

3、关闭连接对象

if(rs!=null){//关闭记录集

try{

rsclose();

}catch(SQLExceptione){

eprintStackTrace();

}

}

if(stmt!=null){//关闭声明

try{

stmtclose();

}catch(SQLExceptione){

eprintStackTrace();

}

}

if(conn!=null){//关闭连接对象

try{

connclose();

}catch(SQLExceptione){

eprintStackTrace();

}

}

创建一个以JDBC连接数据库的程序,包含7个步骤:

1、加载JDBC驱动程序:

在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),

这通过javalangClass类的静态方法forName(String className)实现。

例如:

try{

//加载MySql的驱动类

ClassforName("commysqljdbcDriver") ;

}catch(ClassNotFoundException e){

Systemoutprintln("找不到驱动程序类 ,加载驱动失败!");

eprintStackTrace() ;

}

成功加载后,会将Driver类的实例注册到DriverManager类中。

2、提供JDBC连接的URL

•连接URL定义了连接数据库时的协议、子协议、数据源标识。

•书写形式:协议:子协议:数据源标识

协议:在JDBC中总是以jdbc开始

子协议:是桥连接的驱动程序或是数据库管理系统名称。

数据源标识:标记找到数据库来源的地址与连接端口。

例如:(MySql的连接URL)

jdbc:mysql:

//localhost:3306/testuseUnicode=true&characterEncoding=gbk ;

useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为

gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。

3、创建数据库的连接

•要连接数据库,需要向javasqlDriverManager请求并获得Connection对象,

该对象就代表一个数据库的连接。

•使用DriverManager的getConnectin(String url , String username ,

String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和

密码来获得。

例如:

//连接MySql数据库,用户名和密码都是root

String url = "jdbc:mysql://localhost:3306/test" ;

String username = "root" ;

String password = "root" ;

try{

Connection con =

DriverManagergetConnection(url , username , password ) ;

}catch(SQLException se){

Systemoutprintln("数据库连接失败!");

seprintStackTrace() ;

}

4、创建一个Statement

•要执行SQL语句,必须获得javasqlStatement实例,Statement实例分为以下3

种类型:

1、执行静态SQL语句。通常通过Statement实例实现。

2、执行动态SQL语句。通常通过PreparedStatement实例实现。

3、执行数据库存储过程。通常通过CallableStatement实例实现。

具体的实现方式:

Statement stmt = concreateStatement() ;

PreparedStatement pstmt = conprepareStatement(sql) ;

CallableStatement cstmt =

conprepareCall("{CALL demoSp( , )}") ;

5、执行SQL语句

Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate

和execute

1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句

,返回一个结果集(ResultSet)对象。

2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或

DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等

3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的

语句。

具体实现的代码:

ResultSet rs = stmtexecuteQuery("SELECT FROM ") ;

int rows = stmtexecuteUpdate("INSERT INTO ") ;

boolean flag = stmtexecute(String sql) ;

6、处理结果

两种情况:

1、执行更新返回的是本次 *** 作影响到的记录数。

2、执行查询返回的结果是一个ResultSet对象。

• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些

行中数据的访问。

• 使用结果集(ResultSet)对象的访问方法获取数据:

while(rsnext()){

String name = rsgetString("name") ;

String pass = rsgetString(1) ; // 此方法比较高效

}

(列是从左到右编号的,并且从列1开始)

7、关闭JDBC对象

*** 作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声

明顺序相反:

1、关闭记录集

2、关闭声明

3、关闭连接对象

if(rs != null){ // 关闭记录集

try{

rsclose() ;

}catch(SQLException e){

eprintStackTrace() ;

}

}

if(stmt != null){ // 关闭声明

try{

stmtclose() ;

}catch(SQLException e){

eprintStackTrace() ;

}

}

if(conn != null){ // 关闭连接对象

try{

connclose() ;

}catch(SQLException e){

eprintStackTrace() ;

}

}

本文主要介绍SQL Server JDBC驱动中sqljdbc和sqljdbc4的区别。

sqljdbcjar 类库要求应用 50 版的Java运行时环境 (JRE)。连接到数据库时,在 JRE 60 上应用 sqljdbcjar 会引发异常。

注意: SQL Server JDBC Driver 20 不支持 JRE 14。应用 SQL Server JDBC Driver 20 时必需将 JRE 14 升级至 JRE 15或更高版本。

sqljdbc4jar 类库要求应用 60 或更高版本的 Java 运行时环境 (JRE)。在 JRE 14 或 50 上应用 sqljdbc4jar 会引发异常。

注意: 假如实际运用程序必需在 JRE 60 上运行,即使该实际运用程序不应用 JDBC 40 功能,也应用 sqljdbc4jar。

二、为了支持向后兼容以及可能的升级方案,JDBC Driver 20 在每个安装包中都包括 2 个 JAR 类库:sqljdbcjar 和 sqljdbc4jar。

sqljdbcjar 类库提供对 JDBC 30 的支持。

sqljdbcjar 类库要求使用 50 版的 Java 运行时环境 (JRE)。连接到数据库时,在 JRE 60 上使用 sqljdbcjar 会引发异常。

注意: JDBC Driver 20 不支持 JRE 14。使用 JDBC Driver 20 时必须将 JRE 14 升级至 JRE 50 或更高版本。在某些情况下,您可能需要重新编译应用程序,因为它可能与 JDK 50 或更高版本不兼容。有关详细信息,请参阅 Sun Microsystems 网站上的文档。

sqljdbc4jar 类库提供对 JDBC 40 的支持。它不仅包括 sqljdbcjar 的所有功能,还包括新增的 JDBC 40 方法。

sqljdbc4jar 类库要求使用 60 或更高版本的 Java 运行时环境 (JRE)。在 JRE 14 或 50 上使用 sqljdbc4jar 会引发异常。

注意: 如果应用程序必须在 JRE 60 上运行,即使该应用程序不使用 JDBC 40 功能,也应使用 sqljdbc4jar。

请注意,尽管驱动程序旨在与所有主要的 Sun 等效 Java 虚拟机一起工作并由这些虚拟机支持,但却是在 Sun JRE 50 或更高版本上进行测试的。

JDBC Driver 专为使用 SQL Server 2005 引入的功能而设计,但它也可以向后兼容 SQL Server 2000(包括 64 位版本)。

重要提示: Microsoft SQL Server JDBC Driver 20 可以连接到 SQL Server 2008,但不完全支持 SQL Server 2008 中新引入的数据类型或其他功能。

首先确保SQLSERVER服务正在运行,并可以允许远程访问连接

然后按如下步骤进行连接

1安装JDBC驱动

1)下载JDBC驱动

2)执行sqljdbc_402206100_chsexe解压驱动文件

3)拷贝以下目录中的sqljdbc_authdll到Windows的System32目录。对x64的机子,x64的dll拷到C:\Windows\System32,x86的dll拷到C:\Windows\SysWOW64目录。

Microsoft JDBC Driver 40 for SQL Server\sqljdbc_40\chs\auth\

2在Java程序中连接SQL Server

classpath中加上安装好的SQL Server jdbc jar包

Microsoft JDBC Driver 40 for SQL Server\sqljdbc_40\chs\sqljdbc4jar

连接SQL Server的JDBC代码

ClassforName("commicrosoftsqlserverjdbcSQLServerDriver");

String url = "jdbc:sqlserver://localhost:54364;databaseName=master;IntegratedSecurity=True";

Connection con = DriverManagergetConnection(url);

在SQL Server Browser服务开启的情况下也可以通过服务名连接

ClassforName("commicrosoftsqlserverjdbcSQLServerDriver");

String url = "jdbc:sqlserver://localhost\\SQLEXPRESS;databaseName=master;IntegratedSecurity=True";

Connection con = DriverManagergetConnection(url);

3身份验证模式

SQL Server默认使用Windows身份验证模式,这也是官方推荐的模式,安全性更高。上面的连接例子就是采用的Windows认证。如果要使用混合认证模式,需要下载SQL Server Management Studio,并通过SQL Server Management Studio修改认证模式为混合认证模式。

SQL Server Management Studio的下载地址

修改SQL Server认证模式的方法

混合认证模式下,可以由数据库进行认证,连接时需要提供用户名和密码

ClassforName("commicrosoftsqlserverjdbcSQLServerDriver");

String url = "jdbc:sqlserver://localhost:54364;databaseName=master";

Connection con = DriverManagergetConnection(url,"user","password");

以上就是关于我把sqljdbc.jar文件拷贝到Tomcat得lib之类的文件里,classpath也写了sqljdbc.jar的存放路径,可程序总是全部的内容,包括:我把sqljdbc.jar文件拷贝到Tomcat得lib之类的文件里,classpath也写了sqljdbc.jar的存放路径,可程序总是、no sqljdbc_auth in java.library.path 没有为集成身份验证配置驱动程序~在线等。。、myeclipse中如何加入sql server的jdbc驱动,是不是前提需要将sql server2000配置一下呢我的程序报错啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9765270.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存