Java SQL语句-NullPointerException
我在工作中被分配了一项任务,但我是Java和Eclipse的初学者。 我必须重新使用现有的程序,并修改它的某些部分。 以下部分不起作用:Java SQL语句-NullPointerException,java,sql,Java,Sql,我在工作中被分配了一项任务,但我是Java和Eclipse的初学者。 我必须重新使用现有的程序,并修改它的某些部分。 以下部分不起作用: private java.sql.Connection conn; private final String sqlRequest = "select ... from ..."; //................ private void DBConnect(){ try { // Load the driver
private java.sql.Connection conn;
private final String sqlRequest = "select ... from ...";
//................
private void DBConnect(){
try {
// Load the driver
java.lang.Class.forName(jdbcdriver).newInstance();
// Connect to database
conn = java.sql.DriverManager.getConnection(jdbcURL,dbuser,dbpwd);
//................
private void search2() {
try {
// create SQL statement
java.sql.Statement stmt = conn.createStatement(); //my line 135
java.sql.ResultSet rs = execRequest(stmt,sqlRequest);
//................
eclipse中的错误消息是:
"java.lang.NullPointerException at mon_prog.search2(mon_prog.java:135)"
这部分以前工作过。。。那么问题是由于我的JDK版本造成的吗?我让JDK7u2先获取连接…使用
Connection conn = DriverManager.getConnection(connection string);
您的
conn
看起来是空的。了解有关如何从java程序(IDE中立方式)连接到MySQL数据库的精彩Vogella教程:
连接到数据库的示例步骤:
// This will load the MySQL driver, each DB has its own driver
Class.forName("com.mysql.jdbc.Driver");
// Setup the connection with the DB
connect = DriverManager
.getConnection("jdbc:mysql://localhost/feedback?"
+ "user=sqluser&password=sqluserpw");
// Statements allow to issue SQL queries to the database
statement = connect.createStatement();
// Result set get the result of the SQL query
resultSet = statement
.executeQuery("select * from FEEDBACK.COMMENTS");
在
DBConnect()
中的Class.forName()
和getConnection()
调用以及第135行上设置断点,然后通过调试器运行所有断点。如果在尝试使用连接之前没有执行getConnection(),我一点也不会感到惊讶。(在那里,完成了,获得了源代码管理提交。)
如果不是这样,您可能还需要再次检查是否确实没有另一个变量隐藏您的预期
conn
实例。“进入定义”在这方面非常有用;只需确保您到达了预期的位置。是的,很抱歉,我还有此方法连接到数据库:private void DBConnect(){尝试{//加载驱动程序java.lang.Class.forName(jdbdriver.newInstance();//连接到数据库conn=java.sql.DriverManager.getConnection(jdbcURL,dbuser,dbpwd)…@VincentCharrié:请将此添加到您的问题中。另外,在mon_prog.java的第135行中,您在search2()之前调用了DBConnect()吗?如果顶部异常行为135,则conn
为null
。我很确定getConnection
从不返回null,因此您没有调用DBConnect
,或者它抛出了丢失的异常。请检查异常日志。