Java 连接sql server 2012,第一次成功,换了工程报错 class.forName

zhangwenqing123 2016-07-11 08:25:54
千辛万苦地在win10环境下,给Java用jdbc连接数据库sql server2012

先用一个小项目测试成功了,换回正宫项目就连不上了不造为什么。求大神解答。。。
package pkg;

import java.sql.*;
//import java.sql.DriverManager;

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";

String dbURL="jdbc:sqlserver://localhost:49420;DatabaseName=Test";

String userName="zwq";

String userPwd="qwe123456";

try

{

Class.forName(driverName);

Connection dbConn=DriverManager.getConnection(dbURL,userName,userPwd);

System.out.println("连接数据库成功");

try{
dbConn.close();
System.out.println("断开数据库成功");
}catch(Exception e){
System.out.println("断开数据库失败");
}
}

catch(Exception e)

{

e.printStackTrace();

System.out.print("连接失败");

}
//rs.close();
//stmt.close();

}

}

编译结果是
连接数据库成功
断开数据库成功


于是测试成功后就用我的项目连接数据库,然后报错。。。
以下是代码
package edition1;
import java.sql.*;
import java.math.*;
import java.lang.*;

public class Main {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
static final String DB_URL = "jdbc:sqlserver://localhost:49420;DatabaseName=Test";

// Database credentials
static final String USER = "zwq";
static final String PASS = "qwe123456";

public static void main(String[] args) {
/*String PASS = "qwe123456";
String USER = "zwq";
String JDBC_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String DB_URL = "jdbc:sqlserver://localhost:49420;DatabaseName=TestJdbc";*/
Connection conn = null;
Statement stmt = null;
try{
//STEP 2: Register JDBC driver
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

}catch(Exception e){
e.printStackTrace();
System.out.println("Class.forName错误");
}
//STEP 3: Open a connection
System.out.println("Connecting to database...");
try{
conn = DriverManager.getConnection(DB_URL,USER,PASS);
}catch(Exception e){
e.printStackTrace();
System.out.println("conn错误");
}


//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "SELECT bookId FROM DHB";
ResultSet rs = stmt.executeQuery(sql);

//STEP 5: Extract data from result set
while(rs.next()){
//Retrieve by column name
int id = rs.getInt("id");
//int age = rs.getInt("age");
//String first = rs.getString("first");
//String last = rs.getString("last");

//Display values
System.out.print("ID: " + id);
/*System.out.print(", Age: " + age);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);*/
}
//STEP 6: Clean-up environment
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace();
System.out.println("JDBC捕捉");
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
System.out.println("class.forname捕捉");
}finally{
//finally block used to close resources
try{
if(stmt!=null)
stmt.close();
}catch(SQLException se2){
}// nothing we can do
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
System.out.println("Goodbye!");
}//end main

}//end FirstExample


编译结果是
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at edition1.Main.main(Main.java:25)
Class.forName错误
Connecting to database...
java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost:49420;DatabaseName=Test
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at edition1.Main.main(Main.java:34)
conn错误
Creating statement...
java.lang.NullPointerException
at edition1.Main.main(Main.java:43)
class.forname捕捉
Goodbye!
...全文
160 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
水蓝淡影 2016-07-12
  • 打赏
  • 举报
回复
会不会是工程名有错误,或者是database 的名字没有写正确?我看一个Test,一个是TestJdbc。
shoppo0505 2016-07-12
  • 打赏
  • 举报
回复
DatabaseName=TestJdbc???

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧