当前位置: 代码迷 >> Eclipse >> 为什么小弟我无法连接数据库,麻烦给为指点一上
  详细解决方案

为什么小弟我无法连接数据库,麻烦给为指点一上

热度:16   发布时间:2016-04-23 12:49:49.0
为什么我无法连接数据库,麻烦给为指点一下
源码:

class myConnection{
ResultSet re;

private static String url = "jdbc:sqlserver://localhost:1433;databasename=学生管理数据库";


public myConnection(){}
public ResultSet getResult(String sql){
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn=DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet re=stmt.executeQuery(sql);
return re;
}
catch(Exception e){
System.out.println("getResult------"+e.toString());
return null;
}
}

public boolean executeSql(String sql){
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn=DriverManager.getConnection(url);
Statement stmt=conn.createStatement();
stmt.executeUpdate(sql);
conn.commit();
return true;
}
catch(Exception e){
System.out.println("executeSql----"+e.toString());
return false;
}
}
}


错误提示:
getResult------java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
java.lang.NullPointerException

------解决方案--------------------
ls已经说的非常明白了,但是我觉得lz写的 类不是很好,给个例子。
package com.chenghui.dao.impl;

import java.sql.*;
/**
 * 定义父类:与数据库交互的类
 * @author Administrator
 *
 */
public class BaseDao {
//加载驱动类的字符串
public static final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
//连接数据库的字符串
public static final String URL="jdbc:sqlserver://localhost:1433;databaseName=company";
//连接数据库的账户和密码
public static final String UID="sa";
public static final String PWD="sa2008";

//数据库的连接对象
Connection conn = null;
//创建一个查询通道
PreparedStatement ps = null;
//返回的结果集
ResultSet rs = null;

/**
* 得到与数据库的连接
*/
public Connection getConn(){
//加载驱动类
try {
Class.forName(DRIVER);
//创建与数据库的连接
conn = DriverManager.getConnection(URL,UID,PWD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}

/**
* 关闭所有与数据库的连接
*/
public void closeAll(){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

/**
* 执行sql语句,可以进行增删改的操作,不能执行查询
* @param sql 传递的sql语句
* @param param 传递的sql语句中?表的参数的数组
* @return 返回的结果
*/
public int executeSql(String sql,String[] params){
int result=0;
//得到与数据库的连接
this.getConn();
//预编译sql语句
try {
ps = conn.prepareStatement(sql);
if(params!=null){
for (int i = 0; i < params.length; i++) {
ps.setString(i+1, params[i]);
}
}
//执行命令
result = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
//释放所有资源,关闭与数据库的连接
this.closeAll();
}
return result;
}
}
  相关解决方案