当前位置: 技术问答>java相关
有关sqlserver连接的问题,高手请务必进来!!!!!
来源: 互联网 发布时间:2015-09-27
本文导语: 我在sqlserver中建立一个数据库sfa,然后在数据源(ODBC)中添加了这个数据库 而且在library中,我也导入了mssqlserver的数据连接驱动。 数据库连接的源程序如下: import java.io.*; import java.sql.*; import java.util.*; import com.m...
我在sqlserver中建立一个数据库sfa,然后在数据源(ODBC)中添加了这个数据库
而且在library中,我也导入了mssqlserver的数据连接驱动。
数据库连接的源程序如下:
import java.io.*;
import java.sql.*;
import java.util.*;
import com.microsoft.jdbc.sqlserver.SQLServerDriver;
public class DataBase {
private String strUrl = null;
private String strUser = null;
private String strPwd = null;
private Connection dbCon = null;
private Statement stmt = null;
public static void main(String[] args) {
DataBase database = new DataBase();
int i = database.dbConnection("jdbc:odbc:sfa", "sa", "wwd");
System.out.println(i);
}
public int dbConnection(String strUrl, String strUser, String strPwd) {
this.strUrl = strUrl;
this.strUser = strUser;
this.strPwd = strPwd;
try {
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
} catch(ClassNotFoundException e) {
System.err.print("ClassNotFoundException:");
System.err.println(e.getMessage());
return 0;
}
try {
dbCon = DriverManager.getConnection(strUrl, strUser, strPwd);
} catch(SQLException ex) {
System.out.println("SQLException:" + ex.getMessage());
return -1;
}
return 1;
}
}
报错信息如下:
java.lang.NoClassDefFoundError: com/microsoft/jdbc/base/BaseDriver
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:130)
at myfirst.DataBase.dbConnection(DataBase.java:37)
at myfirst.DataBase.main(DataBase.java:26)
Exception in thread "main"
但是将Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")改为Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")之后,数据库就可以连接成功。
想请教各位高手,是何原因?
而且在library中,我也导入了mssqlserver的数据连接驱动。
数据库连接的源程序如下:
import java.io.*;
import java.sql.*;
import java.util.*;
import com.microsoft.jdbc.sqlserver.SQLServerDriver;
public class DataBase {
private String strUrl = null;
private String strUser = null;
private String strPwd = null;
private Connection dbCon = null;
private Statement stmt = null;
public static void main(String[] args) {
DataBase database = new DataBase();
int i = database.dbConnection("jdbc:odbc:sfa", "sa", "wwd");
System.out.println(i);
}
public int dbConnection(String strUrl, String strUser, String strPwd) {
this.strUrl = strUrl;
this.strUser = strUser;
this.strPwd = strPwd;
try {
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
} catch(ClassNotFoundException e) {
System.err.print("ClassNotFoundException:");
System.err.println(e.getMessage());
return 0;
}
try {
dbCon = DriverManager.getConnection(strUrl, strUser, strPwd);
} catch(SQLException ex) {
System.out.println("SQLException:" + ex.getMessage());
return -1;
}
return 1;
}
}
报错信息如下:
java.lang.NoClassDefFoundError: com/microsoft/jdbc/base/BaseDriver
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:130)
at myfirst.DataBase.dbConnection(DataBase.java:37)
at myfirst.DataBase.main(DataBase.java:26)
Exception in thread "main"
但是将Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")改为Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")之后,数据库就可以连接成功。
想请教各位高手,是何原因?
|
jdbc连接SQL Server 不通过JDBC-ODBC桥
发布日期:2002-7-12 发 布 者:51jsp.net
首先到微软的网站下载jdbc for sqlserver的driver
地址是: Microsoft SQL Server 2000 Driver for JDBC
(http://www.microsoft.com/downloads/release.asp?releaseid=38312)
然后下载安装到要安装的目录中,假设安装目录为d:javaforsql
安装后要在classpath中添加d:javaforsqllibmsbase.jar;d:javaforsqllibmssqlserver.jar;d:javaforsqllibmsutil.jar
然后可以进行一个简单的实验
首先注册驱动器,使用sqlserver jdbc驱动的别名:com.microsoft.jdbc.sqlserver.SQLServerDriver
程序为
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
然后要设置连接
String url="jdbc:microsoft:sqlserver://yourserver:port;DatabaseName=yourdatabase"
Connection conn= DriverManager.getConnection(url,"uername","password");
实验一下,成功了吧!
发布日期:2002-7-12 发 布 者:51jsp.net
首先到微软的网站下载jdbc for sqlserver的driver
地址是: Microsoft SQL Server 2000 Driver for JDBC
(http://www.microsoft.com/downloads/release.asp?releaseid=38312)
然后下载安装到要安装的目录中,假设安装目录为d:javaforsql
安装后要在classpath中添加d:javaforsqllibmsbase.jar;d:javaforsqllibmssqlserver.jar;d:javaforsqllibmsutil.jar
然后可以进行一个简单的实验
首先注册驱动器,使用sqlserver jdbc驱动的别名:com.microsoft.jdbc.sqlserver.SQLServerDriver
程序为
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
然后要设置连接
String url="jdbc:microsoft:sqlserver://yourserver:port;DatabaseName=yourdatabase"
Connection conn= DriverManager.getConnection(url,"uername","password");
实验一下,成功了吧!
|
楼主,你既然使用驱动了,干嘛要设置和使用数据源jdbc:odbc:sfa?
数据源是用于使用jdbc-odbc桥的连接方式的阿
我给你个连接数据库的简单样本:
jdbc驱动设置(非jbuilder的运行环境下,比如cmd环境):
下载一个驱动,安装后将驱动文件的绝对路径放入classpath环境变量里面去,最好将驱动就安装到jdk的lib目录里面算了。
这方面设置若有问题参考:http://www.csdn.net/expert/topic/750/750375.xml?temp=.4715387
JBuilder连接数据库的jdbc驱动设置:
1.在tools->configre libraries->new->键入name->add->选择驱动文件。不妨设置在User Home下面
2.tools->enterprise setup->database Drier->add->选择刚才新建的
3.tools->database pilot->file->new->键入:url和Driver
4.双击->输入数据库的用户名和密码
可运行代码实例:
import java.sql.*;
public class Test {
public static void main(String[] args) {
try {
String address = "jdbc:microsoft:sqlserver://192.168.0.24:1433";
//驱动类型+目标数据库ip+数据库端口
String user="sa";//数据库用户密码
String passwd="";//口令
String database = "TESTDB";//目标数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//驱动申明
Connection con = DriverManager.getConnection(address,user,passwd);//建立链接
con.setCatalog(database);//确定目标数据库
Statement smt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
//建立描述,设定结果集支持滚动光标且敏感,不可编辑
String selCode = "SELECT userId,userName FROM UserTable";//查询语句
ResultSet rs = smt.executeQuery(selCode);//结果集
if(rs.last()) {//从第一条往后依次取结果集中的记录
String userId = rs.getString(1);//等同rs.getString("userId"),即第一个字段数据
String userName = rs.getString(2);//同上,第二个字段,全部取其为String类型
System.out.println(userId+":"+userName);//输出此条记录的查询结果
}
rs.close();//释放资源
smt.close();
con.close();
}
catch(Exception e) {
System.out.println(e);//捕捉异常
}
}
}
数据源是用于使用jdbc-odbc桥的连接方式的阿
我给你个连接数据库的简单样本:
jdbc驱动设置(非jbuilder的运行环境下,比如cmd环境):
下载一个驱动,安装后将驱动文件的绝对路径放入classpath环境变量里面去,最好将驱动就安装到jdk的lib目录里面算了。
这方面设置若有问题参考:http://www.csdn.net/expert/topic/750/750375.xml?temp=.4715387
JBuilder连接数据库的jdbc驱动设置:
1.在tools->configre libraries->new->键入name->add->选择驱动文件。不妨设置在User Home下面
2.tools->enterprise setup->database Drier->add->选择刚才新建的
3.tools->database pilot->file->new->键入:url和Driver
4.双击->输入数据库的用户名和密码
可运行代码实例:
import java.sql.*;
public class Test {
public static void main(String[] args) {
try {
String address = "jdbc:microsoft:sqlserver://192.168.0.24:1433";
//驱动类型+目标数据库ip+数据库端口
String user="sa";//数据库用户密码
String passwd="";//口令
String database = "TESTDB";//目标数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//驱动申明
Connection con = DriverManager.getConnection(address,user,passwd);//建立链接
con.setCatalog(database);//确定目标数据库
Statement smt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
//建立描述,设定结果集支持滚动光标且敏感,不可编辑
String selCode = "SELECT userId,userName FROM UserTable";//查询语句
ResultSet rs = smt.executeQuery(selCode);//结果集
if(rs.last()) {//从第一条往后依次取结果集中的记录
String userId = rs.getString(1);//等同rs.getString("userId"),即第一个字段数据
String userName = rs.getString(2);//同上,第二个字段,全部取其为String类型
System.out.println(userId+":"+userName);//输出此条记录的查询结果
}
rs.close();//释放资源
smt.close();
con.close();
}
catch(Exception e) {
System.out.println(e);//捕捉异常
}
}
}
|
楼主,你既然使用驱动了,干嘛要设置和使用数据源jdbc:odbc:sfa?
数据源是用于使用jdbc-odbc桥的连接方式的阿
我给你个连接数据库的简单样本:
jdbc驱动设置(非jbuilder的运行环境下,比如cmd环境):
下载一个驱动,安装后将驱动文件的绝对路径放入classpath环境变量里面去,最好将驱动就安装到jdk的lib目录里面算了。
这方面设置若有问题参考:http://www.csdn.net/expert/topic/750/750375.xml?temp=.4715387
JBuilder连接数据库的jdbc驱动设置:
1.在tools->configre libraries->new->键入name->add->选择驱动文件。不妨设置在User Home下面
2.tools->enterprise setup->database Drier->add->选择刚才新建的
3.tools->database pilot->file->new->键入:url和Driver
4.双击->输入数据库的用户名和密码
可运行代码实例:
import java.sql.*;
public class Test {
public static void main(String[] args) {
try {
String address = "jdbc:microsoft:sqlserver://192.168.0.24:1433";
//驱动类型+目标数据库ip+数据库端口
String user="sa";//数据库用户密码
String passwd="";//口令
String database = "TESTDB";//目标数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//驱动申明
Connection con = DriverManager.getConnection(address,user,passwd);//建立链接
con.setCatalog(database);//确定目标数据库
Statement smt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
//建立描述,设定结果集支持滚动光标且敏感,不可编辑
String selCode = "SELECT userId,userName FROM UserTable";//查询语句
ResultSet rs = smt.executeQuery(selCode);//结果集
if(rs.last()) {//从第一条往后依次取结果集中的记录
String userId = rs.getString(1);//等同rs.getString("userId"),即第一个字段数据
String userName = rs.getString(2);//同上,第二个字段,全部取其为String类型
System.out.println(userId+":"+userName);//输出此条记录的查询结果
}
rs.close();//释放资源
smt.close();
con.close();
}
catch(Exception e) {
System.out.println(e);//捕捉异常
}
}
}
数据源是用于使用jdbc-odbc桥的连接方式的阿
我给你个连接数据库的简单样本:
jdbc驱动设置(非jbuilder的运行环境下,比如cmd环境):
下载一个驱动,安装后将驱动文件的绝对路径放入classpath环境变量里面去,最好将驱动就安装到jdk的lib目录里面算了。
这方面设置若有问题参考:http://www.csdn.net/expert/topic/750/750375.xml?temp=.4715387
JBuilder连接数据库的jdbc驱动设置:
1.在tools->configre libraries->new->键入name->add->选择驱动文件。不妨设置在User Home下面
2.tools->enterprise setup->database Drier->add->选择刚才新建的
3.tools->database pilot->file->new->键入:url和Driver
4.双击->输入数据库的用户名和密码
可运行代码实例:
import java.sql.*;
public class Test {
public static void main(String[] args) {
try {
String address = "jdbc:microsoft:sqlserver://192.168.0.24:1433";
//驱动类型+目标数据库ip+数据库端口
String user="sa";//数据库用户密码
String passwd="";//口令
String database = "TESTDB";//目标数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//驱动申明
Connection con = DriverManager.getConnection(address,user,passwd);//建立链接
con.setCatalog(database);//确定目标数据库
Statement smt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
//建立描述,设定结果集支持滚动光标且敏感,不可编辑
String selCode = "SELECT userId,userName FROM UserTable";//查询语句
ResultSet rs = smt.executeQuery(selCode);//结果集
if(rs.last()) {//从第一条往后依次取结果集中的记录
String userId = rs.getString(1);//等同rs.getString("userId"),即第一个字段数据
String userName = rs.getString(2);//同上,第二个字段,全部取其为String类型
System.out.println(userId+":"+userName);//输出此条记录的查询结果
}
rs.close();//释放资源
smt.close();
con.close();
}
catch(Exception e) {
System.out.println(e);//捕捉异常
}
}
}
|
我发邮件给你了