下面是代码,但老是抛出空指针异常.是不是还得导什么包呀?
public static synchronized Connection getConnect() throws SQLException {
Connection conn = null;
try {
// Jdbc-odbc bridge
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:driver={Microsoft Access Driver(*.mdb)}; DBQ=G:\\test.mdb";
System.out.println("---------前");
conn = DriverManager.getConnection(url,"","");//这里出错
System.out.println("---------后");
conn.setAutoCommit(true);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public static synchronized Connection getConnect() throws SQLException {
Connection conn = null;
try {
// Jdbc-odbc bridge
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:driver={Microsoft Access Driver(*.mdb)}; DBQ=G:\\test.mdb";
System.out.println("---------前");
conn = DriverManager.getConnection(url,"","");//这里出错
System.out.println("---------后");
conn.setAutoCommit(true);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
解决方案 »
- 网虫-栈溢出问题?
- 不循环数组能不能打印数组中所有的字符串?
- 关于Java Socket问题 个人感觉挺难的
- 请教base64(3des(sha1(xxxxx)))
- java 连接oracle中的问题
- table大小问题
- 高分相送!!!怎样更新jb7中原有库文件?
- 编译通过运行为什么出错?
- 请教如何设置Double 的格式?double = 10.66666667,如何取得小数点后2 位的数值?
- 为何这段代码,书中说可能会打印0,但在我在eclipse执行完后ready一直被主线程赋值了true,进不了while循环
- 初学请教问题:could not create java virtual machine?
- jnode怎么用啊,比如创建一个文件的命令
Connection conn = DriverManager.getConnection(url,"","");
把这个出错的语句的第二个参数设置一个默认用户名就可以了,例如
conn = DriverManager.getConnection(url,"admin","");
其它地方不用改。
不知道你的access文件有没有密码,如果没有,你随便给个密码看行不行。
import java.sql.SQLException;public class DBConnection {
private final static String DBDRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
private final static String DBURL = "jdbc:odbc:数据源名字";
private final static String DBUSER ="";
private final static String DBPASSWORD ="";
private static Connection conn = null;
public DBConnection(){
try {
Class.forName(DBDRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
conn = DriverManager.getConnection(DBURL);
} catch (SQLException e) {
e.printStackTrace();
}
}
public Connection getConnection(){ if(conn==null)
{
try
{
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
return conn ;
}
catch (Exception e)
{
e.printStackTrace();
} }
return conn;
}
}
public class DBConnection {
private final static String DBDRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
private final static String DBURL = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=";
private final static String DBUSER ="";
private final static String DBPASSWORD ="";
private static Connection conn = null;
public DBConnection(){
try {
Class.forName(DBDRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
conn = DriverManager.getConnection(DBURL+"G:\\test.mdb");
} catch (SQLException e) {
e.printStackTrace();
}
}
public Connection getConnection(){ if(conn==null)
{
try
{
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
return conn ;
}
catch (Exception e)
{
e.printStackTrace();
} }
return conn;
}
}
at sun.jdbc.odbc.JdbcOdbcDriver.initialize(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at util.JDBCUtil.getConnect(JDBCUtil.java:25)
at util.JDBCUtil.main(JDBCUtil.java:36)就是这一种错误
private final static String DBDRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
private final static String DBURL = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=";
private final static String DBUSER = "";
private final static String DBPASSWORD = "";
private static Connection conn = null; public DBConnection() {
try {
Class.forName(DBDRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
conn = DriverManager.getConnection(DBURL + "G:\\test.mdb");
} catch (SQLException e) {
e.printStackTrace();
}
} public static Connection getConnection() { if (conn == null) {
try {
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
return conn; } catch (Exception e) {
e.printStackTrace(); } }
return conn;
}
public static void main(String[] args) {
try {
Connection conn = getConnection(); System.out.println("===");
} catch (Exception e) {
e.printStackTrace();
}
}}
这是抛出的异常....不知上面的这位哥们试了没有,是不是也是同样的错误啊?
===
java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcDriver.initialize(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at action.DBConnection.getConnection(DBConnection.java:30)
at action.DBConnection.main(DBConnection.java:44)
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");
Connection conn = DriverManager.getConnection(url,"","");
Statement stmtNew=conn.createStatement() ;-------------------
直接配置数据源也可以
//加载注册驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//获取数据库连接
Connection con = DriverManager.getConnection("jdbc:odbc:dbname");
谁试通了,说一下吗,卡了我一天了
//First,load driver program
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//Second,create connection
String url="jdbc:odbc:DBAccess";//DBAccess数据源名
String user="";
String password="";
Connection con=null;
Statement st=null;
ResultSet rs=null;
con=DriverManager.getConnection(url, user, password);
st=con.createStatement();控制面板--管理工具--数据源
import java.sql.*;
public class TestAccess {
public static void main(String[] args) {
try {
//First,load driver program
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//Second,create connection
String url="jdbc:odbc:DBAccess";//DBAccess数据源名
String user="";
String password="";
Connection con=null;
Statement st=null;
ResultSet rs=null;
con=DriverManager.getConnection(url, user, password);
st=con.createStatement();
rs=st.executeQuery("select * from student");
System.out.println("编号\t"+"姓名\t"+"性别");
while(rs.next())
{
System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
private final static String DBURL = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="; 后面把路径加上
import java.sql.*; public class DBConnection {
private final static String DBDRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
private final static String DBURL = "jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=E:\\Java\\JavaDemo\\DBTest.mdb";
private final static String DBUSER = "";
private final static String DBPASSWORD = "";
private static Connection conn = null; // public DBConnection() {
// try {
// Class.forName(DBDRIVER);
// } catch (ClassNotFoundException e) {
// e.printStackTrace();
// }
// try {
// conn = DriverManager.getConnection(DBURL + "E:\\Java\\JavaDemo\\DBTest.mdb");
// } catch (SQLException e) {
// e.printStackTrace();
// }
// } public static Connection getConnection() { if (conn == null) {
try {
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
return conn; } catch (Exception e) {
e.printStackTrace(); } }
return conn;
} public static void main(String[] args) {
try {
Connection conn = getConnection();
System.out.println(conn);
System.out.println("===");
} catch (Exception e) {
e.printStackTrace();
}
} }
换个路径试试
offer2000 才能正常访问2003或者跟高版本就会报错