Java连接sql的配置问题以及出现java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver解决意见

一.知识准备

前期要求掌握的知识:了解结构化查询语言SQL的相关内容。

实验相关理论或原理: Java语言提供了对数据库的强大支持,Java语言提供JDBC来实现对数据库访问和数据处理的支持。利用JDBC来访问特定的数据库,实现对数据库的各种操作。具体有7步:

(1)   导入JDBC类;

(2)   装载/注册驱动程序;

(3)   连接数据库;

(4)   创建语句对象;

(5)   执行SQL语句;

(6)   处理结果;

(7)   关闭连接。

二、下载驱动及配置

(以SQL SERVER数据库为例,若是其它数据库,则采用相应的驱动程序;驱动方式采用纯JAVA程序驱动,若采用其它模式,则程序中语句相应要进行调整)

1. 使用纯Java驱动,首先必须获得相应数据库的驱动程序包;

SQLServer JDBC驱动包有两种:sqljdbc.jar和sqljdbc4.jar,根据所使用的JDK版本选择相应的驱动程序。并将完整路径设置到classpath环境变量中,如用开发工具开发程序,还需在开发环境中设置路径。

将sqljdbc4.jar类库文件拷贝到D:\Program Files\Java\jdk1.7.0\jre\lib\ext目录下。(这个路径根据JDK的版本和安装路径确定,下同) 

将sqljdbc4.jar类库文件拷贝到D:\ProgramFiles\Java\jre7\lib\ext目录下( 最好是,只要是jre文件夹,都复制一个sqljdbc4.jarjre7\lib\ext里去!!)

在环境变量classpath 后面添加sqljdbc4.jar的路径。

(这里注意以下,如果是最新版本的jdk,就放到例如D:\jdk-10.0.1\lib  D:\jre-10.0.1\lib)

2. 设置SQLEXPRESS服务器:

    a.打开SQL Server Configuration Manager-> SQLEXPRESS的协议 -> TCP/IP


    b.右键单击启动TCP/IP ,双击进入属性,把IP地址中的IP all中的TCP端口设置为1433


   c.打开Telnet客户端:

    打开控制面板,点击程序和功能,之后点击启用或关闭Windows功能,勾选Telnet客户端


c.重新启动SQLServer 2005服务中的SQLEXPRESS服务器

打开电脑控制面板,点击管理工具,点击服务,左键SQL Sever(MSSQLSERVER)


    d.关闭SQL ServerConfiguration Manager

注:可以在命令行窗口中用如下命令查看1433端口是否打开:(win+r打开,输入cmd)

Telnet localhost 1433

若执行命令后,窗口左上角有光标闪烁,无其它提示信息,则说明端口已打开。



接下来估计是大家特别需要注意的了,因为很多人再做完上面的步骤之后再用eclipse编译会出现问题,提示说:java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver,这是应该没有找到类,提示出错:


可以这样子试一试:

右键src,在出现的一栏中点击build path,再点击Configure Build Path,之后看第二张图,添加扩展类,这里是sqljdbc4.jar类,再点击Apply and Close,接着再运行就不会出现提示java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriverl了。



下面是运行查询数据库的代码:

import java.sql.Connection;
import java.sql.DriverManager;
public class test {
	public static void main(String[] srg) {
		String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 
		//加载JDBC驱动
		String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=student"; 
		//连接服务器和数据库
		String userName = "sa"; //默认用户名
		String userPwd = "12345678"; //密码
		Connection dbConn;
		try {
		   Class.forName(driverName);
		   dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
		   System.out.println("Connection Successful!"); 
		     //如果连接成功 控制台输出Connection  Successful!
		} catch (Exception e) {
		   e.printStackTrace();
		}
		}

}
import java.sql.*;
public class ex1 {
	public static void main(String []args){
	    System.out.println("database example:");
	   Connection conn = null;
	      Statement stmt = null;
	  try{
	     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
	     String url="jdbc:sqlserver://localhost:1433; DatabaseName=student"; //student为数据库名   
	     String user="sa";
	     String password="12345678"; // 用户名和密码;
	     conn= DriverManager.getConnection(url,user,password);
	     stmt=conn.createStatement();
	     String sql = "select * from student";
	     ResultSet rs = stmt.executeQuery(sql);
	     while(rs.next())
	     {
	      System.out.println(rs.getString(1)+"  "+ rs.getString(2)+"  "+ rs.getString(3)+"  "+rs.getString(4)+"  "+rs.getString(5));
	     }  
	  }catch(Exception ex){
	   System.out.println(ex.toString());
	  }
	  finally{
	   if(stmt!=null){
	    try{
	      stmt.close();	
	    }catch(Exception ex){}    
	   }
	   if(conn!=null){
	    try{
	     conn.close(); 
	    }catch(Exception ex){}    
	   }    
	  }
	  System.out.println("End");
	 }

}

还有几个地方需要注意,数据库的密码 、数据库的名称

 String user="sa";
String password="12345678"; // 用户名和密码;
DatabaseName=student //student为数据库名
要和代码里的一致,这样才能连接成功


  • 44
    点赞
  • 176
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
引用[1]和引用[2]中提到的错误"java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver"是由于找不到SQL Server JDBC驱动程序引起的。这个错误通常发生在尝试连接SQL Server数据库时,因为缺少相应的驱动程序。 解决这个问题的方法是确保你的项目中包含了正确的SQL Server JDBC驱动程序,并且在代码中正确地加载了驱动程序。 以下是一个示例代码,演示了如何解决"java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver"错误: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Example { public static void main(String[] args) { try { // 加载SQL Server JDBC驱动程序 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 建立数据库连接 String url = "jdbc:sqlserver://localhost:1433;databaseName=mydatabase"; String username = "username"; String password = "password"; Connection connection = DriverManager.getConnection(url, username, password); // 连接成功,可以进行数据库操作 // ... // 关闭数据库连接 connection.close(); } catch (ClassNotFoundException e) { // 处理驱动程序加载失败的异常 e.printStackTrace(); } catch (SQLException e) { // 处理数据库连接失败的异常 e.printStackTrace(); } } } ``` 请注意,上述代码中的"com.microsoft.sqlserver.jdbc.SQLServerDriver"是SQL Server JDBC驱动程序的类名。你需要根据你使用的具体驱动程序版本进行相应的更改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值